4.4中如何将自定义字段添加到自定义分类中

时间:2015-11-29 作者:abalone

我有一个城市自定义分类法,并希望将其作为自定义字段提供,以便能够使用iOS工作流应用程序访问它。考虑到4.4中的更改,如果我想在工作流应用程序中使用位置的自定义字段,我应该怎么做?

我发现这一页的标题是;将自定义元字段添加到分类中:https://pippinsplugins.com/adding-custom-meta-fields-to-taxonomies/其中说明:

在WordPress 4.4中,WordPress中将有一个本机的“术语元数据”表,因此这不再是向术语添加客户元数据的必要或有效方法。

有关更多信息,请参见此处:https://make.wordpress.org/core/2015/09/04/taxonomy-term-metadata-proposal/

我的自定义分类是:

    add_action( \'init\', \'loc_taxonomy\', 0 );
    function loc_taxonomy() {

    $labels = array(
        \'name\'                       => _x( \'Locations\', \'Taxonomy General Name\', \'text_domain\' ),
        \'singular_name\'              => _x( \'Location\', \'Taxonomy Singular Name\', \'text_domain\' ),
        \'menu_name\'                  => __( \'Locations\', \'text_domain\' ),
        \'all_items\'                  => __( \'All Locations\', \'text_domain\' ),
        \'parent_item\'                => __( \'Parent Location\', \'text_domain\' ),
        \'parent_item_colon\'          => __( \'Parent Location:\', \'text_domain\' ),
        \'new_item_name\'              => __( \'New Location Name\', \'text_domain\' ),
        \'add_new_item\'               => __( \'Add New Location\', \'text_domain\' ),
        \'edit_item\'                  => __( \'Edit Location\', \'text_domain\' ),
        \'update_item\'                => __( \'Update Location\', \'text_domain\' ),
        \'separate_items_with_commas\' => __( \'Separate locations with commas\', \'text_domain\' ),
        \'search_items\'               => __( \'Search locations\', \'text_domain\' ),
        \'add_or_remove_items\'        => __( \'Add or remove locations\', \'text_domain\' ),
        \'choose_from_most_used\'      => __( \'Choose from the most used locations\', \'text_domain\' ),
        \'not_found\'                  => __( \'Not Found\', \'text_domain\' ),
    );
    $args = array(
        \'labels\'                     => $labels,
        \'hierarchical\'               => true,
        \'public\'                     => true,
        \'show_ui\'                    => true,
        \'show_admin_column\'          => true,
        \'show_in_nav_menus\'          => true,
        \'show_tagcloud\'              => true,
    );
    register_taxonomy( \'loc\', array( \'post\' ), $args );

}

1 个回复
SO网友:shishir mishra

通过插件或wordpress预定义的挂钩,可以通过两种方式来实现添加元框

https://wordpress.org/plugins/taxonomy-metadata/

  **OR**
在函数中添加以下代码。主题中的php

function mj_taxonomy_add_custom_meta_field() {
        ?>
        <div class="form-field">
            <label for="term_meta[class_term_meta]"><?php _e( \'Add Class\', \'MJ\' ); ?></label>
            <input type="text" name="term_meta[class_term_meta]" id="term_meta[class_term_meta]" value="">
            <p class="description"><?php _e( \'Enter a value for this field\',\'MJ\' ); ?></p>
        </div>
    <?php
    }
add_action( \'product_cat_add_form_fields\', \'mj_taxonomy_add_custom_meta_field\', 10, 2 );





 function mj_taxonomy_edit_custom_meta_field($term) {

        $t_id = $term->term_id;
        $term_meta = get_option( "taxonomy_$t_id" ); 
       ?>
        <tr class="form-field">
        <th scope="row" valign="top"><label for="term_meta[class_term_meta]"><?php _e( \'Add Class\', \'MJ\' ); ?></label></th>
            <td>
                <input type="text" name="term_meta[class_term_meta]" id="term_meta[class_term_meta]" value="<?php echo esc_attr( $term_meta[\'class_term_meta\'] ) ? esc_attr( $term_meta[\'class_term_meta\'] ) : \'\'; ?>">
                <p class="description"><?php _e( \'Enter a value for this field\',\'MJ\' ); ?></p>
            </td>
        </tr>
    <?php
    }

add_action( \'product_cat_edit_form_fields\',\'mj_taxonomy_edit_custom_meta_field\', 10, 2 );



function mj_save_taxonomy_custom_meta_field( $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_product_cat\', \'mj_save_taxonomy_custom_meta_field\', 10, 2 );  
add_action( \'create_product_cat\', \'mj_save_taxonomy_custom_meta_field\', 10, 2 );

相关推荐

如何让`wp-list-table`显示我在Custom-Post中的`Custom-Fields`

一切都好吗<我需要wp-list-table 也要显示custom-fields 在每个custom-post 我有,但我不知道如何做到这一点,在这幅图中,它显示了带有字段的表格:Title, Author and Publication Date: 我想要的是能够选择custom-fields 将出现,例如以下示例Title, Carta, Naipe, Author, and Date of Publication: