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 钩子有影响。

给TA打赏
共{{data.count}}人
人已打赏
站长教程网络教程

前端自定义上传图片文件到媒体库WordPress开发教程

2022-7-15 17:15:06

站长教程网络教程

WordPress实现登录用户与浏览者显示不同菜单教程

2022-7-15 17:15:22

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索