WordPress 主题添加分类/标签自定义标题

下面是编程之家 jb51.cc 通过网络收集整理的代码片段。编程之家小编现在分享给大家,也给大家做个参考。

我们知道为 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 } ?>

非常简单,就是判断自定义标题有没有输入,如果没有的话,即显示原标题,如果有自定义标题,则显示自定义标题。

以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

相关文章

我想将wordpress的默认接口路由改掉,愿意是默认的带一个 wp...
wordpress自定义分类法之后,我看到链接都自动在后面添加了一...
事情是这样的,我用 get_post_type 函数创建了一个自定义分类...
最近网站莫名其妙的被顶上了,过一个多小时,就注册一个账号...
最近服务器要到期了,就想着把网站转移到另外一台服务器,本...
今天在写wordpress的接口,然后碰到个奇怪的问题,怎么访问都...