PHP如果已显示POST,则

时间:2013-05-16 作者:Andrew Abbott

我用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;
}
?>
谢谢你,

安迪

2 个回复
SO网友:s_ha_dum

跟踪ID,并;排除(&Q);他们与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个帖子,使用传送带中的前5个帖子,然后用完其余的帖子,这样就可以节省查询时间。

参考文献

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

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\' );

结束

相关推荐

Remove the_content From Loop

我试图显示一个只有特定元素的自定义循环。“我的循环”当前包含标题、创建日期、作者和;所容纳之物然而,我正在尝试删除循环中每个帖子的内容,因为我不希望它在这个列表中显示得不走运。我甚至已经从循环中删除了\\u content();它仍然会在循环部分下显示帖子内容的列表。任何帮助都将不胜感激,这是我的代码:<?php query_posts(\'category_name=halloween &posts_per_page=6\'); ?> <?php if ( have_p