0

我希望能够按不同的字段对我的类别列表进行排序。我认为标签(或任何任意字段)是做到这一点的好方法。但我看不到如何将标签添加到类别。

想法?

4

1 回答 1

1

从此 WordPress StackExchange 问答中:

创建新分类时添加自定义分类字段

这些不是标签,而是保存在wp_options表格中的自定义字段。并且使用类别 ID 保存和检索它们,例如get_option( "taxonomy_$t_id" ).
查看完整的问答以了解其他解决方案。修改后的代码:

add_action( 'category_edit_form_fields', 'extra_edit_tax_fields_wpse_29322', 15, 2 );
add_action( 'category_add_form_fields', 'extra_add_tax_fields_wpse_29322', 10, 2 );
add_action( 'edited_category', 'save_extra_taxonomy_fields_wpse_29322', 10, 2 );
add_action( 'create_category', 'save_extra_taxonomy_fields_wpse_29322', 10, 2 );   

// Edit existing taxonomy
function extra_edit_tax_fields_wpse_29322( $tag ) 
{
    // Check for existing taxonomy meta for term ID.
    $t_id = $tag->term_id;
    $term_meta = get_option( "taxonomy_$t_id" ); 
    ?>
    <tr class="form-field">
    <th scope="row" valign="top">
        <label for="cat_Image_url"><?php _e( 'Category Navigation Image URL' ); ?></label>
    </th>
        <td>
            <input type="text" name="term_meta[img]" id="term_meta[img]" value="<?php echo esc_attr( $term_meta['img'] ) ? esc_attr( $term_meta['img'] ) : ''; ?>">
            <p class="description"><?php _e( 'Enter the full URL to the navigation image used for this category.' ); ?></p>
        </td>
    </tr>
    <?php
}

// Add taxonomy page
function extra_add_tax_fields_wpse_29322( $tag ) 
{
    ?>
    <div class="form-field">
        <label for="cat_Image_url"><?php _e( 'Category Navigation Image URL' ); ?></label>
        <input type="text" name="term_meta[img]" id="term_meta[img]" value="">
        <p class="description"><?php _e( 'Enter the full URL to the navigation image used for this category.' ); ?></p>
    </div>
    <?php
}

// Save extra taxonomy fields callback function.
function save_extra_taxonomy_fields_wpse_29322( $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 );
    }
}   
于 2013-01-22T06:13:56.713 回答