我能想到,能够搜索或是访问到这篇文章的访客都是资深的seoer,自定义分类标题是深层的wordpress seo优化,可以进一步提升网站的收录排名甚至用户体验,如果标题没有自定义的话,只是短短的两三个字案例或是新闻分类名称,很难被百度收录,那我们如果起一个长一点的标题,用户打开分类目录时又显得过于臃肿。
所以我们要想一个两全其美的方面,有应用中还是短标题,但是在标题栏目里可以自定义给搜索引擎一个优化过的长尾标题。经过大挖的努力终于找到了一个可以解决分类标题自定义的方法,但是只建议有开发经验的用户使用。
自定义WordPress分类标题和标签标题的方法:
1、把以下代码保存成一个PHP文件,如:wa-tit.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 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 |
<?php //自定义wordpress分类标题 class zm_wp_title{ function __construct(){ // 分类 add_action( 'category_add_form_fields', array( $this, 'add_tax_title_field' ) ); add_action( 'category_edit_form_fields', array( $this, 'edit_tax_title_field' ) ); add_action( 'edited_category', array( $this, 'save_tax_meta' ), 10, 2 ); add_action( 'create_category', array( $this, 'save_tax_meta' ), 10, 2 ); // 标签 add_action( 'post_tag_add_form_fields', array( $this, 'add_tax_title_field' ) ); add_action( 'post_tag_edit_form_fields', array( $this, 'edit_tax_title_field' ) ); add_action( 'edited_post_tag', array( $this, 'save_tax_meta' ), 10, 2 ); add_action( 'create_post_tag', array( $this, 'save_tax_meta' ), 10, 2 ); } public function add_tax_title_field(){ ?> <div class="form-field term-title-wrap"> <label for="term_meta[tax_zm_title]">自定义标题</label> <input type="text" name="term_meta[tax_zm_title]" id="term_meta[tax_zm_title]" value="" /> <p class="description">搜索引擎优化自定义标题,不填写即为默认标题</p> </div> <?php } // add_tax_title_field public function edit_tax_title_field( $term ){ $term_id = $term->term_id; $term_meta = get_option( "zm_taxonomy_$term_id" ); $zm_title = $term_meta['tax_zm_title'] ? $term_meta['tax_zm_title'] : ''; ?> <tr class="form-field term-title-wrap"> <th scope="row"> <label for="term_meta[tax_zm_title]">自定义标题</label> <td> <input type="text" name="term_meta[tax_zm_title]" id="term_meta[tax_zm_title]" value="<?php echo $zm_title; ?>" /> <p class="description">搜索引擎优化自定义标题,不填写即为默认标题</p> </td> </th> </tr> <?php } // edit_tax_title_field public function save_tax_meta( $term_id ){ if ( isset( $_POST['term_meta'] ) ) { $t_id = $term_id; $term_meta = array(); $term_meta['tax_zm_title'] = isset ( $_POST['term_meta']['tax_zm_title'] ) ? $_POST['term_meta']['tax_zm_title'] : ''; update_option( "zm_taxonomy_$t_id", $term_meta ); } // if isset( $_POST['term_meta'] ) } // save_tax_meta } // zm_wp_title $wptt_tax_title = new zm_wp_title(); function the_zm_title() { $category = get_the_category(); $term_id = $category[0]->cat_ID; $term_meta = get_option( "zm_taxonomy_$term_id" ); $tax_zm_title = $term_meta['tax_zm_title'] ? $term_meta['tax_zm_title'] : ''; echo $tax_zm_title; } function get_current_tag_id() { $current_tag = single_tag_title('', false); $tags = get_tags(); foreach($tags as $tag) { if($tag->name == $current_tag) return $tag->term_id; } } function zm_tag_title() { $term_id = get_current_tag_id(); $term_meta = get_option( "zm_taxonomy_$term_id" ); $zm_tag_title = $term_meta['tax_zm_title'] ? $term_meta['tax_zm_title'] : ''; echo $zm_tag_title; } ?> |
2、把 wa-title.php 文件引入到主题主函数functions.php中,复制以下代码即可
1 2 |
//自定义标题 require get_template_directory() . '/title.php'; |
完成后,分类编辑里已经出现自定义标题的选项框,下面我们做的就是前台调用
3、以下代码放到自定义 Title 中 ,这个具体需要根据主题情况
(个别主题title是有个人习惯和集成规则的,如果是一个已经运行了一段时间的网站进行这样的调整,是对seo有影响了,相当于重新调整了整站的tdk规则,所以请慎重使用)。
分类标题:
1 |
<?php if ( is_category() ) { ?><title><?php $title = the_zm_title(); echo ($title) ? ''.$title.'' : single_cat_title(); ?> - <?php bloginfo('name'); ?></title><?php } ?> |
标签标题:
1 |
<?php if ( is_tag() ) { ?><title><?php $title = zm_tag_title(); echo ($title) ? ''.$title.'' : single_tag_title("", true); ?> - <?php bloginfo('name'); ?></title><?php } ?> |
好的经过以上的操作,自定义分类的功能完成了,喜欢折腾的小伙伴尽管尝试一下吧。