Pagination with custom field

时间:2015-09-14 作者:J doeyes

我有个小(大)问题。

是否有一种解决方案可以仅显示具有不同自定义字段值(来自特定自定义字段键)的帖子?

我有一些带有手动ID作为自定义字段的帖子,我不想将它们显示在我的循环中,并保持良好的分页。

跳过这篇文章(具有相同的手动ID)很容易,但我无法获得良好的分页,因为我使用continue; 跳过它们。

1 个回复
SO网友:Pieter Goosen

正如我在评论中所述,您需要pre_get_posts 和ameta_query 从主查询中排除具有特定值的特定自定义字段中的帖子。阅读前面提到的内容确实符合你的最大利益。记住,所有参数WP_Query 工作于pre_get_postsWP_Query 使用pre_get_posts 要更改查询参数,主查询使用WP_Query

简而言之,您可以尝试以下操作:(需要PHP 5.4+,代码未经测试)

add_action( \'pre_get_posts\', function ( $q )
{
    if (     !is_admin() // Targets the front end only, we don\'t need this for is_home()
          && $q->is_home() // Change this to the appropriate page, here we only target the home page
          && $q->is_main_query() // Target the main query only
    ) {
        $meta_query = [
            [
                \'key\' => \'Custom_ID\',
                \'compare\' => \'NOT IN\' // Do not get posts from this spoecific key/value pair
            ]
        ];
        $q->set( \'meta_query\', $meta_query );
    }
});

相关推荐

在Get_the_Posts_Pagination函数中编辑分页文本

我想在链接模板中编辑screen\\u reader\\u文本。php我可以在一个主题中这样做,这样它就不会在更新时被覆盖。看起来过滤器是最好的选择,但我找不到关于使用什么过滤器的文档。这是我想从链接模板更改的代码。php: if ( $GLOBALS[\'wp_query\']->max_num_pages > 1 ) { $args = wp_parse_args( $args, array( \'mid_size\' =&