我想你误解了WordPress上下文中的主页(索引页)是什么。主页是站点的主页,默认情况下如下example.com
, AND 从此主页派生的任何分页页面。所以example.com/page/2
也被视为主页。简而言之,任何页面is_home()
返回true将成为主页。
默认情况下,index.php
将用于主页。home.php
如果设置了静态首页,则将用于blogpage(如果可用)。
如果您需要主页的第一页在样式方面与主页的其他页面有很大不同,我的最佳选择是在正常层次结构之外创建一个自定义模板,然后使用home_template
筛选以在查看主页的第一页时包含此模板。
示例:
让我们创建自定义模板并调用它
index-home.php
. 这种命名约定是唯一的,在正常的层次结构中不存在,所以我们保存在这里。现在,我们只需要包括它
add_filter( \'home_template\', function ( $template )
{
// Only target page one
if ( is_paged() )
return $template;
// We are on page one of the homepage, lets locate and include our template
$locate_template = locate_template( \'index-home.php\' );
if ( !$locate_template )
return $template;
return $locate_template;
});
您也可以只修改
index.php
并在
is_paged()
条件唯一的缺点可能是
index.php
是对所有页面的回退,因此
index.php
无法维持的混乱
示例:
if ( !is_paged()
&& is_home()
) {
// Add code etc for page one homepage
} else {
// Add code etc for all oher pages
}
最后,主查询仍将正常执行。如果您需要更改此项,则必须使用
pre_get_posts
更改主查询的行为