我用jquery旋转木马创建了一个新页面,它在各种不同的新闻主题之间旋转。你可以看到here:
然而,旋转木马下面是一个附加标题的静态列表。我需要做的是找到php代码,如果某个故事出现在旋转木马中,则将其从下面的帖子中排除。这是为了避免重复。
我不能简单地增加偏移量。偏移量当前设置为“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;
}
?>
谢谢你,
安迪
SO网友:Chip Bennett
如果滑块显示由变量定义的特定类别中的帖子$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\' );