Функции для работы с типами данных (записей)

В WordPress записи разных типов хранятся в базе данных WordPress в таблице wp_posts, а тип записи - в столбце post_type.
(О стандартных типах см. в "Типы данных в WordPress")

Для создания произвольных типов и работы с типами используются функции с $post_type 

Обзор функций post_type

Здесь $post_type - это тип записей - строка (string) не более 20 символов

Регистрация

(object | WP_Error) register_post_type( $post_type, $args )  - регистрация произвольного типа; $args - array -  необязательный массив аргументов
(см. http://codex.wordpress.org/Function_Reference/ register_post_type)

Поддержка атрибутов-полей

add_post_type_support( $post_type, $supports ) - добавление поддержки полей $supports, доступных для стандартных типов 'post' и 'page'
$supports - string/array - атрибут(ы):

  1. 'title' - заголовок
  2. 'editor' (content) - редактируемое содержимое
  3. 'author' - автор
  4. 'thumbnail' - миниатюра ( тема должна поддерживать миниатюры  Post Thumbnails)
  5. 'excerpt' - анонс
  6. 'trackbacks' -  обратные ссылки
  7. 'custom-fields' - произвольные поля
  8. 'comments'  -комментарии
  9. 'revisions' - редакции (старые версии)
  10. 'page-attributes' - атрибуты постоянных страниц (тип 'page')
  11. 'post-formats' - форматы как у записей блога (тип 'post')

remove_post_type_support($post_type, $supports) - удаление поддержки полей у заданного типа (даже у стандартного) (№1-10  из списка выше)

Пример: Удаление поддержки анонса (excerpt) записей блога (тип 'post'):

add_action('init', 'my_custom_init');

function my_custom_init() {
	remove_post_type_support( 'post', 'excerpt' );
}

Получение информации о типе

(boolean) post_type_supports($post_type, $supports) - проверяет, поддерживается ли поле $supports  типом $post_type

(boolean) post_type_exists($post_type) - проверяет, что тип зарегистрирован

(integer)set_post_type($post_id, $post_type) - задает для записи с id=$post_id тип $post_type; по умолчанию присваивается тип 'post'. Возвращает количество измененных строк - 1 или 0

(boolean|string)  get_post_type($post) - выводит  тип заданной записи  или false (по умолчанию для текущей записи), $post - объект или id записи
Пример вывода типа

echo 'Тип записи: '.get_post_type( $post->ID );

(array) get_post_types( $args, $output, $operator ) - получает все зарегистрированные типы записей как список имен или объектов:
$output= 'names' (по умолчанию) или 'objects'. (см. http://codex.wordpress.org/Function_Reference/ get_post_types)

(object) get_post_type_object($post_type)  - получает объект, который описывает тип записей

(object) get_post_type_capabilities( $args ) - получает информацию о возможностях

(boolean) is_post_type_hierarchical( $post_type) - иерархический тип?

(boolean) is_post_type_archive( $post_types ) - проверяет, что запрашиваемая страница является архивом записей типа/типов $post_types
Пример: вывод названия архива записей произвольного типа Custom Post Type:

<?php
if ( is_post_type_archive() ) {
    ?>
    <h1><?php post_type_archive_title(); ?></h1>
    <?php
}

post_type_archive_title( $prefix, $display ) - выводит ($display=true, по умолчанию) или извлекает ($display=false) название архива типа записей

В Кодексе: http://codex.wordpress.org/Function_Reference/имя_функции

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *