在谈到WordPress优化时,每个人都不禁提到标题关键字和描述的优化,尽管搜索引擎现在说元关键字和元描述不再像过去那样重要。但我们仍然相信它们在搜索引擎排名中的重要性。曾经很受欢迎的插件之一All in one SEO pack可以完成这些SEO优化,但是这个插件的一些博主表明百度的搜索引擎不是很友好并占用资源。实际上,我们可以使用这个插件。原理,我用代码实现SEO优化,这样可以减少使用更多的插件,为我们的Wordoress减肥;并且可以实现我们的优化目的。好的,让我们看看代码并将以下代码添加到主题的head标签中以替换原始主题:
<?php if (is_home()){ $keywords = "指点聚,wordpress主题,wordpress主题开发,wordpress实用教程,运营干货,PHP源码"; $description = "指点聚,你要的我不一定有,但是我有的一定是干货 - https://www.zhidianju.com"; } elseif (is_single()){ if ($post->post_excerpt) { $description = $post->post_excerpt; } else { $str = csubstr(strip_tags($post->post_content),0,220); $str = trim($str); $str = strip_tags($str,""); $str = ereg_replace("\t","",$str); $str = ereg_replace("\r\n","",$str); $str = ereg_replace("\r","",$str); $str = ereg_replace("\n","",$str); $str = ereg_replace(" "," ",$str); $description = trim($str); } $keywords = ""; $tags = wp_get_post_tags($post->ID); foreach ($tags as $tag ) { $keywords = $keywords . $tag->name . ", "; } } ?> <meta name="keywords" content="<?=$keywords?>" /> <meta name="description" content="<?=$description?>" /> <title><?php global $page, $paged; wp_title( '|', true, 'right' ); bloginfo( 'name' ); $site_description = get_bloginfo( 'description', 'display' ); if ( $site_description && ( is_home() || is_front_page() ) ) echo " | $site_description"; if ( $paged >= 2 || $page >= 2 ) echo ' | ' . sprintf( __( 'Page %s' ), max( $paged, $page ) ); ?></title>
注意:当截获文章内容以进行描述时,将自动删除所有空格和换行符。
添加后,刷在前台看效果,是不是已经出来了。嘿……不要开心,你需要实现meta部分的完美优化,你必须迈出一步。让我们仔细看看这部分的元描述。您可以阅读更多文章,您会发现其中一个问题:当编码为UTF-8时,描述的截取有时会在最后变为乱码。为什么是这样?因为当拦截文章内容时描述是基于字符(默认设置是220),我们都知道Wordpress模板的字符集是UTF-8,它是一个字母和一个字节,用于英文(8位) )。 )编码,而中文是一个汉字三个字节(24位)进行编码。因此截断的函数只会判断要剪切的字节数。如果汉字仅显示该位置的三分之一或三分之二,则汉字无法完全显示,并且该功能不能智能。如果你有一个以上的字节或少一个字节怎么办?然后就是乱码。因此,我们需要用处理替换截断的函数。
将:添加到主题的模板函数(functions.php)
// 解决utf8截取乱码问题 function csubstr($string, $beginIndex, $length){ if(strlen($string) < $length){ return substr($string, $beginIndex); } $char = ord($string[$beginIndex + $length - 1]); if($char >= 224 && $char <= 239){ $str = substr($string, $beginIndex, $length - 1); return $str; } $char = ord($string[$beginIndex + $length - 2]); if($char >= 224 && $char <= 239){ $str = substr($string, $beginIndex, $length - 2); return $str; } return substr($string, $beginIndex, $length); }
到这里已经完美解决,本文所用的方法是从网上收集整理出来的,希望对各位有用。本人入门尚浅,如有不正确之处,望请高手纠正,欢迎(轻点)拍砖。
Your point of view caught my eye and was very interesting. Thanks. I have a question for you.