在查询运行前查明请求是否为自定义帖子类型存档

时间:2013-08-15 作者:Ben Miller - Remember Monica

我正在编写一个插件,为使用自定义帖子类型的播客修改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.
    }
}

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

使用挂钩pre_get_post 看见codex

结束

相关推荐

Hooks are not executing

根据我对钩子的理解,您可以通过do\\u action(“hook\\u name”)创建一个钩子;然后向所述钩子中添加一些内容,并在希望它执行钩子的位置调用该方法,因此:public function hook_name(){ do_action(\'hook_name\'); } 有些地方你会做类似的事情:add_action(\'hook_name\', \'some_hook\'); 然后在主题中的一些地方,你称之为:hook_name();

在查询运行前查明请求是否为自定义帖子类型存档 - 小码农CODE - 行之有效找到问题解决它

在查询运行前查明请求是否为自定义帖子类型存档

时间:2013-08-15 作者:Ben Miller - Remember Monica

我正在编写一个插件,为使用自定义帖子类型的播客修改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.
    }
}

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

使用挂钩pre_get_post 看见codex