如果(is_home()&&!IS_FROWN_PAGE())

时间:2016-04-23 作者:olliew

我在索引中经常看到以下代码。php文件。我明白这一点is_front_page() 查看网站首页时返回true(无论是显示博客帖子索引还是静态页面),而is_home() 查看博客文章索引时返回true(无论是显示在首页还是静态页上)。对于以下代码的使用,我仍然有些困惑-

<?php if ( have_posts() ) : ?>

    <?php if ( is_home() && ! is_front_page() ) : ?>
        <header>
            <h1 class="page-title screen-reader-text"><?php single_post_title(); ?></h1>
        </header>
    <?php endif; ?>
任何关于这段代码为何如此流行的解释都将不胜感激。

3 个回复
最合适的回答,由SO网友:shramee 整理而成

这将显示page 当静态页面设置为显示帖子时。

E.g.

我在主页上显示帖子。。。它什么也做不了。

如果我在标题为News...它会显示出来的News 在H1中。

这是为了在页面上显示帖子时显示页面标题,而在首页(主页)上显示博客帖子时不显示标题。

我们这样做是因为如果它在主页上。。。它将显示第一篇文章的标题,使其出现两次(一次在H1的顶部,另一次在文章循环时)。

SO网友:Md. Abunaser Khan

以下是如何正确操作:

if ( is_front_page() && is_home() ) {
// Default homepage

} elseif ( is_front_page()){
// Static homepage

} elseif ( is_home()){

// Blog page

} else {

// Everything else

}
这是显示或更改主页和博客页面内容的唯一(正确)方法。

SO网友:Rarst

我不确定“流行”这个词,对我来说似乎不是这样(但我不看那么多主题)。

您似乎很好地理解了每个条件的作用,所以这不应该让您感到困惑。这结合了检查是否显示博客索引的条件and 它是not 在头版。

啊,原因是single_post_title() 我猜它显示的标题是$wp_query->queried object (由主查询设置为当前上下文),而不是$post 全局(通过循环迭代设置)。

在某些情况下,这些将是相同的,但在这种情况下,条件检查的情况不同。循环将包含帖子,但查询的对象将是页面(除非我混淆了:)。

相关推荐

Vimeo froogaloop

我是个新手,但我想用this idea 在Wordpress站点上嵌入的Vimeo剪辑中禁用正向搜索我的职能。我添加了phpfunction frogaloop_scripts() { wp_register_script(\'snippet\', \'https://siteurl/wp-content/themes/themename/js/snippet.js\'); wp_register_script(\'frogaloop\',\'https://f.vimeo