WordPress为文章目录添加自定义字段

本代码演示,如何给分类目录添加新字段,并且调用

新建分类页面,添加新字段

<?php
// Add term page
function tutorialshares_taxonomy_add_new_meta_field() {
	// this will add the custom meta field to the add new term page
	?>
	<div class="form-field">
		<label for="term_meta[custom_term_meta]"><?php _e( 'Example meta field', 'tutorialshares' ); ?></label>
		<input type="text" name="term_meta[custom_term_meta]" id="term_meta[custom_term_meta]" value="">
		<p class="description"><?php _e( 'Enter a value for this field','tutorialshares' ); ?></p>
	</div>
<?php
}
add_action( 'category_add_form_fields', 'tutorialshares_taxonomy_add_new_meta_field', 10, 2 );

您可以调整第一个参数{taxonomy_name}_add_form_fields以设置将字段添加到的分类法。在我的示例中,我将使用“类别”分类法。

 

编辑分类页面添加字段

<?php
// Edit term page
function tutorialshares_taxonomy_edit_meta_field($term) {
 
	// put the term ID into a variable
	$t_id = $term->term_id;
 
	// retrieve the existing value(s) for this meta field. This returns an array
	$term_meta = get_option( "taxonomy_$t_id" ); ?>
	<tr class="form-field">
	<th scope="row" valign="top"><label for="term_meta[custom_term_meta]"><?php _e( 'Example meta field', 'tutorialshares' ); ?></label></th>
		<td>
			<input type="text" name="term_meta[custom_term_meta]" id="term_meta[custom_term_meta]" value="<?php echo esc_attr( $term_meta['custom_term_meta'] ) ? esc_attr( $term_meta['custom_term_meta'] ) : ''; ?>">
			<p class="description"><?php _e( 'Enter a value for this field','tutorialshares' ); ?></p>
		</td>
	</tr>
<?php
}
add_action( 'category_edit_form_fields', 'tutorialshares_taxonomy_edit_meta_field', 10, 2 );

 

保存数据

// Save extra taxonomy fields callback function.
function save_taxonomy_custom_meta( $term_id ) {
	if ( isset( $_POST['term_meta'] ) ) {
		$t_id = $term_id;
		$term_meta = get_option( "taxonomy_$t_id" );
		$cat_keys = array_keys( $_POST['term_meta'] );
		foreach ( $cat_keys as $key ) {
			if ( isset ( $_POST['term_meta'][$key] ) ) {
				$term_meta[$key] = $_POST['term_meta'][$key];
			}
		}
		// Save the option array.
		update_option( "taxonomy_$t_id", $term_meta );
	}
}  
add_action( 'edited_category', 'save_taxonomy_custom_meta', 10, 2 );  
add_action( 'create_category', 'save_taxonomy_custom_meta', 10, 2 );

 

调用数据

$metafieldArray = get_option('taxonomy_'. $term->term_id);
$metafieldoutput = $metafieldArray['custom_term_meta'];

echo $metafieldoutput;

 

文章翻译自:http://tutorialshares.com/taxonomy-custom-meta-fields/

 

 

上一篇 WordPress 5.7 官方版本
下一篇 升级到WordPress 5.8后小工具无法使用的解决办法
目录
applek

applek管理员

个人说明在个人中心里面设置

本月创作热力图

最新评论
chinacnd
chinacnd
6月26日
这个主题是怎么做到加载速度那么快的?
风起云涌
风起云涌
6月17日
前台投稿现在有点太抽象了 希望可以弄成那种分区填写的 标题,内容,图片,目录,标签,这样的
评论于留言建议
风起云涌
风起云涌
6月17日
希望加个开关去掉页脚的站点身份,还有自定义页脚居中文字
评论于留言建议
卡卡
卡卡
5月31日
倒是放个演示地址啊