给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>
相关推荐
2601_9657984715 小时前
Salient Theme Setup Guide for Fast Creative WordPress Sites
数据库·web3·php·wordpress
2601_965798473 天前
Boutique Business Consulting WordPress Architecture & SEO Setup
android·theme·wordpress
2601_965798474 天前
Plastic Surgery Clinic Web Setup: Deploying Rejuvita WordPress
php·theme·wordpress
2601_965798474 天前
Contractor Web Setup: Deploying Bathrooms & Kitchens Theme Fast
前端·web3·php·wordpress
e6zzseo11 天前
wordpress独立站seo怎么做才有效
seo·wordpress·独立站·内容优化·外链建设
Web极客码13 天前
如何让用户订阅WordPress评论?提升用户互动的有效策略
运维·服务器·wordpress
fobwebs13 天前
Wordpress Xstore 主题安装Elementor Pro 后找不到某些Elements 组件的解决方法
element·wordpress·form·xstore·pro elements·elementor pro
代龙涛14 天前
WordPress sidebar.php 侧边栏开发教程
开发语言·php·wordpress
代龙涛15 天前
WordPress header.php 与 footer.php 模板结构详解
开发语言·php·wordpress
Web极客码20 天前
如何在WordPress中添加动态内容
服务器·前端·wordpress