静态首页上的wp_title()为空

时间:2012-07-10 作者:Benjamin Kovach

我想用wp_title() 为我的页面创建标题,但我使用的是静态首页,虽然所有其他页面都正确呈现标题,但首页不会。

这就是我正在处理的问题:

<div id="main-content">
    <h1><?php wp_title("", true); ?></h1>
    <?php while( have_posts() ) : the_post() ?>
        <div class="pagecontent">
            <?php the_content(); ?>
        </div>
    <?php endwhile ?>   
</div>
起初我以为头版可能是从index.php, 因此,我在其中添加了相同的代码片段–但是,没有这样的运气,同样的东西会被渲染–一个空的h1 标签

这是怎么回事?我希望页面的标题显示在h1标记中。

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

wp_title() 用于网站标题部分中的html标题标记

它不用于输出标题。Use the_title(), 或get_the_title(),

SO网友:fuxia

如果你看看source of wp_title() 您将看到,没有为静态首页计划输出。

使用the_title() 如@Chris\\u O所建议的,用于视觉输出。但是为了在<head> 必须筛选的节wp_title() 如果它是空的,就把它装满。

示例代码(download from GitHub):

// Hook in very late, let the theme fix it first.
add_filter( \'wp_title\', \'t5_fill_static_front_page_title\', 100 );

/**
 * Fill empty front page title if a static page is set.
 *
 * @wp-hook wp_title
 * @param   string $title Existing title
 * @return  string
 */
function t5_fill_static_front_page_title( $title )
{
    // another filter may have fixed this already.
    if ( \'\' !== $title or ! is_page() or ! is_front_page() )
    {
        return $title;
    }

    $page_id = get_option( \'page_on_front\' );
    $page    = get_page( $page_id );

    if ( ! $page or \'\' === $page->post_title )
    {
        $title = get_option( \'blogname\' );
    }
    else
    {
        $title = $page->post_title;
    }

    // We don’t know if there is any output after the title, so we cannot just
    // add the separator. We use an empty space instead.
    return "$title ";
}

结束

相关推荐

使用Get-Page-by-Title对WordPress中的数据进行排序

今天早上刚接到一个“新”任务。我有一个使用以下语法的网站$thenews = get_page_by_title(date(\"Y\")); 但网站上并没有显示最新的新闻。此语法中还应包含哪些其他参数?老实说,我今天早上才开始探索WordPress,但对PHP非常熟悉另一个问题是我只有供应商提供的CMS模块,我没有可以播放的源文件。非常感谢。-海-