2016-07-19 2 views
0

간단히 말하자면 이미 클릭 한 게시물을 WordPress 루프에 포함하지 않도록 제외하려고합니다. 그래서쿠키에 추가 값 저장하기 PHP

사용자가이 같은 게시물을 방문 할 때 나는 포스트 ID를 기반으로 쿠키를 설정하고 있습니다 :

$post_id = the_ID(); 
setcookie('post-id', serialize($post_id), time()+3600); 

하지만 다음이 쿠키를 검색하고 내가 할 수 있도록 또 다른 포스트 ID에 추가하려면 어떻게 게시물 ID의 배열을 쿠키에 저장하여 WordPress 루프에서 제외 시키시겠습니까?

데이터 역 직렬화를 시도한 다음 추가하고 쿠키를 다시 설정하려고했지만 구문이 올바로 표시되지 않습니다.

많은 도움이 필요합니다.

$args = array (
     'post_type'    => 'post', 
     'post_status'   => 'publish', 
     'orderby'    => 'rand', 
     'date_query'    => array('after' => $desktop_posts_after), // Show posts after certain date 
     'cat'     => $cat_ID, // Show posts from same category as post 
     'post__not_in'   => array($cookie_post_ids), // Hide current post from loop 
     'posts_per_page'   => $desktop_posts, // Get number of posts to display for desktop 

); 

참고 :

UPDATE

여기 내 루프 참조입니다 거기 ACF에서 루프에서 약간의 변수는, 이러한 의도적하고 노력하고 있습니다 볼 수 있습니다. 중요한 부분은 "post__not_in" => array($cookie_post_ids) 변수이며 쿠키에 저장된 게시물의 게시물 ID를 피드하려고합니다.

+1

그래서 당신이 시도한 것을 보여주십시오. 우리는 당신을 위해 코드를 작성하지 않습니다. 우리가 작성한 것을 고칠 수 있도록 도와 줄 수 있습니다. –

+0

직접 값을 직렬화하고 있습니다. 먼저 새 값을 입력하고 값을 직렬화 한 다음 빈 배열을 만들어야합니다. –

+0

아, 그건 이해가 안맞다. 좀 더 살펴 보겠습니다. – Christian

답변

0

내가 읽어 보시기 바랍니다에 대한 PHP sessions 하나의 내부 데이터를 저장 :

<?php 

session_start(); 

$posts = array_key_exists('post_ids', $_SESSION) ? (array) $_SESSION['post_ids'] : []; 

$post_id = the_ID(); 

$posts[$post_id] = null; 

$_SESSION['post_ids'] = $posts; 

당신이 쿠키에 저장하고 싶은 경우, 포스트 ID의 배열 직렬화해야합니다 :

: 사용자가 다음을 수행하여 게시물을 방문한 경우 두 예를 들어

<?php 

$post_id = the_ID(); 

$posts = array_key_exists('post-id', $_COOKIE) ? (string) $_COOKIE['post-id'] : []; 

if (is_string($_COOKIE['post-id'])) { 
    $posts = unserialize($posts); 
} 

$posts[$post_id] = null; 

setcookie('post-id', serialize($posts), time() + 3600); 
는 변수가 세션 또는 쿠키 중 하나에서 채워 $ 게시물을받은 후, 당신은 확인하실 수 있습니다
<?php 

if (array_key_exists($post_id, $posts)) { 
    echo 'User has already visited post ID ' . $post_id; 
} 
+0

프랭크 도움을 주셔서 감사합니다. 나는 쿠키 메소드를 사용하고 있는데, 각각 "post-id"라는 이름을 가진 새로운 쿠키를 저장하고 각각에 연관된 값을 가지고있는 것을 볼 수있다. WP 루프에 피드를 제공 할 수 있도록 이러한 모든 값을 배열에 넣으려면 어떻게해야합니까? – Christian

+0

괜찮습니다! $ posts (두 예제 모두)에는 각 색인이 게시물 ID 인 배열이 들어 있습니다. 루프에 ID를 제공 할 코드의 예를 제공 할 수 있습니까? 감사! – anFfWuy7qbJWaPp6DSOR

+0

물론! 방금 루프를 사용하여 답변을 업데이트했습니다. – Christian