增加seo好感度,wordpress给文章增加og协议,即meta标签形式如 meta property=”og:

这个标题是什么意思?什么是og协议。先不说到底是什么意思。可能大家在一些博客上面,有时候一篇文章,你查看源代码的时候,会在里面,发现如“meta property=”og:description””、“meta property=”og:site_name””之类的代码。这个就是og协议。
增加seo好感度,wordpress给文章增加og协议,即meta标签形式如 meta property=”og:_图片
这个协议有什么好处?据说这个东西是标明原创的一个要素。经过小白几个网站的测试。使用这个og协议的网站,明显百度要更青睐。收录更快。这是我亲测得到的结果。所以,我准备把其他几个没有og协议的站点也改进一下。

本来想找wordpress插件来实现。貌似没有。倒找到一段代码。直接添加到主题文件的function.php里面即可。

/**
* WordPress 星火计划原创保护专用META优化代码(最终版) 
*/
add_action('wp_head', 'starfire',0);
if(!function_exists('starfire')){
  function starfire(){
    //新增判断,如果是原创文章才加入星火计划META申明
     global $wpdb;
     $post_id = ( null === $post_id ) ? get_the_ID() : $post_id;
     $copy = get_post_meta($post_id , 'author', true);
     if (is_singular() && empty($copy)) {
        date_default_timezone_set('PRC');
        echo '<meta property="og:type" content="article"/>
        <meta property="article:published_time" content="'.get_the_date('c').'"/>
        <meta property="og:release_date" content="'.get_the_date('c').'"/>
        <meta property="article:author" content="';bloginfo('name'); echo '" />';
        echo '<meta property="og:author" content="';bloginfo('name');echo '" />';
        echo '<meta property="og:url" content="';the_permalink(); echo '"/>';
        //输出文章标题+分隔符+网站名称,不喜欢这种形式的请自行改造(如果不需要这个标签,请删除以下三行)。
        echo '<meta property="og:title" content="'.trim(wp_title('',0)).' | '; bloginfo('name'); echo '" />';
        //输出博客名称,如果想改成其他内容,比如作者请自行修改 bloginfo('name')
        echo '<meta property="article:published_first" content="';bloginfo('name');echo ',';
        the_permalink();
        //默认截取文章220个字作为摘要,可以自行修改下行220为其他整数
        echo '" /><meta property="og:description" content="'.get_mypost_excerpt($post_id, 220).'……" />
        <meta property="og:image" content="'.get_mypost_thumbnail($post_id).'" />
        <meta itemprop="image" content="' . get_mypost_thumbnail($post_id) . '" />';
    }
  }
}
/**
* WordPress 获取文章摘要整理版 
*/
function get_mypost_excerpt($post_ID,$len){
    if (!function_exists('utf8Substr')) {
        function utf8Substr($str, $from, $len) {
            return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
                '((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s',
                '$1',$str);
        }
    }
    if(!$post_content){
            $post = get_post($post_ID);
            $post_content = $post->post_content;
   }
    if ($post->post_excerpt) {
            $description  = $post->post_excerpt;
    } else {
        if(preg_match('/<p>(.*)<\/p>/iU',trim(strip_tags($post->post_content,"<p>")),$result)){
            $post_content = $result['1'];
        } else {
            $post_content_r = explode("\n",trim(strip_tags($post->post_content)));
            $post_content = $post_content_r['0'];
        }
        $description = utf8Substr($post_content,0,$len);
        return $description;
    }
}
/**
* WordPress 获取文章图片加强版 
*/
function get_mypost_thumbnail($post_ID){
    if (has_post_thumbnail()) {
            $timthumb_src = wp_get_attachment_image_src( get_post_thumbnail_id($post_ID), 'full' ); 
            $url = $timthumb_src[0];
    } else {
        if(!$post_content){
            $post = get_post($post_ID);
            $post_content = $post->post_content;
        }
        preg_match_all('|<img.*?src=[\'"](.*?)[\'"].*?>|i', do_shortcode($post_content), $matches);
        if( $matches && isset($matches[1]) && isset($matches[1][0]) ){       
            $url =  $matches[1][0];
        }else{
            $url =  '';
        }
    }
    return $url;
}

如果上述方法不好使,也可以在header.php里面添加如下代码来实现:

//精准获取当前页面地址(也可以添加到functions.php当中作为固定函数)
if(!function_exists('currenturl')){
        function currenturl() {
                $current_url = home_url(add_query_arg(array()));
                if (is_single()) {
                        $current_url = preg_replace('/(\?|\/comment|page|#).*$/','',$current_url);
                } else {
                        $current_url = preg_replace('/(\?|comment|page|#).*$/','',$current_url);
                }
                echo $current_url;
        }
}
//如果是文章或页面则输出以下meta标签
if (is_singular()) { ?>
<meta property="og:type" content="article"/>
<meta property="article:published_time" content="<?php the_time( 'Y-m-d\TG:i:s+08:00'); ?>"/>
<meta property="article:author" content="<?php bloginfo('name'); ?>"/>
<meta property="article:published_first" content="<?php bloginfo('name');?>, <?php currenturl(); ?>"/>
<?php } ?>

未经允许不得转载:自学控 - 自己建站也轻松 » 增加seo好感度,wordpress给文章增加og协议,即meta标签形式如 meta property=”og:

分享到: 更多 (0)
avatar
自己建站,一点一滴积累经验。

自学控[zixuekong.com]

关于本站
切换注册

登录

忘记密码 ?

切换登录

注册