获取特定帖子ID之后的所有剩余帖子

时间:2015-07-03 作者:Shyam Krishna Sreekumar

我们都知道,使用WP_Query. 我们可以过滤、排序等。我现在的情况是,我想在一个帖子id之后获得所有剩余的帖子,比如100. 因此,我需要的是获取所有帖子、排序、筛选,但仅限于100.

是否有任何调整可以在WP_Query? 如果有人以前经历过这个,建议我?

1 个回复
SO网友:birgire

您可以尝试以下操作:

$query = new WP_Query( 
    [ 
        \'wpse_pid\'        => 100,    // Our custom post id argument
        \'wpse_compare\'    => \'>\',    // Out custom compare argument (<,>,<=,>=,!=,<>)
        \'posts_per_page\'  => 100,    // Modify this to your needs             
    ] 
);
我们使用以下插件来支持这两个自定义参数:

<?php
/**
 * Plugin Name: Support for post ID filtering in WP_Query
 * Description: Uses wpse_pid and wpse_compare arguments
 * Plugin URI:  http://wordpress.stackexchange.com/a/193415/26350
*/
add_filter( \'posts_where\', function( $where, $q )
{
    global $wpdb;

    if( $pid = $q->get( \'wpse_pid\' ) )
    {
        // Get the compare input
        $cmp = $q->get( \'wpse_compare\' );

        // Only valid compare strings allowed:
        $cmp = in_array( 
            $cmp, 
            [ \'<\', \'>\', \'!=\', \'<>\', \'<=\', \'>=\' ] 
        )
           ? $cmp
           : \'=\';  // default

        // SQL part
        $where .= $wpdb->prepare( " AND {$wpdb->posts}.ID {$cmp} %d ", $pid ) ;
    }
    return $where;

}, 10, 2 );
请注意,这假设PHP版本为5.4以上

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post