给网页设置关键字和描述
通过对不同的网页设置相应的关键字和描述信息可以方便搜索引擎建立索引并更好地检索到网页,一个网页的关键字和描述信息位于 HTML 页头标签内(header)。不同的页面可以定义不同的关键子和描述内容,对于文章页面可以使用 “标签” 作为关键字,文章内容的前面150个字作为描述信息,而网站首页可以设置固定的关键字和描述。
对于页面描述里的150个字如果有重复的内容,可以使用模式匹配去除,如果不会出现重复的内容,可以去掉相关的代码,具体实现如下:
function meta_description_keyword() {
global $post;
$description = "客飞翱,记录旅行中的所见所闻,分享心得体会,提供实用的参考信息,内容包括文字、图片和视频 ...";
$keywords = "记录,分享,实用,旅行,游记,文字,照片,视频,博客,vlog,blog,客飞翱";
$output ="";
$tmp_description ="";
$tmp_keywords ="";
if (is_single()){
$tags = wp_get_post_tags($post->ID,array('orderby'=> 'count','order'=> 'RAND','number'=> 10));
foreach ($tags as $tag){
$tmp_keywords = $tmp_keywords.$tag->name.",";
}
$tmp_keywords = rtrim($tmp_keywords, ', ');
if($post->post_excerpt){
$tmp_description = $post->post_excerpt;
}else{
$tmp_description = strip_tags(apply_filters('the_content',$post->post_content));
$format = get_post_format($post) ? : 'standard';
if ( $format == 'gallery' || $format == 'video') {
$matches = preg_replace('/([\x{4e00}-\x{9fa5}]+)\1/u', '$1', $tmp_description);
$tmp_description = $matches?$matches:$tmp_description;
}
$tmp_description = mb_strimwidth($tmp_description,0,150,"...");
$tmp_description = str_replace("\n","",$tmp_description);
}
}
elseif (is_page()){
$tmp_keywords = get_post_meta($post->ID, "keywords", true);
$tmp_description = get_post_meta($post->ID, "description", true);
}
elseif (is_category()){
$tmp_keywords = single_cat_title('', false);
$tmp_description = category_description();
}
elseif (is_tag()){
$tmp_keywords = single_tag_title('', false);
$tmp_description = tag_description();
}
$description = ($tmp_description && $tmp_description!="")?$tmp_description:$description;
$keywords = ($tmp_keywords && $tmp_keywords!="")?$tmp_keywords:$keywords;
$output .= '<meta name="description" content="' . trim(strip_tags($description)) . '" />' . "\n";
$output .= '<meta name="keywords" content="' . trim(strip_tags($keywords)) . '" />' . "\n";
echo "$output";
}
add_action('wp_head', 'meta_description_keyword',1);
把上面的代码放到 functions.php 里面。