建站教程

建站教程

Products

当前位置:首页 > 建站教程 >

WordPress 为类别和标签添加自定义字段

GG网络技术分享 2025-03-18 16:04 0


我们正在开发WordPress 主题在这个过程中,一般会为其他一些字段设置分类来完成一些可控的功能,分类需要设置自定义字段。

例如,我们希望某个分类下的文章的SEO标题不显示站点名称。 这是什么意思? 一般来说,一篇文章的标题是由Post title-Sitename组成,而我们只需要Post title来表示某些分类文章的标题,可以通过下面的template-board-tuple编写的方法来实现。

首先,我们在分类中添加一个字段来控制是否启用上述功能。

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']);

}

上面的代码是添加一个[title to station name]为category设置option,使用category_add_form_fields、category_edit_form_fields、created_category、edited_category这四个hook来实现这个自定义字段在添加、编辑、保存时的处理。 具体来说,这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钩子~

这是关于如何在 WordPress 中向类别和标签添加自定义字段的教程。 MOBANTU 就是这样。

标签: WordPress 教程

提交需求或反馈

Demand feedback