Я пытаюсь перечислить условия пользовательской таксономии («жанр») в обзорной таблице в области администратора для настраиваемого типа сообщения («станция»). Чтобы получить это, я попробовал следующий код в файле functions.php моей темы:
register_taxonomy('genre', 'station', array( 'labels' => array( 'name' => _x('Genres', 'taxonomy general name', 'loudfm_theme'), 'singular_name' => _x('Genre', 'taxonomy singular name', 'loudfm_theme'), 'search_items' => __('Search Genres', 'loudfm_theme'), 'popular_items' => __('Popular Genres', 'loudfm_theme'), 'all_items' => __('All Genres', 'loudfm_theme'), 'parent_item' => __('Parent Genre', 'loudfm_theme'), 'parent_item_colon' => __('Parent Genre:', 'loudfm_theme'), 'edit_item' => __('Edit Genre', 'loudfm_theme'), 'update_item' => __('Update Genre', 'loudfm_theme'), 'add_new_item' => __('Add New Genre', 'loudfm_theme'), 'new_item_name' => __('New Genre Name', 'loudfm_theme') ), 'hierarchical' => true )); add_filter('manage_station_posts_columns', 'station_edit_columns'); add_action('manage_posts_custom_column', 'station_custom_columns'); function station_edit_columns($columns){ $columns = array( 'cb' => '<input type="checkbox"/>', 'title' => __('Station Title', 'loudfm_theme'), 'description' => __('Description', 'loudfm_theme'), 'genre' => __('Genre', 'loudfm_theme') ); return $columns; } function station_custom_columns($column){ global $post; switch ($column) { case 'description': the_excerpt(); break; case 'genre': $genre = get_terms(array( 'taxonomy' => 'genre', 'include' => get_post_meta($post->ID, 'maingenre', true) )); echo '<a href="' . get_term_link($genre[0]) . '" title="' . sprintf(__('View all stations with the genre %s', 'loudfm_theme'), $genre[0]->name) . '">' . $genre[0]->name . '</a>'; } }
В моем случае я не просто хочу перечислить все выбранные жанры станции, а только основной жанр, чей идентификатор хранится в поле «maingenre» настраиваемого типа сообщения. Вот почему я использую функцию get_terms
с параметром «include». Но с любопытством я возвращаю ошибку «Недопустимая таксономия» (как объект WP_Error). Использование get_the_term_list
работает без ошибок, но с этой функцией я не могу отображать только основной жанр.
Может ли кто-нибудь сказать мне, почему get_terms
здесь не работает и как я могу заставить его работать? Спасибо!
Всегда проверяйте codex – get_terms( $taxonomies, $args )
– ваш код должен читать:
$genre = get_terms( 'genre', array( 'include' => get_post_meta( $post->ID, 'maingenre', true ), ));