创建条件以显示分类术语元

时间:2013-06-13 作者:NW Tech

我试图为分类术语显示一个额外的元字段。无论我试图创建一个条件,如果元字段为空,则显示一个默认值。

以下是创建分类法元字段的代码:

// 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公司

1 个回复
最合适的回答,由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\'; 

                }?>

结束

相关推荐