我有一个城市自定义分类法,并希望将其作为自定义字段提供,以便能够使用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 );
}
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 );