get_post_types() WP 2.9.0

Отримує дані (об’єкти) зареєстрованих типів записів. Чи не самі записи, а дані реєстрації типу запису.

Можна фільтрувати висновок за багатьма критеріями.

Хуків немає.

Повертає

Строку[]|WP_Post_Type[]. Список назв типів записів або масив об’єктів (висновок налаштовується у параметрі $output).

Використання

get_post_types ($ args, $ output, $ operator);
$args
(масив)

Масив критеріїв, за якими буде обрано типи записів. Значення кожного параметра дивіться в описі функції register_post_type() .

name => page label => Сторінки labels => stdClass Object() description => public => 1 hierarchical => 1 exclude_from_search => publicly_queryable => show_ui => 1 show_in_menu => 1 show_in_nav_menus => 1 show_in_admin_bar => 1 menu_position => 20 menu_icon => capability_type => page map_meta_cap => 1 register_meta_box_cb => taxonomies => Array() has_archive => query_var => can_export => 1 delete_with_user => 1 _builtin => 1 _edit_link => post.php?post=%d cap => stdClass Object( edit_post => edit_page read_post => read_page delete_post => delete_page edit_posts => edit_pages edit_others_posts => edit_others_pages publish_posts => publish_pages read_private_posts => read_private_pages read => read delete_posts => delete_pages delete_private_posts => delete_private_pages delete_published_posts => delete_published_pages delete_others_posts => delete_others_pages edit_private_posts => edit_private_pages edit_published_posts => edit_published_pages create_posts => edit_pages ) rewrite => show_in_rest => 1 rest_base => pages rest_controller_class => WP_REST_Posts_Controller
  • name
  • label
  • singular_label
  • description
  • public – Логічний, якщо true, то вибрані будуть лише публічні типи записів (див. опис register_post_type()).
  • publicly_queryable
  • exclude_from_search
  • show_ui
  • capability_type
  • edit_cap
  • edit_type_cap
  • edit_others_cap
  • publish_others_cap
  • read_cap
  • delete_cap
  • hierarchical
  • supports
  • register_meta_box_cb
  • taxonomies
  • menu_position
  • menu_icon
  • permalink_epmask
  • rewrite
  • query_var
  • _builtin
    Логічний. Якщо true, то буде повернуто вбудовані типи записів WP: page, posts… false — поверне лише нові типи записів.

    Типи записів стосовно критерію _builtin:

    • post
    • page
    • mediapage
    • attachment
    • revision
    • nav_menu_item – з версії 3.0
    • custom post type – з версії 3.0
  • _edit_link

За замовчуванням: попереднє встановлення

$output
(рядок)

Як виводити результат. Можливі 2 варіанти:

  • names– Повернеться масив імен;
  • objects– Повернеться масив об’єктів з даними типу запису.
    За замовчуванням: ‘names’
$operator
(рядок)
Оператор порівняння для зазначених критеріїв. Можливо: ‘and’ і ‘or’.


За замовчуванням: ‘and’

Приклади

0

#1 Виведемо на екран список назв усіх зареєстрованих типів записів

Виведе зареєстровані типи записів:

$post_types = get_post_types(); /* $post_types = Array ( [post] => post [page] => page [attachment] => attachment [revision] => revision [nav_menu_item] => nav_menu_item [article] => article [question] => question ) */ foreach( $post_types as $post_type ) { echo $post_type ."n"; } /* Виведе: post page attachment revision nav_menu_item article func */
0

#2 Виведемо на екран список типів записів, що мають сторінку у форонті

Отримаємо всі типи записів.

$post_types = get_post_types(['publicly_queryable'=>1]); $post_types['page'] = 'page'; // вбудований тип немає publicly_queryable unset( $post_types['attachment'] ); // видалимо attachment /* Array [post] => post [custom_type1] => custom_type1 [custom_type2] => custom_type2 [custom_type3] => custom_type3 [page] => page */
0

#3 Виведемо на екран список усіх публічних, довільних (створених) типів записів

$ args = array ( 'public' => true, '_builtin' => false ); $output = 'names'; // names or objects, note names is the default $operator = 'and'; // 'and' or 'or' $post_types = get_post_types($args, $output, $operator); foreach ( $post_types as $post_type ) { echo '<p>'. $post_type. '</p>'; }
0

#4 Приклад отримання типу запису за назвою

Тут використовується висновок як об’єкт даних (object). Виводимо тип запису з назвою property:

$post_types = get_post_types( [ 'name'=>'property' ], 'objects' ); foreach ( $post_types as $post_type ) { echo '<p>'. $post_type->name . '</p>'; }
0

#5 Отримаємо всі типи записів, які використовуються у REST API

$rest_ptypes = get_post_types( [ 'show_in_rest' => true ], 'names' ); print_r ($ rest_ptypes); /* Array ( [post] => post [page] => page [attachment] => attachment [nav_menu_item] => nav_menu_item [wp_block] => wp_block [wp_template] => wp_template [wp_template_part] => wp_template_part [wp_navigation] => wp_navigation [func] => func [handbook] => handbook [hook] => hook [note] => note [plug] => plug ) */

нотатки

  • Global. Масив. $wp_post_types List of post types.
  • Дивіться register_post_type() for accepted arguments.

список змін

З версії 2.9.0Введено.

get post types WP 6.0.2

function get_post_types( $args = array(), $output = 'names', $operator = 'and' ) {
	Global $wp_post_types;

	$field = ('names' === $output)? 'name': false;

	return wp_filter_object_list( $wp_post_types, $args, $operator, $field );
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *