Wordpress HTML标题搞砸了

时间:2012-12-23 02:55:41

标签: html wordpress

我无法在我的自定义WordPress主题中获得正确显示的标题。 title属性设置如下:<title><?php wp_title( '|', true, 'right' ); ?></title>

我直接从2012年主题中获取了该代码。当我激活2012主题时,标题看起来很完美,但是当我使用上面相同代码的自定义主题时,我在主页上获取我的网站地址作为标题,而在每个其他页面上,我只获取页面名称接着是“|”。什么可能导致这个?我寻找第二个标题标签,但到目前为止没有。它毁了我的SEO。

将此添加到我的functions.php:

function twentytwelve_wp_title( $title, $sep ) {
    global $paged, $page;

    if ( is_feed() )
        return $title;

    // Add the site name.
    $title .= get_bloginfo( 'name' );

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

    // Add a page number if necessary.
    if ( $paged >= 2 || $page >= 2 )
        $title = "$title $sep " . sprintf( __( 'Page %s', 'twentytwelve' ), max( $paged, $page ) );

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

1 个答案:

答案 0 :(得分:1)

缺少博客名称。这就是为什么只显示页面标题的原因。尝试这样的事情有一个想法:

<title>
    <?php
    bloginfo( 'name' );
    echo " | ";
    if ( is_home() ) {
      _e( "Home" );
    }
    else {
      // Get the custom Title for this page, if any.
      if ( defined( 'Title' ) ) {
        $LimitWords = Title;
        echo string_limit_words( $LimitWords, 4 ) . " ...";
      }
      else {
      // Get the default Title
        $LimitWords = wp_title( '', FALSE );
        echo string_limit_words( $LimitWords, 4 ) . " ...";
      }
    }
    ?>
  </title>

要使该代码生效,您必须在样式表目录的functions.php中添加此功能:

  if ( !function_exists( 'string_limit_words' ) ) {
    function string_limit_words( $string, $word_limit ) {
      $words = explode( ' ', $string, ( $word_limit + 1 ) );
      if ( count( $words ) > $word_limit ) array_pop( $words );
      return implode( ' ', $words );
    }
  }