目前还不清楚目标是什么,但这里有一些建议:
一般来说pre_get_posts
钩子不是实例化二次查询以显示HTML的好地方。
当前设置将导致infinite-loop, 因为当你实例化WP_Query
在pre_get_posts
回调时,您将递归地实例化它,直到出现错误达到递归限制为止。
有几种方法可以实例化WP_Query
在pre_get_posts
, 在第一次运行后删除回调,但我认为这不是您想要的。
从功能中删除此部分:
if( is_home() && $query->is_main_query()){
global $wp_query;
例如,在主模板中显示功能。请注意
$query
在该行中未定义。
还有方便的get_template_part()
如果要继续使用模板分区。
您可能还需要考虑一个合适的函数前缀,而不是my_
, 以避免可能的名称冲突。