Как исключить посещаемые сообщения из цикла

Как я могу исключить посещенные сообщения из цикла? У меня есть петля недавних сообщений на одной странице, которая исключает текущую запись, и я хочу увеличить количество пользователей, просматривая их, отфильтровывая те, которые они уже видели. Вот базовый цикл.

<?php $featured_post_id = get_the_ID(); global $post; $args = array('cat' => '9', 'posts_per_page' => 5, 'post__not_in' => array($featured_post_id)); $my_query = new WP_Query($args); if ( $my_query->have_posts() ) : ?> 

Solutions Collecting From Web of "Как исключить посещаемые сообщения из цикла"

Это более тяжелый вопрос, чем вы думаете. Вам нужно будет сделать совсем немного:

  1. Установите cookie в браузере пользователя, чтобы отслеживать сообщения, которые они видели.
  2. Извлеките данные из этого файла cookie, чтобы получить список идентификаторов сообщений
  3. Добавьте это в массив с $featured_post_id чтобы передать его в параметр post__not_in

Я не буду разбираться в первых двух проблемах … настройка и чтение файлов cookie не является вопросом WordPress, и вы можете легко найти эту информацию с помощью простого поиска Google .

Но для остального, ваш код будет выглядеть примерно так:

 // get_previously_viewed_posts() will retrieve a list of viewed post IDs from a user cookie. $posts_to_exclude = get_previously_viewed_posts(); // Add the current post ID to the array of posts to ignore. $posts_to_exclude[] = get_the_ID(); $args = array( 'cat' => '9', 'posts_per_page' => 5, 'post__not_in' => $posts_to_exclude ); $my_query = new WP_Query( $args ); if ( $my_query->have_posts() ) : while ( $my-query->have_posts() ) : $my-query->the_post(); // the loop endwhile; endif;