给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>
相关推荐
wodrpress资源分享9 小时前
wordpres当前分类调用父分类的名称和链接
wordpress
ts小陈6 天前
WordPress弹窗公告插件-ts小陈
wordpress
东软吴彦祖12 天前
实现基于分布式的LAMP架构+NFS实时同步到备份服务器
linux·运维·服务器·mysql·架构·wordpress
林家阿酒15 天前
WordPress XStore Elementor 前端与编辑器内容不同步的问题
编辑器·wordpress·elementor
皓月盈江17 天前
wordpress网站使用Linux宝塔面板和SQL命令行导入导出超过50M限制的数据库
linux·数据库·sql·mysql·wordpress·宝塔面板·导入导出数据库
xgtu19 天前
WordPress安装或访问时出现数据库连接错误的处理方式
wordpress
A5资源网24 天前
wordpress仿社交软件SOUL 动态标签星球- 为你的博客注入灵魂
css·wordpress
wodrpress资源分享25 天前
Doge东哥wordpress主题
wordpress
皓月盈江1 个月前
wordpress网站首页底部栏显示网站备案信息
linux·服务器·wordpress·网站备案·footer.php·主题编辑器·网站底部添加备案信息
皓月盈江1 个月前
Linux宝塔部署wordpress网站更换服务器IP后无法访问管理后台和打开网站页面显示错乱
linux·服务器·wordpress·无法访问wordpess后台·打开网站页面错乱·linux宝塔面板·wordpress更换服务器