Что такое настраиваемые типы сообщений?
WordPress — самая популярная система управления контентом в мире, одной из причин которой является ее настраиваемость и гибкость. В принципе, вы можете делать все, что только можете придумать, и настраиваемые типы сообщений — один из способов добиться этого.
WordPress предлагает несколько типов записей из коробки. Это:
- Сообщение (тип сообщения: ‘сообщение’)
- Страница (тип сообщения: «страница»)
- Вложение (тип сообщения: «вложение»)
- Ревизия (тип сообщения: «редакция»)
- Меню навигации (тип сообщения: ‘nav_menu_item’)
Пользовательский тип поста — это не что иное, как расширение, дополнительный тип поста с другим набором данных. Однако это не ограничивается определенным типом контента, таким как статическая страница или динамическая запись в блоге. Таким образом, пользовательский тип записи может отображать любой тип контента, даже если не имеет смысла отображать статический контент, поскольку страницы здесь работают намного лучше.
Пользовательский тип страницы лучше всего работает с другим динамичный (помимо статей в блогах) тип контента, например, портфолио, интегрированное в тему. Несмотря на то, что портфолио кажется статичным, на самом деле оно имеет такое же динамическое поведение, как и блог, поскольку со временем добавляются новые записи.
Пользовательские таксономии
Пользовательские таксономии — это что-то вроде подфункции пользовательских типов записей. Это механизм для классификации пользовательских типов сообщений и пометки их ключевыми словами. Это категории и/или теги для пользовательских типов записей WordPress. Создание пользовательских таксономий очень просто. Мы вернемся к этому позже в статье. Однако пользовательские таксономии гораздо более универсальны, чем может быть описано в этой статье. Но это тема для другой статьи.
Пользовательские типы сообщений в использовании
Пользовательские типы записей WordPress помогают упростить создание функционального портфолио, которое красиво представляет вашу работу. Пройдемся по шагам:
Регистрация пользовательских типов сообщений
Добавьте следующий код в конце functions.php вашей темы (wp-content/themes/ваша тема).
/**
*
* Registration of our custom post type "Portfolio"
*
*/
function ah_custom_post_type() {
$labels = array(
'name' => 'Portfolio entries',
'singular_name' => 'Portfolio',
'menu_name' => 'Portfolio',
'parent_item_colon' => '',
'all_items' => 'All entries',
'view_item' => 'View entries',
'add_new_item' => 'New entry',
'add_new' => 'Add',
'edit_item' => 'Edit entry',
'update_item' => 'Update entry',
'search_items' => '',
'not_found' => '',
'not_found_in_trash' => '',
);
$rewrite = array(
'slug' => 'portfolio',
'with_front' => true,
'pages' => true,
'feeds' => true,
);
$args = array(
'labels' => $labels,
'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail', 'comments', 'trackbacks', ),
'taxonomies' => array( 'category', 'post_tag' ),
'hierarchical' => false,
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'show_in_nav_menus' => true,
'show_in_admin_bar' => true,
'menu_position' => 5,
'can_export' => false,
'has_archive' => true,
'exclude_from_search' => false,
'publicly_queryable' => true,
'rewrite' => $rewrite,
'capability_type' => 'page',
);
register_post_type( 'portfolio', $args );
}
// Hook into the 'init' action
add_action( 'init', 'ah_custom_post_type', 0 );
Несколько слов о Кодексе
Самая верхняя часть до $rewrite отвечает за расширенное меню администратора. Средняя часть создает постоянную ссылку с слагом «портфолио». Нижняя часть кода определяет, что поддерживаются отдельные части, например, заголовок, редактор, выдержка, изображение статьи и комментарии.
В вашем разделе администратора WordPress появился новый пункт меню «Портфолио» с подменю «Категории» и «Ключевые слова».
Если вы хотите работать с портфолио, вам понадобится нечто большее, чем этот положительный пункт меню настройки. Нам нужно создать шаблоны для правильного отображения портфолио в теме WordPress.
Необходимые шаблоны для пользовательского типа сообщений
Механизм шаблонов WordPress автоматически распознает шаблоны для этого типа сообщений, если они имеют формат одиночный-posttype.php за один пост и архив-posttype.php для сводной страницы. В зависимости от того, насколько всеобъемлющим будет ваш проект, вам потребуется создать один или два шаблона. Назовите один один портфолио.php а другой архив-portfolio.php.
В этом примере мы создадим шаблон архив-portfolio.php для отображения всех записей портфолио на одной странице.
Показать пользовательский тип сообщения
Создайте новую пустую страницу в любом редакторе и назовите ее архив-portfolio.php. Теперь скопируйте содержимое вашего page.php (или index.php) и вставьте его в новый шаблон. Затем измените описание шаблона на следующее:
Now it's important to tell the template which type of content will be displayed. To do this, paste the following code above the loop:
'portfolio')); ?>

Важно знать
Перейдите в пункт меню «Настройки => Постоянные ссылки» и снова сохраните свои постоянные ссылки. Если вы этого не сделаете, вы, скорее всего, увидите ошибку 404 при звонке. www.ваш-сайт.com/portfolio/. После сохранения постоянных ссылок сайт вызывается без проблем.

Поскольку страницы «Портфолио» физически не существует (но ее можно вызвать), необходимо вручную настроить этот пункт меню с функцией «Ссылки».

Другой способ — создать новую пустую страницу с заголовком портфолио и выберите шаблон «Шаблон архивного портфолио». Это автоматически генерирует необходимый пункт меню:

Заключение
С помощью настраиваемых типов записей вы можете легко добавлять функции в WordPress. Ограничений для вашего творчества практически нет. Они также могут справиться с комплексными задачами. Хорошим примером является веб-сайт поставщика премиальных тем WordPress WooThemes.com, где пункт меню «Темы» был реализован таким образом; однако он имеет гораздо более сложную структуру.
Ссылки по теме