我需要覆盖WP Admin中的设置,以获取General - >下的Syndication设置中最近发布的帖子数量。管理员。
我正在使用以下代码,它获取所有帖子,但我不需要那么多。有人能给我一个如何检索50个帖子的例子吗?这应该只影响这一个,而不是所有其他的。
function no_limits_for_feed( $limits ) {
return '';
}
add_filter( 'post_limits', 'no_limits_for_feed' );
更新:以下是我正在使用的代码示例,该代码来自Feed JSON WordPress插件:
class feed_json {
function feed_json() {
global $wp_rewrite;
add_action('init', array(&$this, 'add_feed_json'));
add_action('do_feed_json', array(&$this, 'do_feed_json'), 10, 1);
add_filter('template_include', array(&$this, 'template_json'));
add_filter('query_vars', array(&$this, 'add_query_vars'));
$plugin_basename = plugin_basename(__FILE__);
add_action('activate_' . $plugin_basename, array(&$this, 'add_feed_json_once'));
add_action('deactivate_' . $plugin_basename, array(&$this, 'remove_feed_json'));
}
function add_feed_json_once() {
global $wp_rewrite;
$this->add_feed_json();
$wp_rewrite->flush_rules();
}
function remove_feed_json() {
global $wp_rewrite;
$feeds = array();
foreach ( $wp_rewrite->feeds as $feed ) {
if ( $feed !== 'json' ) {
$feeds[] = $feed;
}
}
$wp_rewrite->feeds = $feeds;
$wp_rewrite->flush_rules();
}
function add_query_vars($qvars) {
$qvars[] = 'callback';
$qvars[] = 'limit';
return $qvars;
}
function add_feed_json() {
add_feed('json', array(&$this, 'do_feed_json'));
}
function do_feed_json() {
load_template($this->template_json(dirname(__FILE__) . '/feed-json-template.php'));
}
function template_json( $template ) {
$template_file = false;
if (get_query_var('feed') === 'json') {
$template_file = '/feed-json.php';
if (function_exists('get_stylesheet_directory') && file_exists(get_stylesheet_directory() . $template_file)) {
$template_file = get_stylesheet_directory() . $template_file;
} elseif (function_exists('get_template_directory') && file_exists(get_template_directory() . $template_file)) {
$template_file = get_template_directory() . $template_file;
} elseif (file_exists(dirname(__FILE__) . '/feed-json-template.php')) {
$template_file = dirname(__FILE__) . '/feed-json-template.php';
} else {
$template_file = false;
}
}
return (
$template_file !== false
? $template_file
: $template
);
}
}
new feed_json();
答案 0 :(得分:2)
我认为您可以加入pre_get_posts
,但如果它是Feed,posts_per_page
值会在以后被覆盖。因此,只需加入post_limits
,检查您的Feed,并在需要时返回其他LIMIT
部分。
add_filter( 'post_limits', 'so6230475_post_limits', 10, 2 );
function so6230475_post_limits( $limits, &$wp_query )
{
if ( $wp_query->is_feed( 'json' ) ) {
$limits = 'LIMIT 50';
}
return $limits;
}