仅对主查询运行POSTS_WHERE和POSTS_JOIN 时间:2015-03-05 作者:Morgan Delaney 使用pre_get_posts 胡克,我可以$query 作为论据。但在posts_where 和posts_join hook,我收到的是相应的子句,而不是查询。问题是钩子正在每个查询上运行,而不仅仅是主查询。给定以下代码,该代码将在页面运行的每个查询上执行一次:add_filter(\'posts_join\', \'my_join\'); function my_join($join) { echo \'lala\'; return $join; } 如何判断查询是否是主查询,使其只运行一次? 1 个回复 SO网友:Morgan Delaney 当然我只需要设置$accepted_args 的参数add_filter() 至2。像这样:add_filter(\'posts_join\', \'my_join\', 10, 2); function my_join($join, &$query) { echo $query->is_main_query() ? \'y\' : \'n\'; return $join; } 结束 文章导航