当前位置: 首页 > WordPress > 正文

为WordPress分类目录优化添加seo标题、关键字和描述

大家都知道,WordPress自带的分类目录的设置是很简单的,只能设置标题和上下级关系,不能实现标题自定义,添加关键字和描述信息。

有时候想对分类目录做一些seo关键字优化也是无从下手,虽然有很多插件可以实现,但是你懂的,插件安装太多,网站的速度会被拖慢,所以能不用插件的时候我都不用插件,好在wordpress扩展性很强,我们可以通过扩展来实现。

小伙伴们可以查看我的博客分类目录的标题、关键字和描述信息都是自定义的。

为WordPress分类目录优化添加seo标题、关键词和描述

后台效果图就这样,下面来说说具体的实现。

第一步 新建seocategory.php文件

新建一个seocategory.php文件,将其放入你的主题文件夹内。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
add_action('edit_category_form_fields', 'category_function');
function category_function(){
if(isset($_GET['action']) && $_GET['action'] == 'edit') $value = get_option('cat_set_' . $_GET['tag_ID']);
$title = 'cat_title';
$keywords = 'cat_keywords';
$description = 'cat_description';
?>
<table class="form-table"></table>
<h2>自定义SEO信息</h2>
<table class="form-table">
<tbody>
<tr class="form-field">
<th scope="row" valign="top"><label for="<?php echo $title ?>">标题</label></th>
<td><input name="<?php echo $title ?>" id="<?php echo $title ?>" type="text" value="<?php echo esc_attr(stripslashes($value['title']));
?>"><p class="description">默认调用分类名称作为Head中Title信息。</p>
</td>
</tr>
<tr class="form-field">
<th scope="row" valign="top"><label for="<?php echo $keywords; ?>">关键词</label></th>
<td><input name="<?php echo $keywords; ?>" id="<?php echo $keywords; ?>" type="text" value="<?php echo $value['keywords'];
?>"><p class="description">多个关键词用小写逗号“,”分隔开;默认调用分类名称作为Head中KeyWords信息。</p>
</td>
</tr>
<tr class="form-field">
<th scope="row" valign="top"><label for="<?php echo $description; ?>">描述</label></th>
<td><textarea name="<?php echo $description; ?>" id="<?php echo $description;
?>" rows="3" cols="30"><?php echo stripslashes($value['description']); ?></textarea><p class="description">若未设置,将显示为“关于‘某某’分类下的所有文章。”作为Head中Description信息。</p>
</td>
</tr>
</tbody>
</table>
<?php
}
add_action('edit_category', 'save_category_function');
function save_category_function(){
if(isset($_POST['action']) && isset($_POST['taxonomy']) && $_POST['action'] == 'editedtag' && $_POST['taxonomy'] == 'category'){
update_option('cat_set_' . $_POST['tag_ID'], array('title' => $_POST['cat_title'], 'description' => $_POST['cat_description'], 'keywords' => $_POST['cat_keywords'], 'template' => $_POST['cat_template'], 'orderby' => $_POST['cat_orderby'], 'per_page' => $_POST['cat_per_page'],));
}
};
?>

第二步 引入到functions.php

将seocategory.php引用到你主题的functions.php 文件中

1
include("seocategory.php");

第三步 前台调用

后台把相关信息添加好后,就需要到模板进行调用,使用方法如下。

标题获取

1
2
3
4
5
6
7
8
9
if( is_category() ) {
$cat_id = get_query_var('cat');
$val = get_option("cat_set_$cat_id");
if(!Empty($val) &amp;&amp; $val['title']!=''){
$title = $val['title'].' - '.get_bloginfo('name');
}else{
$title = single_cat_title('', false).' - '.get_bloginfo('name');
}
}

关键字获取

1
2
3
4
5
6
7
8
9
if( is_category() ) {
$cat_id = get_query_var('cat');
$val = get_option("cat_set_$cat_id");
if(!Empty($val) &amp;&amp; $val['keywords']!=''){
$keywords = $val['keywords'];
}else{
$keywords = single_cat_title('', false);
}
}

描述获取

1
2
3
4
5
6
7
8
9
if( is_category() ) {
$cat_id = get_query_var('cat');
$val = get_option("cat_set_$cat_id");
if(!Empty($val) &amp;&amp; $val['description']!=''){
$description= $val['description'];
}else{
$description = $blog_name . "'" . single_cat_title('', false) . "'";
}
}

