Intereting Posts
wp-nav меню с пользовательским ходоком, как удалить тег, если у него есть какое-либо подменю Помогите мне исправить эти сумасшедшие URL страниц вложений (переписать?) Плагин WordPress.com Stats требует входа в систему и перенаправления на WordPress.com при входе в систему Отсутствует аргумент 2 при передаче аргументов add_action Класс контейнера, не отображающийся в меню навигации Как удалить раскрывающиеся данные автора с страницы редактирования после публикации Определение настраиваемого шаблона страницы без собственного .php-файла Вращающееся изображение не работает для пользовательских размеров изображений Можно ли переопределить wp_password_change_notification в плагине mu? Как включить тему администратора в мой внутренний плагин Есть ли плагины для публикации в стиле StackExchange для WordPress? Пустое сообщение после отключения Yoast SEO Пустая страница для edit.php Удалить определенные элементы из меню быстрого редактирования пользовательского типа сообщений? Ограничить get_pages, чтобы показывать только 5 элементов

Можно получить список типов сообщений, связанных с таксономией?

Я использую More Plugin (больше типов, больше полей и больше таксономии) для создания пользовательских таксономий, типов сообщений и полей.

Я создал выбранный элемент управления, заполненный таксономиями (цикл через $wp_taxonomies ).

Мне нужно показать список типов сообщений, связанных с выбранными таксономиями (я сделаю это с помощью jQuery), и я не понял, как получить такой список типов сообщений. Благодаря!

Вы уже $wp_taxonomies его с помощью $wp_taxonomies . Я просто записал его, так что вам, вероятно, придется немного попробовать, чтобы получить следующие строки кода и запустить его, но он должен дать вам представление о том, как он должен работать (см. Его как ссылочный / псевдокод):

EDIT: после заметки от Майка Шинкеля я обновил код, чтобы было проще игнорировать встроенные таксономии (см .: _builtin). Надеюсь, Майк отправит пример, который он мне прислал, поэтому его (гораздо более легкое) решение можно отметить как окончательный подход …

 // equals the following $keys $wp_taxonomies['category'] == $wp_taxonomies[0]; $wp_taxonomies['post_tag'] == $wp_taxonomies[1]; $wp_taxonomies['nav_menu'] == $wp_taxonomies[2]; $wp_taxonomies['link_category'] == $wp_taxonomies[3]; // after $key #3 you retrieve all different registered taxonomies $all_tax = count($wp_taxonomies)-4; // gives you the amount of reg. tax. // Here starts the actual code $post_types = array(); // some empty array to save your post types for further procesing $i = 0; foreach ( $wp_taxonomies as $tax ) { if ( !$tax->_builtin) $post_type_arr = $tax[$i]->object_type; // array of post types in the current taxonomy foreach ( $post_type_arr as $arr ) : // loop through all post types assigned to the taxonomy $post_types[] .= $arr; // assign them to our array of post types endforeach; $i++; } $post_types = array_unique($post_types); // drop doublettes out of the array var_dump($post_types); # expected result close to this... # Array( # 1 => $post_type_a, # 2 => $post_type_b, # 3 => $post_type_n # ); 

Итак, это реальное решение:

 function get_object_types_unique( $all_r_custom = false ) { $tax_object = get_taxonomies( array( '_builtin' => $all_r_custom ), 'objects' ); if ( $all_r_custom == true ) $tax_object = array_merge( $tax_object, get_taxonomies( array( '_builtin' => false ), 'objects' ) ); $object_types = array(); foreach ( $tax_object as $tax ) { $object_types = array_merge( $object_types, $tax->object_type ); } $object_types = array_unique( $object_types ); return $object_types; } 

Он позволяет либо извлекать только пользовательские объекты post / object с помощью get_object_types_unique() или все вкл. встроенные типы объектов get_object_types_unique( true ) . Пока что с этой функцией нет возможности извлекать только встроенные типы объектов, потому что пока я не вижу необходимости.