$DO_NOT_DUPLICATE在创世主题中不起作用

时间:2017-04-04 作者:Ramesh Pardhi

我正在使用Genesis子主题,并使用此功能在主页上显示功能帖子。

function modern_motoroids_extra_feature_posts(){ ?>
        <?php $do_not_duplicate = array(); ?>
        <?php $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1; ?>
        <?php query_posts( array(\'meta_key\' => \'feature-story\', \'orderby\'=> \'date\', \'paged\' => get_query_var( \'paged\' ), \'posts_per_page\' => 4, \'post__not_in\' => $do_not_duplicate)); ?>
        <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
            <?php $do_not_duplicate[] = get_the_id(); ?>
             <?php echo get_the_titke(); ?>
        <?php endwhile; endif; ?>
        <?php wp_reset_query(); ?>

<?php }
add_action(\'genesis_before_content_sidebar_wrap\',\'modern_motoroids_extra_feature_posts\');
然后我用这个函数在同一页上显示最新的帖子。

function latest_feature_posts(){ ?>
        <?php $do_not_duplicate = array(); ?>
        <?php $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1; ?>
        <?php query_posts( array(\'orderby\'=> \'date\', \'paged\' => get_query_var( \'paged\' ), \'posts_per_page\' => 10, \'post__not_in\' => $do_not_duplicate)); ?>
        <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
            <?php $do_not_duplicate[] = get_the_id(); ?>
             <?php echo get_the_titke(); ?>
        <?php endwhile; endif; ?>
        <?php wp_reset_query(); ?>

<?php }
add_action(\'genesis_before_content_sidebar_wrap\',\'latest_feature_posts\');
问题是它仍然显示重复的帖子,即使在使用$do_not_duplicat. 我试图在google和stackoverflow上搜索,但什么都没有得到。请帮帮我。这些函数显示重复的帖子是什么?以及如何排除它们。

1 个回复
最合适的回答,由SO网友:Samyer 整理而成

编辑:您可以使用meta\\u查询和“NOT IN”从第二个查询中排除专题报道,而不是所有这些。这是最简单的答案。

退房this meta query documentation 寻求帮助。

您需要将do\\u not\\u duplicate设置为全局数组,以便跨函数访问它(非常确定)。

2,在每个函数的开头用<?php $do_not_duplicate = array(); ?>

试着去掉在第二个函数中声明为数组的部分。而是使用以下命令将其回显到控制台://Debug in console echo \'<script> console.dir(\' . json_encode($do_not_duplicate) . \'); </script>\';坚持那一小段代码,它让我的生活变得更容易调试变量等等。

如果这不起作用,请将$do\\u not\\u duplicate声明为全局变量,这样应该可以完成工作。

相关推荐

Increase offset while looping

我正在编写一个自定义帖子插件,它将自定义帖子分组显示为选项卡。每组4个岗位。是否可以编写一个偏移量随每次循环而增加的查询?因此,结果将是:-第一个查询显示从1到4的帖子-第二个查询显示从5到8的帖子-第三个查询显示从9到12的帖子等。 <div class=\"official-matters-tabs\"> <?php $args = array(\'post_type\' => \'official-matters\', \'showp