如何在“PRE_GET_POST”期间检查WP是否对特定的自定义模板执行了默认查询? 时间:2013-06-13 作者:Gniewomir Świechowski 我想修改由我现在正在编写的插件加载的自定义RSS模板的默认查询。如果要执行特定自定义teplate的默认查询,以便我可以修改它,那么签入连接到“pre\\u get\\u posts”的函数的最佳方法是什么?Answer: 这比我想象的要容易得多。使用中建议的方法时Controlling and customising RSS feeds in WordPress 在重写中可以看到类似的内容index.php?feed=custom_feed 只需检查查询变量,您的操作如下所示: add_action(\'pre_get_posts\', \'gs_gscrf_pre_get_posts\'); function gs_gscrf_pre_get_posts($query) { if (!is_admin() && $query->is_main_query() && $query->query_vars[\'feed\'] == \'custom_feed\') { // do stuff } } 检查Rarst explanation, 如果你想知道我为什么要用query_vars无法检查模板。 1 个回复 最合适的回答,由SO网友:Rarst 整理而成 正如你所描述的那样,时间安排不太合适。WP堆芯荷载期间:主查询被创建并处理为查询变量(使用pre_get_posts 作为能够影响结果的挂钩之一)然后template-loader.php 使用条件(取决于这些查询变量)确定要在以下位置使用的模板pre_get_posts 您无法从技术上检查模板选择,因为这还没有发生。然而,您可以检查的是,查询变量是那些与随后选择的模板相对应的变量。这实际上非常接近。 结束 文章导航