给wordpress添加关键词与描述

Wordpress网站的关键字及网页描述关系网站对搜索引擎的友好程度,如果自己手动加显然太折腾了,那如何让WordPress博客自动为每篇文章自动关键字及网页描述。每篇文章的内容不同,我们该如何让wordpress自动添加文章描述和关键词呢?下面就让我们来看看如何给wordpress自动添加文章描述和关键词。

重构:首页,分类页,文章页,单页,搜索页面,标签页,专题,快讯页,作者页,404等

第一种:

在你主题的functions.PHP文件添加以下代码,各个代码的功能解析如下:

复制代码
add_action ( 'wp_head', 'wp_keywords' ,1 ); // 添加关键字
add_action ( 'wp_head', 'wp_description' ,1 ); // 添加页面描述
	
	
/**
 +----------------------------------------------------------
 * 站点关键字
 +----------------------------------------------------------
 * @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\" />\n";
	}
}


/**
 +----------------------------------------------------------
 * 站点描述
 +----------------------------------------------------------
 * @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 (
				"\r\n",
				"\r",
				"\n",
				" ",
				" " 
		), " ", 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\" />\n";
}

第二种:

复制代码
//Title标题
function bzg_filter_title( $title ) {
	$title['site'] = '';
	$title['tagline'] = '';
	$title['page'] = '';
	return $title;
}
add_filter( 'document_title_parts', 'bzg_filter_title', 10, 1 );
 
function bzg_seo_title() {
	global $cat, $tag_id, $page, $paged;
	$page_num = '';
	if ( $paged >= 2 || $page >= 2 )
		$page_num = '_' . sprintf( '第%s页', max( $paged, $page ) );
	
	$title = wp_get_document_title();
	if( is_author() )
		$title = '作者:' . $title;
	if( is_category() && get_term_meta( $cat , 'seo_title', true ) )
		$title = get_term_meta( $cat , 'seo_title', true );
	if( is_tag() && get_term_meta( $tag_id , 'seo_title', true ) )
		$title = get_term_meta( $tag_id , 'seo_title', true );
	if ( ! is_home() ) {
		$title .= $page_num . ' - ';
		$title .= get_option('blogname');
	} else {
		$description = get_option( 'blogdescription' );
		$home_title = get_option( 'home_title' );
		if ( $home_title ) {
			$title = $home_title;
		} elseif($description) {
			$title .= ' - ' . $description;
		}
		$title .= $page_num;
	}
	
	return $title;
}

function bzg_seo_keywords() {
	global $post;
	$keywords = '';
	if ( is_home() )
		$keywords = get_option( 'home_keywords' );
	if ( ( is_category() || is_tag() ))
		$keywords = single_cat_title('', false);
	if ( is_single() || is_page() ) {
		if ( $post->post_excerpt ) {
			$keywords = $post->post_excerpt;
		} else {
			$keywords = $post->post_title;
		}
	}
	return $keywords;
}

//Description标签
function bzg_seo_description() {
	global $post;
	$description = '';
	if ( is_home() )
		$description = get_option( 'home_description' );
	
	if ( ( is_category() || is_tag() ) && category_description() )
		$description = wp_strip_all_tags( category_description(), true );
	
	if ( is_single() || is_page() ) {
		if ( $post->post_excerpt ) {
			$description = $post->post_excerpt;
		} else {
			$description = mb_strimwidth(esc_html(wp_strip_all_tags($post->post_content, true)), 0, 200);
		}
	}
	
	return $description;
}

header.php 调用:

复制代码
<head>
 
    <title><?php echo bzg_seo_title(); ?></title>
    <?php
    $bzg_keywords = bzg_seo_keywords();
    if (!empty($bzg_keywords)) {
        echo '<meta name="keywords" content="' . $bzg_keywords . '" />';
        echo "\n";
    }
    $bzg_description = bzg_seo_description();
    if (!empty($bzg_description)) {
        echo '<meta name="description" content="' . $bzg_description . '" />';
        echo "\n";
    }
    ?>
    <?php if (is_home()) : ?>
    <?php endif; ?>
 
</head>
相关推荐
longze_72 小时前
解决wordpress内网穿透后,公网无法访问wordpress管理后台wp-admin问题
数据库·wordpress·反向代理
WordPress学习笔记18 小时前
WordPress新手建站选SiteGround还是Hostinger
wordpress
WordPress学习笔记1 天前
专业WooCommerce模板一站式服务平台
wordpress
Web极客码1 天前
如何在WordPress中轻松添加阴影框提升网站设计
wordpress
WordPress学习笔记1 天前
wordpress最好用的页面编辑器古腾堡Gutenberg编辑器
编辑器·wordpress
Web极客码1 天前
在WordPress中启用http2
https·wordpress
Web极客码2 天前
WordPress 被植入隐藏管理员后门?清理实战分析
服务器·网络·wordpress
Web极客码3 天前
WordPress 迁移到新域名后总是跳回旧域名:原因拆解与排查顺序
wordpress
Web极客码6 天前
真实复盘影子目录攻击——绕过WordPress固定链接劫持的手法
wordpress·网站安全·网络攻击·谷歌seo·网站劫持
WordPress学习笔记8 天前
米思齐WordPress
wordpress