我试图为分类术语显示一个额外的元字段。无论我试图创建一个条件,如果元字段为空,则显示一个默认值。
以下是创建分类法元字段的代码:
// Add phone number to location taxonomies
function nwtd_lpfs_taxonomy_add_new_meta_field() {
?>
<div class="form-field">
<label for="term_meta[phone]"><?php _e( \'Location Based Phone Number\', \'nwtd\' ); ?></label>
<input type="text" name="term_meta[phone]" id="term_meta[phone]" value="">
<p class="description"><?php _e( \'Enter a phone number for this location\',\'nwtd\' ); ?></p>
</div>
<?php
}
add_action( \'locations_add_form_fields\', \'nwtd_lpfs_taxonomy_add_new_meta_field\', 10, 2 );
// Edit term page
function nwtd_lpfs_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[phone]"><?php _e( \'Location Based Phone Number\', \'nwtd\' ); ?></label></th>
<td>
<input type="text" name="term_meta[phone]" id="term_meta[phone]" value="<?php echo esc_attr( $term_meta[\'phone\'] ) ? esc_attr( $term_meta[\'phone\'] ) : \'\'; ?>">
<p class="description"><?php _e( \'Enter a phone number for this location\',\'nwtd\' ); ?></p>
</td>
</tr>
<?php
}
add_action( \'locations_edit_form_fields\', \'nwtd_lpfs_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_locations\', \'save_taxonomy_custom_meta\', 10, 2 );
add_action( \'create_locations\', \'save_taxonomy_custom_meta\', 10, 2 );
我试图在模板中使用的条件是:
<?php if( $term_meta[\'phone\'] != "" ) {
echo $term_meta[\'phone\']; } else {
echo \'(555) 555-555\'; }?>
有什么想法吗?TIA公司
最合适的回答,由SO网友:NW Tech 整理而成
最后我又加了一个taxonomy meta class
然后,我可以使用以下信息获取我的电话号码:
<?php
//Get the correct taxonomy ID by slug
$term = get_term_by( \'slug\', get_query_var( \'term\' ), get_query_var( \'taxonomy\' ) );
//Get Taxonomy Meta
$saved_data = get_tax_meta($term->term_id,\'loc_phone\');
?>
<?php if( $saved_data != "" ) {
echo $saved_data;
} else {
echo \'(555) 555-555\';
}?>