大家都知道,WordPress自带的分类目录是设置是很简单的,只能设置标题和上下级关系,不能实现标题自定义,添加关键字和描述信息。
有时候想对分类目录做一些seo关键字优化也是无从下手,虽然有很多插件可以实现,但是你懂的,插件安装太多,网站的速度会被拖慢,所以能不用插件的时候我都不用插件,好在wordpress扩展性很强,我们可以通过扩展来实现。
小伙伴们可以查看我的博客分类目录的标题、关键字和描述信息都是自定义的。
后台效果图就这样,下面来说说具体的实现。
第一步 新建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
42
|
<?phpadd_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) && $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) && $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) && $val['description']!=''){$description= $val['description'];}else{$description = $blog_name . "'" . single_cat_title('', false) . "'";}} |
当然,每个主题有不同的优化方式,上面只是介绍了获取方式,你还需要把它插入到你的主题中去,每个主题对标题,关键字,描述有不同的写法,你需要做的就是把它整合到你的主题中去.

