WordPress wp_title在索引页面上留空

时间:2012-01-29 17:11:27

标签: wordpress title

我是WordPress的新手,刚刚安装了3.3.1版本。

我做了一些关于这个问题的谷歌搜索,并找到了一些答案,但它们与版本2.7相关,并且是2-3岁。

基本上,wp_title函数在每个页面上都能正常工作,除了我的主页,它返回空白,我没有得到任何标题。我可以硬编码标题,但我宁愿不这样做。

有罪的代码行:

<title><?php wp_title ( '| So Fresh n\' So Clean', true,'right' ); ?></title>

我找不到关于3.3.1中发生的这个问题的任何事情,所以显然我做错了。

12 个答案:

答案 0 :(得分:102)

这是我从Codex读到的内容:

  

如果您使用的是带有自定义循环和内容的自定义主页,那么   将有一个空的wp_title。这是一个整洁的黑客添加   主页上wp_title位置的说明/标语:

<title><?php bloginfo('name'); ?> | <?php is_front_page() ? bloginfo('description') : wp_title(''); ?></title>

因此,使用is_front_page()获取主页上的标题,就像上面代码中的建议一样。

答案 1 :(得分:13)

但是如果您使用静态主页,则代码为:

<title><?php bloginfo('name'); ?> &raquo; <?php is_front_page() ? bloginfo('description') : wp_title(''); ?></title>

答案 2 :(得分:9)

<强>更新 对于WordPress版本(&gt; = 4.4)

试试这个

function some_name(){
    add_theme_support( 'title-tag' );
}

add_action( 'after_setup_theme', 'some_name' );

在functions.php中执行此操作并删除&#39; title&#39;来自头部的标签......

答案 3 :(得分:7)

根据Amna的回答,我想出了以下代码,当有一个代码时,它应该显示页面标题,然后是网站名称。

<?php wp_title(' - ',TRUE,'right'); bloginfo('name'); ?>

帖子/页面输出:“页面标题 - 站点名称”

主页输出:“网站名称”


显然,这也可以交换显示网站名称。

<?php bloginfo('name'); wp_title(' - '); ?>

发布/页面输出:“网站名称 - 页面标题”

主页输出:“网站名称”


这也可以与条件结合使用,以便在查看主页时显示网站描述。

<?php bloginfo('name'); echo ' - '; is_front_page() ? bloginfo('description') : wp_title(''); ?>

发布/页面输出:“网站名称 - 页面标题”

主页输出:“网站名称 - 网站描述”

答案 4 :(得分:3)

对于WordPress上的谷歌搜索wp_title为空,这是第一个结果。所以我认为我可能会为此分享最优雅的解决方案 在functions.php中为wp_title添加一个过滤器。

function custom_wp_title( $title, $sep ) {
    if ( is_feed() ) {
        return $title;
    }

    global $page, $paged;

    // Add the blog name
    $title .= get_bloginfo( 'name', 'display' );

    // Add the blog description for the home/front page.
    $site_description = get_bloginfo( 'description', 'display' );
    if ( $site_description && ( is_home() || is_front_page() ) ) {
        $title .= " $sep $site_description";
    }

    // Add a page number if necessary:
    if ( ( $paged >= 2 || $page >= 2 ) && ! is_404() ) {
        $title .= " $sep " . sprintf( __( 'Page %s', '_s' ), max( $paged, $page ) );
    }

    return $title;
}
add_filter( 'wp_title', 'custom_wp_title', 10, 2 );

答案 5 :(得分:1)

我使用这个,它永远不会失败:

    function pageTitle($echo){
        $title = "";

        global $paged;
        if (function_exists('is_tag') && is_tag()) {        
            $title .= single_tag_title(__("Tag Archive for &quot;" , 'circle'),false); 
            $title .= '&quot; - '; 
        }
        elseif (is_archive()) {
            $title .= wp_title('',true); 
            //$title .= __(' Archive - ' , 'circle');
            $title .= __(' - ' , 'circle');

        }
        elseif (is_search()) {
        $title .= __('Search for &quot;' , 'circle') . esc_html(get_search_query()).'&quot; - '; 
        }
        elseif (!(is_404()) && (is_single()) || (is_page())) {
            $title .= wp_title('',true); 
            $title .= ' - '; 
        }
        elseif (is_404()) {
            $title .= __('Not Found - ' , 'circle'); 
        }
        if (is_home()) {
            $title .= get_bloginfo('name'); 
            $title .= ' - '; 
            $title .= get_bloginfo('description'); 
        }
        else {
            $title .= get_bloginfo('name'); 
        }
        if ($paged>1) {
            $title .= ' - page ' . $paged; 
        }

        if ( !$echo ) return $title;
        echo $title;
    }

请注意,您可能希望更改其中的翻译域。

答案 6 :(得分:1)

Codex的新攻击如下:

<title><?php wp_title(''); ?></title>

然后在主题文件中的“functions.php”:

add_filter( 'wp_title', 'baw_hack_wp_title_for_home' );
function baw_hack_wp_title_for_home( $title )
{
  if( empty( $title ) && ( is_home() || is_front_page() ) ) {
    return __( 'Home', 'theme_domain' ) . ' | ' . get_bloginfo( 'description' );
  }
  return $title;
}

答案 7 :(得分:1)

不需要。只需在 header.php

的末尾添加<? Php wp_head ();?>代码

祝你好运。

答案 8 :(得分:0)

我在WordPress网站上使用此方法

//Meta Header
if ( ! function_exists( 'dima_wp_title' ) ) :
  function dima_wp_title( $title ) {

    if ( is_front_page() ) {
      return get_bloginfo( 'name' ) . ' | ' . get_bloginfo( 'description' );
    } elseif ( is_feed() ) {
      return ' | RSS Feed';
    } else {
      return trim( $title ) . ' | ' . get_bloginfo( 'name' ); 
    }

  }
  add_filter( 'wp_title', 'dima_wp_title' );
endif;

答案 9 :(得分:0)

谈话的后期......

但是,如果您想使用您用于静态首页的页面的实际标题,可以使用以下内容:

if (is_front_page())
{
    $title = single_post_title( '', false );
}

虽然在wp_title()的实际源代码中,有以下内容,具体为静态首页禁用此功能:

if ( is_single() || ( is_home() && ! is_front_page() ) || ( is_page() && ! is_front_page() ) ) {
    $title = single_post_title( '', false );
}

我怀疑这是有充分理由的。所以,请谨慎行事。

答案 10 :(得分:0)

我的2美分“雾湖”主题,在主页上没有标题,并在所有其他页面上添加了错误的标题。

从header.php中删除以下行解决了这个问题,因为Wordpress现在自己注入标记:

<title><?php wp_title( '|', true, 'right' ); ?></title>

我查阅了以下页面 - https://make.wordpress.org/themes/2015/08/25/title-tag-support-now-required/

答案 11 :(得分:0)

您还可以在标题标签中放入以下内容:

<?php 
    if (is_front_page()) { ?> 
        Home | <?php bloginfo('description'); 
    } else {
        wp_title('|', 'true', 'right'); bloginfo('description');
    } ?>