如何更改自定义帖子类型中的提要数量?

时间:2014-01-07 作者:kakadong

我创建了一个自定义的帖子类型“podcast”,所有的podcast都在里面。当我访问时http://example.com/?feed=podcast, 它只显示最新的10个播客。如何将其更改为99?

我在谷歌上搜索到以下代码:

function feedFilter($query) {
if (is_feed()) {
    $query->set(\'posts_per_page\',\'30\');
}
return $query;}
add_filter(\'pre_get_posts\', \'feedFilter\');
它不起作用。

如何自定义自定义post类型中的feed items数量?

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

文件,其中pre_get_posts 操作运行是wp-includes/query.php, 如果我们查看该文件,我们将看到在执行操作之后posts_per_page 此位代码覆盖了feed的设置:

if ( $this->is_feed ) {
    $q[\'posts_per_page\'] = get_option(\'posts_per_rss\');
    $q[\'nopaging\'] = false;
}
在这种情况下,我们可以在posts_per_rss 这样可以自定义进给量。

function feed_action( $query ){
    if( $query->is_feed( \'podcast\' ) ) {
        add_filter( \'option_posts_per_rss\', \'feed_posts\' );
    }
}
add_action( \'pre_get_posts\', \'feed_action\' );

function feed_posts(){
    return 99;
}

SO网友:Kumar

您可以使用post_limits 筛选源,或从后端您应该能够管理源的帖子计数:

enter image description here

只需将其更改为Syndication feeds 你想要得到。

SO网友:shahpranaf

您的代码几乎正确。我做了一些修改。



function feedFilter($query) {
   if (is_feed()) {
     $query->set(\'posts_per_page\',\'30\');
   }
}
add_action(\'pre_get_posts\', \'feedFilter\');
以上内容应有效

结束

相关推荐

FETCH_FEED仅显示第一个项目

我正在尝试使用以下方法将提要从WordPress站点导入到另一个站点fetch_feed().一切都很好,除了事实上我只能得到第一个项目的饲料。这是我使用的代码add_shortcode(\'custom_feed\',\'feed2\'); function feed2(){ $rss = fetch_feed( \'http://blog.sugarpulp.it/feed/\' ); $rss_items = $rss->get_items( 0, 3