wordpress的关键字和关键字描述的自动添加

阅读次数: 4,112

  • A+
所属分类:PHP 建站 运维

最新要做下SEO推广,但是发现WordPress的关键词和关键词描述老是出不来。还找了两个插件,但是效果不是很理想。最终发现了一篇文章 内容如下

在主题的 公共方法 function.php中结尾添加 如下代码

add_action ( 'wp_head', 'wp_keywords' ); // 添加关键字
add_action ( 'wp_head', 'wp_description' ); // 添加页面描述

    /**
 +----------------------------------------------------------
 * 站点关键字(www.shikexu.com)
 +----------------------------------------------------------
 +----------------------------------------------------------
 */
function wp_keywords() {
    global $s, $post;
    $keywords = '';
    if (is_single ()) {  //如果是文章页,关键词则是:标签+分类ID
        if (get_the_tags ( $post->ID )) {
            foreach ( get_the_tags ( $post->ID ) as $tag )
                $keywords .= $tag->name . ', ';
        }
        foreach ( get_the_category ( $post->ID ) as $category )
            $keywords .= $category->cat_name . ', ';
        $keywords = substr_replace ( $keywords, '', - 2 );
    } elseif (is_home ()) {
        $keywords = '时刻需,PHP技术,linux技术,服务器技术,电子技术';  //主页关键词设置
    } elseif (is_tag ()) {  //标签页关键词设置
        $keywords = single_tag_title ( '', false );
    } elseif (is_category ()) {//分类页关键词设置
        $keywords = single_cat_title ( '', false );
    } elseif (is_search ()) {//搜索页关键词设置
        $keywords = esc_html ( $s, 1 );
    } else {//默认页关键词设置
        $keywords = trim ( wp_title ( '', false ) );
    }
    if ($keywords) {  //输出关键词
        echo '<meta name="keywords" content="'.$keywords.'" />';
    }
}


/**
 +----------------------------------------------------------
 * 站点描述
 +----------------------------------------------------------
 */
function wp_description() {
    global $s, $post;
    $description = '';
    $blog_name = get_bloginfo ( 'name' );
    if (is_singular ()) {  //文章页如果存在描述字段,则显示描述,否则截取文章内容
        if (! empty ( $post->post_excerpt )) {
            $text = $post->post_excerpt;
        } else {
            $text = $post->post_content;
        }
        $description = trim ( str_replace ( array (
                "rn",
                "r",
                "n",
                " ",
                " " 
        ), " ", str_replace ( "", "'", strip_tags ( $text ) ) ) );
        if (! ($description))
            $description = $blog_name . "-" . trim ( wp_title ( '', false ) );
    } elseif (is_home ()) {//首页显示描述设置
        $description = $blog_name . "-" . get_bloginfo ( 'description' ) .'首页要显示的描述'; // 首頁要自己加
    } elseif (is_tag ()) {//标签页显示描述设置
        $description = $blog_name . "有关 '" . single_tag_title ( '', false ) . "' 的文章";
    } elseif (is_category ()) {//分类页显示描述设置
        $description = $blog_name . "有关 '" . single_cat_title ( '', false ) . "' 的文章";
    } elseif (is_archive ()) {//文档页显示描述设置
        $description = $blog_name . "在: '" . trim ( wp_title ( '', false ) ) . "' 的文章";
    } elseif (is_search ()) {//搜索页显示描述设置
        $description = $blog_name . ": '" . esc_html ( $s, 1 ) . "' 的搜索結果";
    } else {//默认其他页显示描述设置
        $description = $blog_name . "有关 '" . trim ( wp_title ( '', false ) ) . "' 的文章";
    }
    //输出描述
    $description = mb_substr ( $description, 0, 220, 'utf-8' ) . '..';
    echo '<meta name="description" content="'.$description.'" />';
    echo "<script>(function(){var bp = document.createElement('script');var curProtocol = window.location.protocol.split(':')[0];if (curProtocol === 'https') {bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';} else {bp.src = 'http://push.zhanzhang.baidu.com/push.js';}var s = document.getElementsByTagName('script')[0];s.parentNode.insertBefore(bp, s);})();</script>";
}

然后再查看文章试试 会发现已经有了,其中取关键词的优先级也在代码中体现了。

先判断是否是首页  再判断是否 有 tag()

is_category ()
is_archive ()
is_search ()

按照这个优先级的顺序出的关键词和描述

效果如下

wordpress的关键字和关键字描述的自动添加

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: