默认情况下,WordPress在网站的头版上以相反的时间顺序显示您的最新帖子。许多WordPress用户想要一个静态的首页或溅水页面作为首页。这种“静态头版”外观对于希望在网站的首页上静态或热情信息的用户来说是常见的。

网站首页的外观和感觉是基于用户的选择与WordPress主题的功能和选项相结合的。

自定义首页的模板层次结构

在网站首页上,WordPress将始终使用前页如果存在模板文件。如果前页不存在,WordPress将确定要使用的模板文件,具体取决于用户配置 设置> 阅读>首页显示,如下所示:

自定义站点头版模板

要创建自定义站点的头版模板,请在主题中包含以下任何一个:

自定义博客文章索引页面模板

要创建自定义博客文章索引模板,请在主题中包含以下内容:

  • home.php

仅使用home.php博客文章索引的模板文件。请勿使用自定义页面模板(例如template-blog.php)有两个原因:

  1. 当正确配置“静态头版”功能时,即使将自定义页面模板分配给指定为“帖子页面”的页面,WordPress也不会使用自定义页面模板显示博客帖子索引。WordPress会仅有的都使用home.php或者index.php
  2. 当自定义页面模板被分配给静态页面外,除了指定为“帖子页面”的页面之外,博客帖子索引循环分页将无法正常工作。

上下文条件标签

is_front_page

条件标签is_front_page() 检查网站首页是否正在显示。在显示网站头版时,返回正确,无论是否 设置> 阅读 – >首页显示器设置为“您的最新帖子”或“静态页面”。

is_home

条件标签is_home() 检查博客文章索引是否正在显示。显示博客帖子索引时返回true:显示网站首页时 设置> 阅读 – >首页显示器设置为“您的最新帖子”,或者当’ 设置> 阅读 – >首页显示器设置为“静态页面”,“帖子页面”值是当前 被展示。

显示站点头版时,设置> 阅读 – >首页显示器设置为“您的最新帖子”,两者都is_front_page()is_home()将返回true。

pront-page.php的配置

如果存在,前页模板文件在网站的首页上使用,无论是否 设置> 阅读 – >首页显示器设置为“静态页面”或“您的最新帖子”,主题将需要考虑这两个选项,因此站点首页将显示静态页面或博客文章索引。有几种方法可以这样做。

在前页面中有条件显示

一种允许的方式前页考虑两个选项的 设置> 阅读 – >首页显示器是在内部添加条件的前页本身,使用 get_option('show_on_front')get_home_template(),和 get_page_template()

方法1:直接包含自定义内容前页

if ( 'posts' == get_option( 'show_on_front' ) ) {
    include( get_home_template() );
} else {
    // Custom content markup goes here
}

方法2:包括任何页面模板:
if ( 'posts' == get_option( 'show_on_front' ) ) {
    include( get_home_template() );
} else {
    include( get_page_template() );
}

过滤FrontPage_template

允许站点首页显示静态页面/自定义内容或博客文章索引的另一种方法,而无需在其中添加条件代码前页,是 筛选FrontPage_template,通过将过滤器回调添加到functions.php

function themeslug_filter_front_page_template( $template ) {
    return is_home() ? '' : $template;
}
add_filter( 'frontpage_template', 'themeslug_filter_front_page_template' );

此方法使WordPress绕过前页当博客帖子索引显示时,模板文件完全。

将自定义查询循环添加到front-page.php

如果是前页模板文件包括默认文件 WordPress循环,这样:

<?php
if ( have_posts() ) : while ( have_posts() ) : the_post();
    // do something
endwhile; else:
    // no posts found
endif;

该循环适用于分配给’的静态页面的帖子内容 设置> 阅读 – >帖子页面’。

要显示自定义循环(最新的博客文章,自定义/特色内容等),请使用呼叫添加辅助循环查询 wp_query。例如,显示3个最新博客文章:

$latest_blog_posts = new WP_Query( array( 'posts_per_page' => 3 ) );

if ( $latest_blog_posts->have_posts() ) : while ( $latest_blog_posts->have_posts() ) : $latest_blog_posts->the_post();
    // Loop output goes here
endwhile; endif;

分页

静态前页面不打算分页。没有WordPress 上一页 /下一页链接 功能可与静态头版一起使用。静态头版上的分页使用查询变量,而不是分页多变的。看到 wp_query 有关详细信息。

By zhuon

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注