WordPress的标签与分类功能很相似,为了提高标签页的收录率,写好SEO是个不错的选择,但默认的WordPress后台标签页中没有SEO设置,所以我们需要自行添加该功能,下面以DUX主题为例,添加标签页SEO字段,(DUX的分类页已经添加过SEO字段了)。
添加后台面板
将下面的代码添加到你的主题functions.php中,到后台查看效果,应该如上图所示。
复制
//wordpress增加标签SEO字段 //代码狗 https://www.daimadog.org/6237.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 ' <div class="form-field"> <label for="tag_meta[title]">SEO 标题</label> <input type="text" name="tag_meta[title]" id="tag_meta[title]" /> </div> <div class="form-field"> <label for="tag_meta[keywords]">SEO 关键字(keywords)</label> <input type="text" name="tag_meta[keywords]" id="tag_meta[keywords]" /> </div> <div class="form-field"> <label for="tag_meta[keywords]">SEO 描述(description)</label> <textarea name="tag_meta[description]" id="tag_meta[description]" rows="4" cols="40"></textarea> </div> '; } 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 ' <tr class="form-field"> <th scope="row"> <label for="tag_meta[title]">SEO 标题</label> <td> <input type="text" name="tag_meta[title]" id="tag_meta[title]" value="'. $meta_title .'" /> </td> </th> </tr> <tr class="form-field"> <th scope="row"> <label for="tag_meta[keywords]">SEO 关键字(keywords)</label> <td> <input type="text" name="tag_meta[keywords]" id="tag_meta[keywords]" value="'. $meta_keywords .'" /> </td> </th> </tr> <tr class="form-field"> <th scope="row"> <label for="tag_meta[description]">SEO 描述(description)</label> <td> <textarea name="tag_meta[description]" id="tag_meta[description]" rows="4">'. $meta_description .'</textarea> </td> </th> </tr> '; } 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主题或者DMD主题,其它主题自行查找对应的地方。
修改title内容
打开DUX的function-theme.php文件,搜索_title函数,找到is_tag(),如果没有自行添加判断逻辑,改成如下内容:
复制
//wordpress增加标签SEO字段 //代码狗 https://www.daimadog.org/6237.html 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内容
打开DUX的function-theme.php文件,搜索_the_keywords函数,找到is_tag(),改成如下内容:
复制
//wordpress增加标签SEO字段 //代码狗 https://www.daimadog.org/6237.html $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内容
打开DUX的function-theme.php文件,搜索_the_description函数,找到is_tag(),改成如下内容:
复制
//wordpress增加标签SEO字段 //代码狗 https://www.daimadog.org/6237.html $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']; }
改造完成,部分主题的标题、关键词、描述不是写在function中的,大家自己找自己的,别问我怎么找不到,我对你的主题不熟悉。
评论 (2)