当然,每个主题有不同的优化方式,上面只是介绍了获取方式,你还需要把它插入到你的主题中去,每个主题对标题,关键字,描述有不同的写法,你需要做的就是把它整合到你的主题中去,下面是我所使用主题示例,供您参考。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
//functions.php 文件添加到wp_head();
//标题
function page_title(){
global $page, $paged;
$title = '';
if(get_option('themes_fo2_seo_ht') &amp;&amp; get_option('themes_fo2_seo_on') &amp;&amp; ( is_home() || is_front_page())){
$title = get_option('themes_fo2_seo_ht');
} elseif ( is_category() ) {
$cat_id = get_query_var('cat');
$val = get_option("cat_set_$cat_id");
if(!Empty($val) &amp;&amp; $val['title']!=''){
$title = $val['title'].' - '.get_bloginfo('name');
}else{
$title = single_cat_title('', false).' - '.get_bloginfo('name');
}
}else{
$title = trim( wp_title('', false) ).' - '.get_bloginfo('name');
}
// Add a page number if necessary:
if ( $paged &gt;= 2 || $page &gt;= 2 )
$title .= ' - ' . sprintf( __( 'Page %s', 'frontopen' ), max( $paged, $page ) );
echo "";
}
add_action('wp_head','page_title');
//关键字
function page_keywords() {
global $s, $post;
$keywords = '';
if ( is_single() ) {
if ( get_the_tags( $post-&gt;ID ) ) {
foreach ( get_the_tags( $post-&gt;ID ) as $key =&gt; $tag ){
$keywordsArr[$key]= $tag-&gt;name;
}
$keywords = implode(',',$keywordsArr);
}else{
$keywords = trim( wp_title('', false) );
}
//foreach ( get_the_category( $post-&gt;ID ) as $category ) $keywords .= $category-&gt;cat_name . ', ';
//$keywords = substr_replace( $keywords , '' , -2);
} elseif ( is_home () ) { $keywords = get_option('themes_fo2_seo_hk');
} elseif ( is_tag() ) { $keywords = single_tag_title('', false);
//} elseif ( is_category() ) { $keywords = single_cat_title('', false);
} elseif ( is_category() ) {
$cat_id = get_query_var('cat');
$val = get_option("cat_set_$cat_id");
if(!Empty($val) &amp;&amp; $val['keywords']!=''){
$keywords = $val['keywords'];
}else{
$keywords = single_cat_title('', false);
}
} elseif ( is_search() ) { $keywords = esc_html( $s, 1 );
} else { $keywords = trim( wp_title('', false) );
}
if ( $keywords ) {
echo "\n";
}
}
add_action('wp_head','page_keywords');
//网站描述
function page_description() {
global $s, $post;
$description = '';
$blog_name = get_bloginfo('name');
if ( is_singular() ) {
if( !empty( $post-&gt;post_excerpt ) ) {
$text = $post-&gt;post_excerpt;
} else {
$text = $post-&gt;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 = get_option('
themes_fo2_seo_hd');
} elseif ( is_tag() ) { $description = $blog_name . "'
" . single_tag_title('', false) . "'";
//} elseif ( is_category() ) { $description = $blog_name . "'
" . single_cat_title('', false) . "'";
} elseif ( is_category() ) {
$cat_id = get_query_var('
cat');
$val = get_option("cat_set_$cat_id");
if(!Empty($val) &amp;&amp; $val['
description']!=''){
$description = $val['
description'];
}else{
$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 "\n";
}
add_action('
wp_head','page_description');

这是我实现的为WordPress分类目录做优化,添加seo标题、关键字和描述信息的一个方法,小伙伴们如果您有更好的方法,或者此方法的有误,欢迎大家指正。

本文固定链接: http://www.ouchaoman.com/2016/06/11/wordpress-add-title-key-description/ | 欧阳博客

该日志由 欧阳 于2016年06月11日发表在 WordPress 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 为WordPress分类目录优化添加seo标题、关键字和描述 | 欧阳博客
【上一篇】

为WordPress分类目录优化添加seo标题、关键字和描述:等您坐沙发呢!

发表评论

快捷键:Ctrl+Enter