WordPress как на ладони
Мощный и не дорогой хостинг от Fornex.com

create_initial_post_types() WP 2.9.0

Регистрирует дефолтные типы записей и статусы записей в WordPress.

Вызывается в ядре WP, в файле wp-settings.php, а также на хуках init и change_locale.

Что конкретно делает функция:

Регистрирует типы записей, смотрите register_post_type():

  • post — Записи
  • page — Страницы
  • attachment — Вложения
  • revision — Ревизии
  • nav_menu_item — Элементы меню навигации
  • custom_css — Произвольные CSS-стили
  • customize_changeset — Наборы изменений
  • oembed_cache — Ответы oEmbed
  • user_request — Запросы пользователя

Добавляет доп. возможности для типа записи, смотрите add_post_type_support():

add_post_type_support( 'attachment:audio', 'thumbnail' );
add_post_type_support( 'attachment:video', 'thumbnail' );

Регистрирует статусы записей, смотрите register_post_status():

  • publish — Опубликовано
  • future — Запланировано
  • draft — Черновик
  • pending — На утверждении
  • private — Личное
  • trash — В корзине
  • auto-draft — не отображается в админке
  • inherit — не отображается в админке
  • request-pending — В ожидании (относится к типу записи user_request)
  • request-confirmed — Подтвержден (относится к типу записи user_request)
  • request-failed — Неудачно (относится к типу записи user_request)
  • request-completed — Выполнен (относится к типу записи user_request)
✈ 1 раз = 0.002372с = очень медленно | 50000 раз = 59.46с = очень медленно | PHP 7.2.5, WP 4.9.8

Хуков нет.

Возвращает

Ничего (null).

Использование

create_initial_post_types();

Код create_initial_post_types: wp-includes/post.php VER 5.0.1

