WordPress的DUX主题是缙哥哥使用的最久的一款正版主题,最近呢有小伙伴问我,为什么 Tag 标签没有自定义SEO功能?问我能不能给DUX主题加一个 Tag 标签跟分类目录那样的自定义 SEO 功能……
缙哥哥当时是有点郁闷的……毕竟DUX主题的标签SEO已经非常好了,从缙哥哥的博客就可以看出,很多标签都已被收录,并排名在前。但是万一人家是个SEO高手呢?我的观点也未必是正确的,所以还是搞了一下这个东西。
DUX主题分类目录与标签对比
缙哥哥当前演示版本为DUX6.3版本。如果你也喜欢,可以移步购买DUX主题。
我也要买一个主题
DUX主题后台标签编辑页
DUX主题的后台中,标签只有简简单单的名称、别名、图像描述这3个字段。
DUX主题后台分类编辑页
而分类目录,却有SEO标题
、SEO关键词(keywords)
、SEO描述(description)
这3个自定义SEO字段。
OK,那我们就来给 Tag 标签页也增加这几个功能吧!
代码修改
添加 Tag 标签 SEO 字段
首先,将下面的代码添加到你的主题functions.php
文件中,也就是在标签编辑那添加这3个字段。
复制
//DUX主题 Tag 标签增加自定义 SEO 功能 - https://www.dujin.org/15730.html
class __Tax_Tags{
function __construct(){
add_action( 'add_tag_form_fields', array( $this, 'add_tag_field' ) );
add_action( 'edit_tag_form_fields', array( $this, 'edit_tag_field' ) );
add_action( 'edited_post_tag', array( $this, 'save_tag_meta' ), 10, 2 );
add_action( 'create_post_tag', array( $this, 'save_tag_meta' ), 10, 2 );
}
public function add_tag_field(){
echo '
'; } public function edit_tag_field( $term ){ $term_id = $term->term_id; $tag_meta = get_option( "_tags_meta_$term_id" ); $meta_style = isset($tag_meta['style']) ? $tag_meta['style'] : ''; $meta_title = isset($tag_meta['title']) ? $tag_meta['title'] : ''; $meta_keywords = isset($tag_meta['keywords']) ? $tag_meta['keywords'] : ''; $meta_description = isset($tag_meta['description']) ? $tag_meta['description'] : ''; echo ''; } public function save_tag_meta( $term_id ){ if ( isset( $_POST['tag_meta'] ) ) { $tag_meta = array(); $tag_meta['style'] = isset ( $_POST['tag_meta']['style'] ) ? esc_sql( $_POST['tag_meta']['style'] ) : ''; $tag_meta['title'] = isset ( $_POST['tag_meta']['title'] ) ? esc_sql( $_POST['tag_meta']['title'] ) : ''; $tag_meta['keywords'] = isset ( $_POST['tag_meta']['keywords'] ) ? esc_sql( $_POST['tag_meta']['keywords'] ) : ''; $tag_meta['description'] = isset ( $_POST['tag_meta']['description'] ) ? esc_sql( $_POST['tag_meta']['description'] ) : ''; update_option( "_tags_meta_$term_id", $tag_meta ); } } } $tax_tags = new __Tax_Tags();
添加前端输出
这里需要修改DUX主题function-theme.php
文件。
修改title标题
Ctrl F搜索function _title
函数,再在其下方找到is_tag(),如果没有自行添加判断逻辑
复制
if(is_tag()){
$html = single_tag_title();
$tag_ID = get_queried_object()->term_id;
$tags_meta = get_option( "_tags_meta_$tag_ID" );
if(isset($tags_meta['title'])){
$html=$tags_meta['title']._get_delimiter().get_bloginfo('name');
}
}
修改keywords关键字
Ctrl F搜索function _the_keywords
函数,再在其下方找到is_tag()
复制
$keywords = single_tag_title('', false);
$tag_ID = get_queried_object()->term_id;
$tags_meta = get_option( "_tags_meta_$tag_ID" );
if($tags_meta['keywords']){
$keywords=$tags_meta['keywords'];
}
修改description描述
Ctrl F搜索function_the_description
函数,再在其下方找到is_tag()
复制
$description = trim(strip_tags(tag_description()));
$tag_ID = get_queried_object()->term_id;
$tags_meta = get_option( "_tags_meta_$tag_ID" );
if($tags_meta['description']){
$description=$tags_meta['description'];
}
就这么4个地方,就搞定了。主要是DUX主题规范好找,其他主题自行摸索。
缙哥哥还想说的是,如果你的网站没什么内容,你就是自定义SEO弄的再多,弄的再好也没有任何卵用,内容为王!切勿拣了芝麻丢了西瓜,做些本末倒置的事情!
原文地址:https://www.dujin.org/15730.html