Работаем с типами записей в WordPress 3.0

Работаем с типами записей в WordPress 3.0

post types wordpress
Одна из самых интересных фишек WordPress 3.0, это индивидуальные типы записей, вы можете добавлять не только Записи и Страницы, но и например Фильмы, Актеров и т.п. через отдельный раздел в панели администрирования, который вы можете создать при помощи при помощи небольшого изменения functions.php вашей темы, взгляните на скриншот и все станет ясно.

image

Простой вариант:

function post_type_movies() {
register_post_type( 'movies',
array( 'label' => __('Movies'), 'public' => true, 'show_ui' => true ) );
register_taxonomy_for_object_type('post_tag', 'movies');
}
add_action('init', 'post_type_movies');

Более детальный вариант
Конечно это не все, существует еще несколько параметров настройки нового раздела. Добавляем:

function post_type_movies() {
     register_post_type(
                     'movies',
                     array('label' => __('Movies'),
                             'public' => true,
                             'show_ui' => true,
                             'supports' => array(
                                        'post-thumbnails',
                                        'excerpts',
                                        'trackbacks',
                                        'custom-fields',
                                        'comments',
                                        'revisions')
                                )
                      );
     register_taxonomy_for_object_type('post_tag', 'movies');
}
add_action('init', 'post_type_movies');

Получаем:
image
Мы активировали возможность включать и отключать комментарии, custom fields и другие полезные вещи.
Полный список параметров постов (на английском):

  • label – A descriptive name for the post type marked for translation. Defaults to $post_type
  • public – Whether posts of this type should be shown in the admin UI. Defaults to false
  • exclude_from_search – Whether to exclude posts with this post type from search results. Defaults to true if the type is not public, false if the type is public
  • publicly_queryable – Whether post_type queries can be performed from the front page. Defaults to whatever public is set as
  • show_ui – Whether to generate a default UI for managing this post type. Defaults to true if the type is public, false if the type is not public
  • inherit_type – The post type from which to inherit the edit link and capability type. Defaults to none
  • capability_type – The post type to use for checking read, edit, and delete capabilities. Defaults to «post»
  • edit_cap – The capability that controls editing a particular object of this post type. Defaults to «edit_$capability_type» (edit_post)
  • edit_type_cap – The capability that controls editing objects of this post type as a class. Defaults to «edit_ . $capability_type . s» (edit_posts)
  • edit_others_cap – The capability that controls editing objects of this post type that are owned by other users. Defaults to «edit_others_ . $capability_type . s» (edit_others_posts)
  • edit_others_cap – The capability that controls publishing objects of this post type. Defaults to «publish_ . $capability_type . s» (publish_posts)
  • read_cap – The capability that controls reading a particular object of this post type. Defaults to «read_$capability_type» (read_post)
  • delete_cap – The capability that controls deleting a particular object of this post type. Defaults to «delete_$capability_type» (delete_post)
  • hierarchical – Whether the post type is hierarchical. Defaults to false
  • supports – An alias for calling add_post_type_support() directly. See add_post_type_support() for Documentation. Defaults to none
  • register_meta_box_cb – Provide a callback function that will be called when setting up the meta boxes for the edit form. Do remove_meta_box() and add_meta_box() calls in the callback
  • taxonomies – An array of taxonomy identifiers that will be registered for the post type. Default is no taxonomies. Taxonomies can be registered later with register_taxonomy() or register_taxonomy_for_object_type()
Читайте также  Карта сайта для Wordpress в виде HTML страницы

Включаем настраиваемую таксономию.

В этом примере мы включим для нашего типа постов таксономию с двумя фишками. Собственные теги и категории для постов типа Movies (фильмы).

function post_type_movies() {
     register_post_type(
                'movies',
                array(
                        'label' => __('Movies'),
                        'public' => true,
                        'show_ui' => true,
                        'supports' => array(
                                     'post-thumbnails',
                                     'excerpts',
                                     'trackbacks',
                                     'custom-fields',
                                     'comments',
                                     'revisions')
                )
        );

     register_taxonomy( 'actor', 'movies', array( 'hierarchical' => true, 'label' => __('Actor') ) );

        register_taxonomy( 'production', 'movies',
          array(
                         'hierarchical' => false,
                'label' => __('Production'),
                'query_var' => 'production',
                'rewrite' => array('slug' => 'production' )
          )
     );
}
add_action('init', 'post_type_movies');

Получаем:
image
Теперь каждому фильму можно добавлять актеров (категории) и год выхода фильма (теги).
Несомненно очень интересное и полезное нововведение приближающее WordPress 3.0 к более сложным движкам типа Drupal, но делающим добавление сложной функциональности простым и понятным. Особенно это будет полезно писателям тем и плагинов, новые настраиваемые типы записей могут сделать превращение сайта из обычного блога в киносайт или в кулинарный сайт простой установкой плагина.

Читайте также  Google Chrome как текстовый редактор
Счетчик просмотров записи по ip адресу в WordPress... Для записи количества просмотров надо в файл functions.php в папке вашего шаблона добавить функцию приведенную ниже: function setPostViews($postID) {...
Как вывести первое изображение из записи... Вывод непосредственно первого изображения, если его нет то «заглушку» из списка. Для этого нужно в functions.php дописать: function first_image() { ...
Подсчет постов в категориях меню WordPress... Использование wp_nav_menu очень облегчает создание меню любой сложности с возможностью редактирование их структуры через админ-страницу. Но у таких ...
Чистим head в WordPress И убираем лишнее и ненужно... Для начала уберем код который дописывает движок wordpress. Из написанного в каждой строке более менее понятно что уберется, но если что-то не ясно — c...

Сохрани, чтобы не потерять