WordPress主题开发给分类栏目及标签添加自定义字段教程

WordPress主题开发给分类栏目及标签添加自定义字段教程

我们在开发 wordpress 主题的过程中一般会对分类进行一些其他字段的设置来完成一些可控性的功能,需要给分类设置自定义字段,今天为大家讲讲WordPress主题开发给分类栏目及标签添加自定义字段教程。

 

一般来说,文章的标题组成为 文章标题 – 网站名称,我们需要某些分类的文章的标题只有 文章标题 ,可以用以下方法来实现,首先我们给分类添加一个字段来控制是否启用上面说的那个功能。

 

add_action(‘category_add_form_fields’,’erphp_ct_add_category_field’,20,2);

 

function erphp_ct_add_category_field(){

 

echo ‘<div class=”form-field”>

 

<label for=”erphp_cat_title”>标题去站名</label>

 

<select name=”erphp_cat_title” id=”erphp_cat_title” class=”postform”>

 

<option value=”0″>关闭</option>

 

<option value=”1″>开启</option>

 

</select>

 

<p class=”description”>分类下的文章标题里不带网站名</p>

 

</div>’;

 

}

 

add_action(‘category_edit_form_fields’,’erphp_ct_edit_category_field’,20,2);

 

function erphp_ct_edit_category_field($tag){

 

$erphp_cat_title = get_term_meta($tag->term_id,’erphp_cat_title’,true);

 

echo ‘<tr class=”form-field”>

 

<th scope=”row”>

 

<label for=”erphp_cat_title”>标题去站名</label>

 

<td>

 

<select name=”erphp_cat_title” id=”erphp_cat_title” class=”postform”>

 

<option value=”0″ ‘. (‘0’==$erphp_cat_title?’selected=”selected”‘:”) .’>关闭</option>

 

<option value=”1″ ‘. (‘1’==$erphp_cat_title?’selected=”selected”‘:”) .’>开启</option>

 

</select>

 

<p class=”description”>分类下的文章标题里不带网站名</p>

 

</td>

 

</th>

 

</tr>’;

 

}

 

add_action(‘created_category’,’erphp_ct_category_field_edited’,20,1);

 

add_action(‘edited_category’,’erphp_ct_category_field_edited’,20,1);

 

function erphp_ct_category_field_edited($term_id){

 

update_term_meta($term_id,’erphp_cat_title’,$_POST[‘erphp_cat_title’]);

 

}

 

上面的代码就是给分类添加了一个【标题去站名】的设置选项,用到了 category_add_form_fields、category_edit_form_fields、created_category、edited_category 这 4 个钩子来分别实现添加、编辑、保存时处理这个自定义字段,具体这 4 个钩子的用法这里就不多讲了。

 

然后,我们利用 wp_title 这个钩子来实现文章 SEO 标题的显示。

 

function erphp_ct_wp_title( $title, $sep ) {

 

if(is_single()){

 

$erphp_ct = 0;

 

$categories = get_the_category();

 

if($categories) {

 

foreach($categories as $cat){

 

$erphp_cat_title = get_term_meta($cat->term_id,’erphp_cat_title’,true);

 

if($erphp_cat_title){

 

$erphp_ct = 1;

 

break;

 

}

 

}

 

}

 

if($erphp_ct){

 

$title = get_the_title();

 

}

 

}

 

return $title;

 

}

 

add_filter( ‘wp_title’, ‘erphp_ct_wp_title’, 100, 2 );

 

通常只要主题写的规范的,上面代码的功能都会生效的,且不会对主题本身的 wp_title 钩子有影响。

本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。如有需求,建议购买正版!如果源码侵犯了您的利益请留言告知!!
811轩轩资源 » WordPress主题开发给分类栏目及标签添加自定义字段教程

发表评论