<?php
function create_initial_post_types() {
	register_post_type( 'post', array(
		'labels' => array(
			'name_admin_bar' => _x( 'Post', 'add new from admin bar' ),
		),
		'public'  => true,
		'_builtin' => true, /* internal use only. don't use this when registering your own post type. */
		'_edit_link' => 'post.php?post=%d', /* internal use only. don't use this when registering your own post type. */
		'capability_type' => 'post',
		'map_meta_cap' => true,
		'menu_position' => 5,
		'hierarchical' => false,
		'rewrite' => false,
		'query_var' => false,
		'delete_with_user' => true,
		'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats' ),
		'show_in_rest' => true,
		'rest_base' => 'posts',
		'rest_controller_class' => 'WP_REST_Posts_Controller',
	) );

	register_post_type( 'page', array(
		'labels' => array(
			'name_admin_bar' => _x( 'Page', 'add new from admin bar' ),
		),
		'public' => true,
		'publicly_queryable' => false,
		'_builtin' => true, /* internal use only. don't use this when registering your own post type. */
		'_edit_link' => 'post.php?post=%d', /* internal use only. don't use this when registering your own post type. */
		'capability_type' => 'page',
		'map_meta_cap' => true,
		'menu_position' => 20,
		'hierarchical' => true,
		'rewrite' => false,
		'query_var' => false,
		'delete_with_user' => true,
		'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'page-attributes', 'custom-fields', 'comments', 'revisions' ),
		'show_in_rest' => true,
		'rest_base' => 'pages',
		'rest_controller_class' => 'WP_REST_Posts_Controller',
	) );

	register_post_type( 'attachment', array(
		'labels' => array(
			'name' => _x('Media', 'post type general name'),
			'name_admin_bar' => _x( 'Media', 'add new from admin bar' ),
			'add_new' => _x( 'Add New', 'add new media' ),
 			'edit_item' => __( 'Edit Media' ),
 			'view_item' => __( 'View Attachment Page' ),
			'attributes' => __( 'Attachment Attributes' ),
		),
		'public' => true,
		'show_ui' => true,
		'_builtin' => true, /* internal use only. don't use this when registering your own post type. */
		'_edit_link' => 'post.php?post=%d', /* internal use only. don't use this when registering your own post type. */
		'capability_type' => 'post',
		'capabilities' => array(
			'create_posts' => 'upload_files',
		),
		'map_meta_cap' => true,
		'hierarchical' => false,
		'rewrite' => false,
		'query_var' => false,
		'show_in_nav_menus' => false,
		'delete_with_user' => true,
		'supports' => array( 'title', 'author', 'comments' ),
		'show_in_rest' => true,
		'rest_base' => 'media',
		'rest_controller_class' => 'WP_REST_Attachments_Controller',
	) );
	add_post_type_support( 'attachment:audio', 'thumbnail' );
	add_post_type_support( 'attachment:video', 'thumbnail' );

	register_post_type( 'revision', array(
		'labels' => array(
			'name' => __( 'Revisions' ),
			'singular_name' => __( 'Revision' ),
		),
		'public' => false,
		'_builtin' => true, /* internal use only. don't use this when registering your own post type. */
		'_edit_link' => 'revision.php?revision=%d', /* internal use only. don't use this when registering your own post type. */
		'capability_type' => 'post',
		'map_meta_cap' => true,
		'hierarchical' => false,
		'rewrite' => false,
		'query_var' => false,
		'can_export' => false,
		'delete_with_user' => true,
		'supports' => array( 'author' ),
	) );

	register_post_type( 'nav_menu_item', array(
		'labels' => array(
			'name' => __( 'Navigation Menu Items' ),
			'singular_name' => __( 'Navigation Menu Item' ),
		),
		'public' => false,
		'_builtin' => true, /* internal use only. don't use this when registering your own post type. */
		'hierarchical' => false,
		'rewrite' => false,
		'delete_with_user' => false,
		'query_var' => false,
	) );

	register_post_type( 'custom_css', array(
		'labels' => array(
			'name'          => __( 'Custom CSS' ),
			'singular_name' => __( 'Custom CSS' ),
		),
		'public'           => false,
		'hierarchical'     => false,
		'rewrite'          => false,
		'query_var'        => false,
		'delete_with_user' => false,
		'can_export'       => true,
		'_builtin'         => true, /* internal use only. don't use this when registering your own post type. */
		'supports'         => array( 'title', 'revisions' ),
		'capabilities'     => array(
			'delete_posts'           => 'edit_theme_options',
			'delete_post'            => 'edit_theme_options',
			'delete_published_posts' => 'edit_theme_options',
			'delete_private_posts'   => 'edit_theme_options',
			'delete_others_posts'    => 'edit_theme_options',
			'edit_post'              => 'edit_css',
			'edit_posts'             => 'edit_css',
			'edit_others_posts'      => 'edit_css',
			'edit_published_posts'   => 'edit_css',
			'read_post'              => 'read',
			'read_private_posts'     => 'read',
			'publish_posts'          => 'edit_theme_options',
		),
	) );

	register_post_type( 'customize_changeset', array(
		'labels' => array(
			'name'               => _x( 'Changesets', 'post type general name' ),
			'singular_name'      => _x( 'Changeset', 'post type singular name' ),
			'menu_name'          => _x( 'Changesets', 'admin menu' ),
			'name_admin_bar'     => _x( 'Changeset', 'add new on admin bar' ),
			'add_new'            => _x( 'Add New', 'Customize Changeset' ),
			'add_new_item'       => __( 'Add New Changeset' ),
			'new_item'           => __( 'New Changeset' ),
			'edit_item'          => __( 'Edit Changeset' ),
			'view_item'          => __( 'View Changeset' ),
			'all_items'          => __( 'All Changesets' ),
			'search_items'       => __( 'Search Changesets' ),
			'not_found'          => __( 'No changesets found.' ),
			'not_found_in_trash' => __( 'No changesets found in Trash.' ),
		),
		'public' => false,
		'_builtin' => true, /* internal use only. don't use this when registering your own post type. */
		'map_meta_cap' => true,
		'hierarchical' => false,
		'rewrite' => false,
		'query_var' => false,
		'can_export' => false,
		'delete_with_user' => false,
		'supports' => array( 'title', 'author' ),
		'capability_type' => 'customize_changeset',
		'capabilities' => array(
			'create_posts' => 'customize',
			'delete_others_posts' => 'customize',
			'delete_post' => 'customize',
			'delete_posts' => 'customize',
			'delete_private_posts' => 'customize',
			'delete_published_posts' => 'customize',
			'edit_others_posts' => 'customize',
			'edit_post' => 'customize',
			'edit_posts' => 'customize',
			'edit_private_posts' => 'customize',
			'edit_published_posts' => 'do_not_allow',
			'publish_posts' => 'customize',
			'read' => 'read',
			'read_post' => 'customize',
			'read_private_posts' => 'customize',
		),
	) );

	register_post_type( 'oembed_cache', array(
		'labels' => array(
			'name'          => __( 'oEmbed Responses' ),
			'singular_name' => __( 'oEmbed Response' ),
		),
		'public'           => false,
		'hierarchical'     => false,
		'rewrite'          => false,
		'query_var'        => false,
		'delete_with_user' => false,
		'can_export'       => false,
		'_builtin'         => true, /* internal use only. don't use this when registering your own post type. */
		'supports'         => array(),
	) );

	register_post_type( 'user_request', array(
		'labels'           => array(
			'name'          => __( 'User Requests' ),
			'singular_name' => __( 'User Request' ),
		),
		'public'           => false,
		'_builtin'         => true, /* internal use only. don't use this when registering your own post type. */
		'hierarchical'     => false,
		'rewrite'          => false,
		'query_var'        => false,
		'can_export'       => false,
		'delete_with_user' => false,
		'supports'         => array(),
	) );

	register_post_type(
		'wp_block',
		array(
			'labels'                => array(
				'name'                     => _x( 'Blocks', 'post type general name' ),
				'singular_name'            => _x( 'Block', 'post type singular name' ),
				'menu_name'                => _x( 'Blocks', 'admin menu' ),
				'name_admin_bar'           => _x( 'Block', 'add new on admin bar' ),
				'add_new'                  => _x( 'Add New', 'Block' ),
				'add_new_item'             => __( 'Add New Block' ),
				'new_item'                 => __( 'New Block' ),
				'edit_item'                => __( 'Edit Block' ),
				'view_item'                => __( 'View Block' ),
				'all_items'                => __( 'All Blocks' ),
				'search_items'             => __( 'Search Blocks' ),
				'not_found'                => __( 'No blocks found.' ),
				'not_found_in_trash'       => __( 'No blocks found in Trash.' ),
				'filter_items_list'        => __( 'Filter blocks list' ),
				'items_list_navigation'    => __( 'Blocks list navigation' ),
				'items_list'               => __( 'Blocks list' ),
				'item_published'           => __( 'Block published.' ),
				'item_published_privately' => __( 'Block published privately.' ),
				'item_reverted_to_draft'   => __( 'Block reverted to draft.' ),
				'item_scheduled'           => __( 'Block scheduled.' ),
				'item_updated'             => __( 'Block updated.' ),
			),
			'public'                => false,
			'_builtin'              => true, /* internal use only. don't use this when registering your own post type. */
			'show_ui'               => true,
			'show_in_menu'          => false,
			'rewrite'               => false,
			'show_in_rest'          => true,
			'rest_base'             => 'blocks',
			'rest_controller_class' => 'WP_REST_Blocks_Controller',
			'capability_type'       => 'block',
			'capabilities'          => array(
				// You need to be able to edit posts, in order to read blocks in their raw form.
				'read'                   => 'edit_posts',
				// You need to be able to publish posts, in order to create blocks.
				'create_posts'           => 'publish_posts',
				'edit_published_posts'   => 'edit_published_posts',
				'delete_published_posts' => 'delete_published_posts',
				'edit_others_posts'      => 'edit_others_posts',
				'delete_others_posts'    => 'delete_others_posts',
			),
			'map_meta_cap'          => true,
			'supports'              => array(
				'title',
				'editor',
			),
		)
	);


	register_post_status( 'publish', array(
		'label'       => _x( 'Published', 'post status' ),
		'public'      => true,
		'_builtin'    => true, /* internal use only. */
		'label_count' => _n_noop( 'Published <span class="count">(%s)</span>', 'Published <span class="count">(%s)</span>' ),
	) );

	register_post_status( 'future', array(
		'label'       => _x( 'Scheduled', 'post status' ),
		'protected'   => true,
		'_builtin'    => true, /* internal use only. */
		'label_count' => _n_noop('Scheduled <span class="count">(%s)</span>', 'Scheduled <span class="count">(%s)</span>' ),
	) );

	register_post_status( 'draft', array(
		'label'       => _x( 'Draft', 'post status' ),
		'protected'   => true,
		'_builtin'    => true, /* internal use only. */
		'label_count' => _n_noop( 'Draft <span class="count">(%s)</span>', 'Drafts <span class="count">(%s)</span>' ),
	) );

	register_post_status( 'pending', array(
		'label'       => _x( 'Pending', 'post status' ),
		'protected'   => true,
		'_builtin'    => true, /* internal use only. */
		'label_count' => _n_noop( 'Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>' ),
	) );

	register_post_status( 'private', array(
		'label'       => _x( 'Private', 'post status' ),
		'private'     => true,
		'_builtin'    => true, /* internal use only. */
		'label_count' => _n_noop( 'Private <span class="count">(%s)</span>', 'Private <span class="count">(%s)</span>' ),
	) );

	register_post_status( 'trash', array(
		'label'       => _x( 'Trash', 'post status' ),
		'internal'    => true,
		'_builtin'    => true, /* internal use only. */
		'label_count' => _n_noop( 'Trash <span class="count">(%s)</span>', 'Trash <span class="count">(%s)</span>' ),
		'show_in_admin_status_list' => true,
	) );

	register_post_status( 'auto-draft', array(
		'label'    => 'auto-draft',
		'internal' => true,
		'_builtin' => true, /* internal use only. */
	) );

	register_post_status( 'inherit', array(
		'label'    => 'inherit',
		'internal' => true,
		'_builtin' => true, /* internal use only. */
		'exclude_from_search' => false,
	) );

	register_post_status( 'request-pending', array(
		'label'               => _x( 'Pending', 'request status' ),
		'internal'            => true,
		'_builtin'            => true, /* internal use only. */
		'exclude_from_search' => false,
	) );

	register_post_status( 'request-confirmed', array(
		'label'               => _x( 'Confirmed', 'request status' ),
		'internal'            => true,
		'_builtin'            => true, /* internal use only. */
		'exclude_from_search' => false,
	) );

	register_post_status( 'request-failed', array(
		'label'               => _x( 'Failed', 'request status' ),
		'internal'            => true,
		'_builtin'            => true, /* internal use only. */
		'exclude_from_search' => false,
	) );

	register_post_status( 'request-completed', array(
		'label'               => _x( 'Completed', 'request status' ),
		'internal'            => true,
		'_builtin'            => true, /* internal use only. */
		'exclude_from_search' => false,
	) );
}

Cвязанные функции

Из метки: Ядро WP

campusboy 3081youtube.com/c/wpplus
Создатель YouTube канала wp-plus, на котором делюсь своим опытом. Активный пользователь wp-kama.ru. WordPress-разработчик. Разработка сайтов и лендингов. Доработка существующих проектов. Сопровождение ресурсов.
Редакторы: Kama 7144
Комментариев нет
Здравствуйте, !     Войти . Зарегистрироваться