Я могу добавить пользовательское поле в пользовательскую таксономию и сохранить его, используя следующий код. Я проверил базу данных, и результат сохраняется в таблицу wp_options
, например
![enter image description here](https://i.stack.imgur.com/s06r0.png)
, и когда я пытаюсь получить условия таксономии, я получаю тольковстроенные значения, такие как name, slug и ...
array (2) {[0] => object (WP_Term) # 4243 (10) {["term_id"] => int (7) ["name"] => string (2) "BB" ["slug"] => string (2) "bb" ["term_group"] => int (0) ["term_taxonomy_id"] => int (7) ["таксономия"] => string (6) "genres" ["description"] => string (0) "" ["parent"] => int (0) ["count"] => int (0) ["filter"] => string (3) "raw"} 1 => object (WP_Term) # 4242 (10) {["term_id"] => int (6) ["name"] => string (2) "ZZ" ["slug"] => string (2) "zz" ["term_group"] => int (0) ["term_taxonomy_id"] => int (6) ["таксономия"] => string (6) "genres" ["description"] => string (0) "" ["parent"] => int (0) ["count"] => int (0) ["filter"]=> string (3) "raw"}}
, но нет значения настраиваемого поля! Как я могу получить к нему доступ и отобразить его на странице?
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( 'Dad Name', '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( 'genres_add_form_fields','mj_taxonomy_edit_custom_meta_field', 10, 2 );
add_action( 'genres_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_genres', 'mj_save_taxonomy_custom_meta_field', 10, 2 );
add_action( 'create_genres', 'mj_save_taxonomy_custom_meta_field', 10, 2 );