Products
GG网络技术分享 2025-03-18 16:13 3
在谈到WordPress优化时,每个人都不禁提到标题关键字和描述的优化,尽管搜索引擎现在说元关键字和元描述不再像过去那样重要。但我们仍然相信它们在搜索引擎排名中的重要性。曾经很受欢迎的插件之一All in one SEO pack可以完成这些SEO优化,但是这个插件的一些博主表明百度的搜索引擎不是很友好并占用资源。实际上,我们可以使用这个插件。原理,我用代码实现SEO优化,这样可以减少使用更多的插件,为我们的Wordoress减肥;并且可以实现我们的优化目的。好的,让我们看看代码并将以下代码添加到主题的head标签中以替换原始主题:
<?php if (is_home()){
$keywords = \"指点聚,wordpress主题,wordpress主题开发,wordpress实用教程,运营干货,PHP源码\";
$description = \"指点聚,你要的我不一定有,但是我有的一定是干货 - https://www.tinggezhao.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);
}
到这里已经完美解决,本文所用的方法是从网上收集整理出来的,希望对各位有用。本人入门尚浅,如有不正确之处,望请高手纠正,欢迎(轻点)拍砖。
WordPress函数is_single用于判断是否文章类型为post的页面,但不包括附件(attachments)和页面(page)。换句话说,is_single()函数判断当前页面是否是文章页面,如果要包含附件和页面,请使用is_singular()函数。
另外需要注意is_post()函数已被弃用,请使用is_single()函数代替。
is_single( int|string|array $post = \\\'\\\' )
$post
整数、字符串、数组,默认为空
可以传递文章ID、标题、别名或数组
以下示例判断是否ID为66的文章页面:
<?phpif(is_single(66)){// 在ID为66的文章页面输出}?>
is_single()函数位于:wp-includes/query.php
相关函数:
Demand feedback