WordPress 主题添加分类/标签自定义标题
以下代码由PHP站长网 52php.cn收集自互联网现在PHP站长网小编把它分享给大家,仅供参考 我们知道为 wordpress 分类、标签添加自定义的好处在于可以做网站的搜索引擎优化(有利于 WordPress SEO),又可以提升用户体验。如果不使用自定义标题的话,即文章的标题即为网页搜索引擎抓取的标题,分类标题,需要简短一点,否则用户打开分类目录时会显得很混乱。 从搜索引擎优化角度来说,这样简短的标题也没有什么不好,但是,从整体上来说,并没有对网站进行好的搜索引擎优化。而为 WordPress 采用自定义标题的方式,可以适当增加关键词的标题,既能吸引用户,又能对搜索引擎展现良好。经过一番搜索和摸索,以及阅读 WordPress 文档,总算是找到了解决办法。在这里,不得不说一下,技术性的问题,一定要记得谷歌,记住:谷歌!很早之前用度娘查找,收获不大,当然,并不是说没有参考价值,但是却相对要小。用谷歌,这个问题很快让我找到了方案。 为 WordPress 添加分类、标签自定义标题的实现方法:把下面的代码保存复制成一个 PHP 文件,比如:title.php <?php //自定义分类标题 class zm_wp_title{ function __construct(){ // 分类 add_action( 'category_add_form_fields',array( $this,'add_tax_title_field' ) ); add_action( 'category_edit_form_fields','edit_tax_title_field' ) ); add_action( 'edited_category','save_tax_meta' ),10,2 ); add_action( 'create_category',2 ); // 标签 add_action( 'post_tag_add_form_fields','add_tax_title_field' ) ); add_action( 'post_tag_edit_form_fields','edit_tax_title_field' ) ); add_action( 'edited_post_tag',2 ); add_action( 'create_post_tag',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、把 title.php 文件引入到主题函数 functions.php 中 //自定义标题 require get_template_directory() . '/title.php'; 完成上面的步骤之后,基本上后台就已经出现了分类、标签自定义标题填写框,接下来需要做的就是前台的调用。 3、把下面的代码放到自定义 Title 中 ,这个需要根据主题情况。 分类标题: <?php if ( is_category() ) { ?><title><?php $title = the_zm_title(); echo ($title) ? ''.$title.'' : single_cat_title(); ?> - <?php bloginfo('name'); ?></title><?php } ?> 标签标题: <?php if ( is_tag() ) { ?><title><?php $title = zm_tag_title(); echo ($title) ? ''.$title.'' : single_tag_title("",true); ?> - <?php bloginfo('name'); ?></title><?php } ?> 非常简单,就是判断自定义标题有没有输入,如果没有的话,即显示原标题,如果有自定义标题,则显示自定义标题。 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |