0

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

我直接从 2012 主题中获取了该代码。当我激活 2012 主题时,标题看起来很完美,但是当我使用上面相同代码的自定义主题时,我将我的网站地址作为主页上的标题,而在其他每个页面上,我只得到页面名称后跟一个“|”。知道是什么原因造成的吗?我已经寻找了第二个标题标签,但到目前为止还没有。它破坏了我的搜索引擎优化。

将此添加到我的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 );
4

1 回答 1

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 );
    }
  }
于 2012-12-23T06:00:22.737 回答