这里有一些问题,但我不确定是否有任何一个直接是你的问题。首先,您需要在pre_get_posts
回调条件,以确保只针对主查询。其次,你需要澄清你打算展示的帖子类型。
第三,也是最可能导致问题的一个,很少需要更改日志类型以显示在博客帖子索引上(即。is_home()
), 而不是在网站首页(即。is_front_page()
)
查询条件
add_action( \'pre_get_posts\', \'setup_site_loop\' );
function setup_site_loop( $query ) {
if ( is_home() ) {
$query->set(\'post_type\', \'seccion\');
$query->set(\'orderby\', \'menu_order title\');
$query->set(\'order\', \'ASC\');
}
}
该行:
if ( is_home() ) {
有两件事:
添加检查is_main_query()
, 由于在测试查询条件时,任何给定页面上几乎总是有多个查询,因此$query
直接地
if ( $query->is_main_query() && $query->is_home() ) {
岗位类型
此行:
$query->set(\'post_type\', \'seccion\');
您正在将帖子类型设置为
\'seccion\'
, 但根据你的问题:
(我修改了查询,使其显示页面而不是帖子)
是\'seccion\'
自定义帖子类型?是要显示的帖子类型,还是确实要显示page
职位类型?
主页vs首页,我怀疑真正的问题是您针对的查询条件错误。如果您的首页设置为显示博客帖子索引,那么您的查询条件应该可以。但是,如果您的站点首页设置为显示静态页面,并且您打算以该静态站点首页为目标,那么您的查询条件是错误的。你需要瞄准is_front_page()
而不是is_home()
:
if ( $query->is_main_query() && $query->is_front_page() ) {
用于
more information regarding home vs front page, see here.