我已经创建了自定义分类名称" Front List"使用Custom Post Type UI然后添加名为" Order"的自定义字段。我试图为订单设置默认值。当我使用前面板面板创建任何前面列表时,
它添加了一个默认值,但是当我从"添加帖子"页面没有为"订单字段"添加任何默认值。
当"前列表"时,如何添加默认值?从"添加帖子"创建页?
这是将自定义字段添加到Frontlist分类中的代码。
<?php
/**
* Adding Custom Field to Taxonomy
* @return void
*/
function frontlists_add_order( $term ) {
?>
<div class="form-field">
<label for="taxOrder"><?php _e( 'Order', 'yourtextdomain' ); ?></label>
<input type="text" name="taxOrder" id="taxOrder" value="">
<p>Your front List item will be sorted by this "Order". The default value is "1".</p>
</div>
<?php
}
add_action( 'frontlists_add_form_fields', 'frontlists_add_order', 10, 2 );
/**
* Adding Custom Field to Taxonomy in Edit Panel
* @return void
*/
function frontlists_edit_order( $term ) {
$term_order = get_term_meta( $term->term_id, 'order', true );
?>
<tr class="form-field">
<th><label for="taxOrder"><?php _e( 'Order', 'yourtextdomain' ); ?></label></th>
<td>
<input type="text" name="taxOrder" id="taxOrder" value="<?php echo esc_attr( $term_order ) ? esc_attr( $term_order ) : ''; ?>">
<p>Your front List item will be sorted by this "Order".</p>
</td>
</tr>
<?php
}
add_action( 'frontlists_edit_form_fields', 'frontlists_edit_order', 10 );
/**
* Saving Custom Field to Taxonomy
*/
function frontlists_save_order( $term_id ) {
if ( isset( $_POST['taxOrder'] ) ) {
$term_order = $_POST['taxOrder'];
if( $term_order ) {
update_term_meta( $term_id, 'order', $term_order );
} else {
update_term_meta( $term_id, 'order', 1 );
}
}
}
add_action( 'edited_frontlists', 'frontlists_save_order' );
add_action( 'create_frontlists', 'frontlists_save_order' );
答案 0 :(得分:0)
您可以使用created_term
操作挂钩在已添加到数据库后添加新的分类术语。此操作挂钩位于wp_insert_term
函数内。要么把它放在你的主题中(不建议),要么放在插件中。
function so_add_order_field( $term_id, $tt_id, $taxonomy ) {
// The default order value
$default = 1;
// Stop if it's not the right taxonomy
if ( 'frontlists' != $taxonomy ) {
return false;
}
// Get the existing value if exists
$order = get_term_meta( $term_id, 'taxOrder', true );
if ( false === $order ) {
// Add the term meta default
add_term_meta( $term_id, 'taxOrder', $default );
}
}
add_action( 'created_term', 'so_add_order_field', 10, 3 );
然后将$default
值更改为您希望的值。这使用add_term_meta
函数,可以为您安全地将元数据添加到数据库中。查看文档以获取更多信息。