当前位置:K88软件开发文章中心编程全书编程全书02 → 文章内容

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

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-4 9:20:39

-->

大家都知道,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
1
<?php
1
add_action(
1
'edit_category_form_fields'
1
,
1
'category_function'
1
);
1
function
1
category_function(){
1
if
1
(isset(
1
$_GET
1
[
1
'action'
1
]) &&
1
$_GET
1
[
1
'action'
1
] ==
1
'edit'
1
)
1
$value
1
= get_option(
1
'cat_set_'
1
.
1
$_GET
1
[
1
'tag_ID'
1
]);
1
$title
1
=
1
'cat_title'
1
;
1
$keywords
1
=
1
'cat_keywords'
1
;
1
$description
1
=
1
'cat_description'
1
;
1
?>
1
<table
1
class
1
=
1
"form-table"
1
></table>
1
<h2>自定义SEO信息</h2>
1
<table
1
class
1
=
1
"form-table"
1
>
1
<tbody>
1
<tr
1
class
1
=
1
"form-field"
1
>
1
<th scope=
1
"row"
1
valign=
1
"top"
1
><label
1
for
1
=
1
"<?php echo $title ?>"
1
>标题</label></th>
1
<td><input name=
1
"<?php echo $title ?>"
1
id=
1
"<?php echo $title ?>"
1
type=
1
"text"
1
value="<?php
1
echo
1
esc_attr(
1
stripslashes
1
(
1
$value
1
[
1
'title'
1
]));
1
?>
1
"><p class="
1
description">默认调用分类名称作为Head中Title信息。</p>
1
</td>
1
</tr>
1
<tr
1
class
1
=
1
"form-field"
1
>
1
<th scope=
1
"row"
1
valign=
1
"top"
1
><label
1
for
1
=
1
"<?php echo $keywords; ?>"
1
>关键词</label></th>
1
<td><input name=
1
"<?php echo $keywords; ?>"
1
id=
1
"<?php echo $keywords; ?>"
1
type=
1
"text"
1
value="<?php
1
echo
1
$value
1
[
1
'keywords'
1
];
1
?>
1
"><p class="
1
description">多个关键词用小写逗号“,”分隔开;默认调用分类名称作为Head中KeyWords信息。</p>
1
</td>
1
</tr>
1
<tr
1
class
1
=
1
"form-field"
1
>
1
<th scope=
1
"row"
1
valign=
1
"top"
1
><label
1
for
1
=
1
"<?php echo $description; ?>"
1
>描述</label></th>
1
<td><textarea name=
1
"<?php echo $description; ?>"
1
id="<?php
1
echo
1
$description
1
;
1
?>
1
" rows="
1
3
1
" cols="
1
30
1
"><?php echo stripslashes($value['description']); ?></textarea><p class="
1
description">若未设置,将显示为“关于‘某某’分类下的所有文章。”作为Head中Description信息。</p>
1
</td>
1
</tr>
1
</tbody>
1
</table>
1
?
1
<?php
1
}
1
add_action(
1
'edit_category'
1
,
1
'save_category_function'
1
);
1
function
1
save_category_function(){
1
if
1
(isset(
1
$_POST
1
[
1
'action'
1
]) && isset(
1
$_POST
1
[
1
'taxonomy'
1
]) &&
1
$_POST
1
[
1
'action'
1
] ==
1
'editedtag'
1
&&
1
$_POST
1
[
1
'taxonomy'
1
] ==
1
'category'
1
){
1
update_option(
1
'cat_set_'
1
.
1
$_POST
1
[
1
'tag_ID'
1
],
1
array
1
(
1
'title'
1
=>
1
$_POST
1
[
1
'cat_title'
1
],
1
'description'
1
=>
1
$_POST
1
[
1
'cat_description'
1
],
1
'keywords'
1
=>
1
$_POST
1
[
1
'cat_keywords'
1
],
1
'template'
1
=>
1
$_POST
1
[
1
'cat_template'
1
],
1
'orderby'
1
=>
1
$_POST
1
[
1
'cat_orderby'
1
],
1
'per_page'
1
=>
1
$_POST
1
[
1
'cat_per_page'
1
],));
1
}
1
};
1
?>

第二步 引入到functions.php

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

1
1
include
1
(
1
"seocategory.php"
1
);

第三步 前台调用

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

标题获取

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

关键字获取

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

描述获取

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

当然,每个主题有不同的优化方式,上面只是介绍了获取方式,你还需要把它插入到你的主题中去,每个主题对标题,关键字,描述有不同的写法,你需要做的就是把它整合到你的主题中去.


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