我正在编写一个插件,为使用自定义帖子类型的播客修改RSS2提要。
查询运行后(在操作挂钩上template_redirect
; 看见this question 对于原因),我正在检查请求是否是针对我的自定义帖子类型的存档。如果是这样,我会添加操作和过滤器来修改RSS2模板。
现在我想做一些影响查询的修改。不使用is_post_type_archive
函数,该函数仅在查询运行后更新,如何检查请求是否针对自定义帖子类型的存档?我应该在哪个钩子上添加这个?
以下是迄今为止我掌握的相关代码:
add_action(\'template_redirect\', \'myplugin_frontend_init_after_query\');
function myplugin_frontend_init_after_query() {
if ( is_post_type_archive(\'myplugin_custom_type\') ) {
add_action(\'rss2_ns\', \'myplugin_podcast_ns\');
add_action(\'rss2_head\', \'myplugin_podcast_head\');
add_filter(\'the_excerpt_rss\', \'myplugin_podcast_description_filter\');
// other actions and filters here
// The next one is the one I\'m having trouble with:
add_filter(\'option_posts_per_rss\', \'myplugin_podcast_number_filter\');
// I\'m attempting to alter the number of posts in the feed, but of course after the query runs, it is too late.
}
}