Intereting Posts
Удалить дублируемую запись wp_postmeta Как определить, находится ли текущий пост в этом цикле? Категории переключателей на конкретную дату? Изменить основной цикл WordPress влияние на сервер? Проблема в поле поиска Как заставить WordPress search.php отображать все строки, найденные на страницах или сообщениях Определить имя плагина из фильтра plugin_action_links Число WP_Query различных значений мета-ключа Плагин WordPress для приятных поисков? Иметь несколько страниц с одинаковыми именами, но они получают разные пули Хотите, чтобы подписи к изображениям были из img ALT-тегов, а не тегов заголовков Настройка параметров по умолчанию на новых сайтах на многоузловом Поиск плагинов WordPress не работает, и обновления не отображаются, установка VPS Знать, когда обновление (ы) выполнено Нужна помощь в очистке сайта wordpress после взлома Тема WordPress: Добавить содержимое страницы в конец формы контакта

PHP, если сообщение уже отображается, тогда

Я создал новую страницу с карусели jquery, которая вращается между различными темами новостей. Вы можете посмотреть здесь :

Однако ниже карусели есть статический список дополнительных заголовков. Что мне нужно сделать, это найти php-код, который говорит, что если в каруселе появится рассказ, THEN исключить его из сообщений ниже. Это делается для того, чтобы избежать дублирования.

Я не могу просто увеличить смещение. В настоящее время смещение установлено на «4». Карусель содержит 12 уникальных столбов в любой момент времени. Я не могу увеличить смещение, потому что, если я получу пять или шесть сообщений подряд из одной категории, они будут пропущены из раздела ниже, увеличив смещение.

Я надеюсь в этом есть смысл. Я даже не уверен, что моя цель достижима (!). Нужно ли все это делать в одном цикле?

Карусель – это цикл – он работает со следующим кодом:

<?php query_posts("showposts=1&offset=0&cat=$panel"); ?> 

где

 <div id="panel<?php print $panelCount; ?>" class="panel"> 

из

 <?php $panelArray = array('131','129,131,313,318','129','318'); $panelCount = 0; foreach( $panelArray as &$panel ) { $panelCount = $panelCount + 1; } ?> 

Благодаря,

Энди

Отслеживайте идентификаторы и « post__not_in » их с помощью post__not_in . Трудно точно сказать, что делает с несвязным способом вы разместили свой код, но в общем случае это решение ..

 $c_posts = new WP_Query("showposts=10"); $tracker = array(); if ($c_posts->have_posts()) { while ($c_posts->have_posts()) { $c_posts->the_post(); $tracker[] = get_the_ID(); // more code } } $other_loop = new WP_Query(array('post__not_in' => $tracker)); 

В зависимости от того, какой контроль у вас есть, есть другие способы сделать это. Например, если вам нужно 5 сообщений в карусели и 10 в теле, вы можете вытащить все 15 одновременно, использовать первые пять в карусели и использовать оставшиеся позже, тем самым сэкономив себе запрос.

Справка

http://codex.wordpress.org/Class_Reference/WP_Query

Если ваш слайдер показывает сообщения в определенной категории, которые определяются переменной $panel , вы можете четко отделить ползунки от нормального потока.

Показать слайдер

Используйте new WP_Query() в вашем шаблоне для вывода слайдера:

 $slider = new WP_Query( array( // 'showposts' is deprecated; use 'posts_per_page' 'posts_per_page' => 10, // For an integer; // if $panel is a string (category slug), use 'category_name' 'cat' => $panel ) ); if ( $slider->have_posts() ) : while ( $slider->have_posts() ) : $slider->the_post(); // Slider loop/markup here endwhile; endif; wp_reset_postdata(); // Normal loop here if ( have_posts() ) : while ( have_posts() ) : the_post(); // Normal loop markup endwhile; endif; 

Фильтрация запроса основного цикла

Добавьте обратный вызов фильтра в functions.php для фильтрации ползунков:

 function wpse99748_filter_pre_get_posts( $query ) { if ( ! is_singular() && $query->is_main_query() ) { $panel = array(); // Need to use ID here $query->set( 'category__not_in', $panel ); } } add_action( 'pre_get_posts', 'wpse99748_filter_pre_get_posts' );