我有一个页面模板,叫它page myblog。php,我想在其上显示一个普通循环由于以下行为,此方法不起作用:
add_action( \'pre_get_posts\', function( $query ) {
if( $query->query[\'pagename\'] === \'myblog\' ) {
$query->set( \'pagename\', null );
$query->set( \'post_type\', \'post\' );
}
});
导致生成以下SQL。SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_type = \'post\' ORDER BY wp_posts.post_date DESC
这个查询可以工作,也就是说,如果您在SQL控制台中运行它,它确实可以找到帖子,但因为它没有显式地选择ID(我想?)我的$query->posts数组中没有任何内容。为什么会发生这种情况?我能修一下吗?