这几天麦子有在整理关于Open Graph元数据的标签信息,看到有不少网友认为这个对于SEO效果很多,但是从策略上讲,趋势对于谷歌的优化是有一些帮助的,毕竟也算是一个协议内容。我们可以使用Yoast SEO插件实现,但是如果我们不用插件如何实现呢?在之前的文章中,我们简单的介绍OG的信息标签的一些功能。
在这里,整理来自国外一个网站的非插件实现的方法,这里先记录下来,后面有用到的时候在基础上修改。
<meta property="og:title" content="<?php the_title(); ?>"/>
<meta property="og:type" content="<?php if (is_single() || is_page()) { echo 'article'; } else { echo 'website';} ?>"/>
<meta property="og:image" content="<?php echo get_fbimg(); ?>"/>
<meta property="og:url" content="<?php the_permalink(); ?>"/>
<meta property="og:description" content="<?php echo get_post_meta($post->ID, '_yoast_wpseo_metadesc', true); ?>"/>
<meta property="og:site_name" content="<?php bloginfo('name'); ?>"/>
我们需要将代码放到头部文件中。
add_filter('language_attributes', 'add_og_xml_ns');
function add_og_xml_ns($content) {
return ' xmlns:og="http://ogp.me/ns#" ' . $content;
}
add_filter('language_attributes', 'add_fb_xml_ns');
function add_fb_xml_ns($content) {
return ' xmlns:fb="https://www.facebook.com/2008/fbml" ' . $content;
}
function get_fbimg() {
$src = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), '', '' );
if ( has_post_thumbnail($post->ID) ) {
$fbimage = $src[0];
} else {
global $post, $posts;
$fbimage = '';
$output = preg_match_all('/<img[^>]+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
if(isset($matches[1][0]) ){
$fbimage = $matches[1][0];
} else {
return false;
}
return $fbimage;
}
if(empty($fbimage)) {
$fbimage = "http://www.yourdomain.com/path-to-your-image/your-fallback-default-image.jpg";
}
return $fbimage;
}
这里是 用来获取缩略图的函数定义放到 Functions.php中。如果没有图我们可以设定一个默认图,比如LOGO。
具体不同的主题兼容性不同,我们需要看看实际的代码变化再调整。
参考地址:https://mercytapscott.com/insert-open-graph-tags-wordpress-theme-without-plugin/
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END