網站的關鍵字及網頁描述關係網站對搜索引擎的友好程度,如果自己手動加顯然太折騰了,那如何讓 WordPress 網站自動為每篇文章自動關鍵字及網頁描述。每篇文章的內容不同,我們該如何讓 WordPress 自動添加文章描述和關鍵詞呢?下面就讓我們來看看如何給 WordPress 自動添加文章描述和關鍵詞。
在你主題的 functions.php 文件添加以下代碼,各個代碼的功能解析如下:
add_action ( 'wp_head', 'wp_keywords' ); // 添加關鍵字
add_action ( 'wp_head', 'wp_description' ); // 添加頁面描述
/**
+----------------------------------------------------------
* 站點關鍵字 (www.wpnoob.cn)
+----------------------------------------------------------
* @return string
+----------------------------------------------------------
*/
function wp_keywords() {
global $s, $post;
$keywords = '';
if (is_single ()) { //如果是文章頁,關鍵詞則是:標籤+分類 ID
if (get_the_tags ( $post->ID )) {
foreach ( get_the_tags ( $post->ID ) as $tag )
$keywords .= $tag->name . ', ';
}
foreach ( get_the_category ( $post->ID ) as $category )
$keywords .= $category->cat_name . ', ';
$keywords = substr_replace ( $keywords, '', - 2 );
} elseif (is_home ()) {
$keywords = '我是主頁關鍵詞'; //主頁關鍵詞設置
} elseif (is_tag ()) { //標籤頁關鍵詞設置
$keywords = single_tag_title ( '', false );
} elseif (is_category ()) {//分類頁關鍵詞設置
$keywords = single_cat_title ( '', false );
} elseif (is_search ()) {//搜索頁關鍵詞設置
$keywords = esc_html ( $s, 1 );
} else {//默認頁關鍵詞設置
$keywords = trim ( wp_title ( '', false ) );
}
if ($keywords) { //輸出關鍵詞
echo "<meta name="keywords" content="$keywords" />
";
}
}
/**
+----------------------------------------------------------
* 站點描述
+----------------------------------------------------------
* @return string
+----------------------------------------------------------
*/
function wp_description() {
global $s, $post;
$description = '';
$blog_name = get_bloginfo ( 'name' );
if (is_singular ()) { //文章頁如果存在描述字段,則顯示描述,否則截取文章內容
if (! empty ( $post->post_excerpt )) {
$text = $post->post_excerpt;
} else {
$text = $post->post_content;
}
$description = trim ( str_replace ( array (
"
",
"
",
"
",
" ",
" "
), " ", str_replace ( """, "'", strip_tags ( $text ) ) ) );
if (! ($description))
$description = $blog_name . "-" . trim ( wp_title ( '', false ) );
} elseif (is_home ()) {//首頁顯示描述設置
$description = $blog_name . "-" . get_bloginfo ( 'description' ) .'首頁要顯示的描述'; // 首頁要自己加
} elseif (is_tag ()) {//標籤頁顯示描述設置
$description = $blog_name . "有關 '" . single_tag_title ( '', false ) . "' 的文章";
} elseif (is_category ()) {//分類頁顯示描述設置
$description = $blog_name . "有關 '" . single_cat_title ( '', false ) . "' 的文章";
} elseif (is_archive ()) {//文檔頁顯示描述設置
$description = $blog_name . "在: '" . trim ( wp_title ( '', false ) ) . "' 的文章";
} elseif (is_search ()) {//搜索頁顯示描述設置
$description = $blog_name . ": '" . esc_html ( $s, 1 ) . "' 的搜索結果";
} else {//默認其他頁顯示描述設置
$description = $blog_name . "有關 '" . trim ( wp_title ( '', false ) ) . "' 的文章";
}
//輸出描述
$description = mb_substr ( $description, 0, 220, 'utf-8' ) . '..';
echo "<meta name="description" content="$description" />
";
}