动态生成通用标题标签时出现问题

时间:2014-06-27 作者:sleeper

代码(以下)在所有页面上都可以正常工作but front-page.php 在WordPress中。

具体而言,它会在标题标记的开头添加一个额外的管道符号。

例如,如果以下是网站的主页,则标题如下所示:

<title>| Acme Widgets | Custom Widgets for all occasions</title>

注意开头的管道?所有其他页面按预期工作。

fyi, 我的“阅读设置”设置为静态页面(带有主页和帖子页面的选择)。

请告知。

in header.php

<title>
<?php if (function_exists(\'is_tag\') && is_tag()) {
    single_tag_title(\'Tag Archive for &quot;\'); echo \'&quot; | \';
} elseif (is_archive()) {
    wp_title(\'\'); echo \' Archive | \';
} elseif (is_search()) {
    echo \'Search for &quot;\'.esc_html($s).\'&quot; | \';
} elseif (!(is_404()) && (is_single()) || (is_page()) ) {
    wp_title(\'\'); echo \' | \';
} elseif (is_404()) {
    echo \'Not Found | \';
} 
if ( is_home() || is_front_page() ) {
    bloginfo(\'name\'); echo \' | \'; bloginfo(\'description\');
} else {
    bloginfo(\'name\');
}
if ($paged > 1) {
    echo \' | page \'. $paged;
} ?>
</title>

2 个回复
SO网友:sleeper

我就这样把它修好了。所有页面现在都可用。但看起来。。。好丑陋的

<?php if (function_exists(\'is_tag\') && is_tag()) {
    single_tag_title(\'Tag Archive for &quot;\'); echo \'&quot; | \';
} elseif (is_archive()) {
    wp_title(\'\'); echo \' Archive | \';
} elseif (is_search()) {
    echo \'Search for &quot;\'.esc_html($s).\'&quot; | \';
} elseif (!(is_404()) && is_single() ) {
    wp_title(\'\'); echo \' | \';
} elseif (is_404()) {
    echo \'Not Found | \';
} 
if ( is_front_page() ) {
    bloginfo(\'name\'); echo \' | \'; bloginfo(\'description\');
} elseif ( is_page() || is_home() ) {
wp_title(\'\'); echo \' | \'; bloginfo(\'name\');
} else {
    bloginfo(\'name\');
}
if ($paged > 1) {
    echo \' | page \'. $paged;
} ?>

SO网友:Phil Lewis

elseif (!(is_404()) && (is_single()) || (is_page()) ) {
在以静态页面作为主页的配置中is_page() 也评估为真,因此你的额外管道。

您主页的代码似乎包含了您想要如何显示标题所需的所有内容,因此您可以简单地从上面的检查中排除主页:

elseif ( !( is_404() || is_home() || is_front_page() ) && ( is_single() || is_page() ) {
也许不是最干净的,但我认为这会产生你想要的东西。

结束

相关推荐

在GET_TITLE()之前运行的SINGLE_TERM_TITLE()

这是一个奇怪的“问题”,但我在一些安装中遇到过这种情况,我想知道是否有人可以解释为什么/如何发生这种情况。在博客类别上,如果我编码:<?php echo get_the_title(1).\': \'.single_term_title(); ?>输出到我的屏幕:UncategorizedBlog:另一方面,如果我这样做:<?php echo get_the_title(1); ?>: <?php single_term_title(); ?>我得到了正确的输出Blog