Как сделать свой собственный список событий с использованием пользовательских типов сообщений [WordPress]

пользовательские типы сообщенийОдним из преимуществ использования WordPress является его гибкость. Версия 3 представила концепцию пользовательских типов постов для расширения встроенной функциональности.

Давайте сегодня посмотрим, что вы можете с ними сделать, а также краткий практический пример того, как создать список событий с использованием пользовательского типа записи, называемого Событие.

Что такое пользовательские типы сообщений?

Как правило, блог WordPress состоит из трех типов контента — блог сообщений, Blogroll связи, и статический страницы. Большинство из нас знакомы с тем фактом, что страницы должны использоваться для таких вещей, как обо мне или контактную информацию, в то время как обычные сообщения идут в ваш блог. Но помимо этого, что, если вы хотите добавить другой особый вид контента, который на самом деле не вписывается в хронологический порядок блога и, конечно, не является статичным — как события? Вот где появляются пользовательские типы сообщений.

Довольно распространенный запрос для клубных или групповых сайтов — иметь какой-то календарь событий. Одно из возможных решений — создать отдельную категорию «События» и просто опубликовать там все. Проблема в том, что они будут отображаться в основной временной шкале блога, и мы действительно должны полностью разделить две концепции.

Для этого давайте создадим новый тип записи с именем event, у которого будет отдельный раздел интерфейса администратора.

Создать пользовательский тип сообщения в WordPress

Мы сделаем это, настроив файлы вашей темы напрямую. Вы можете достичь того же эффекта с помощью плагина, но чтобы продемонстрировать концепцию и практику, проще написать их напрямую.

Откройте файл functions.php вашей темы, который хранится в папке темы внутри wp-content / themes. В конце файла добавьте этот код:

add_action ('init', 'events_init');
function events_init () {
$ args = array (
'tags' => array (
'name' => __ ('События'),
'singular_name' => __ ('Event'),
),
'public' => true,
'rewrite' => array ("slug" => "events"),
'support' => array ('thumbnail', 'editor', 'title', 'custom-fields')
);
register_post_type ('events', $ args);
}

[/ NOEDIT]

Обязательно сделайте это перед закрывающим тегом php. Потратьте некоторое время на чтение кода, но, по сути, это просто объявление некоторых свойств (например, меток для интерфейса), того, как должны обрабатываться URL-адреса (перезапись), и какие конкретные функции поддерживает этот пост-тип (в данном случае миниатюры, редактор содержимого для описания события, заголовка события и пользовательских полей).

Вот и все, теперь, если вы сохраните свою тему и перезагрузите свой блог, при условии, что у вас нет ошибок, теперь вы должны увидеть новый раздел событий на боковой панели администратора.

пользовательские типы сообщений

Добавьте несколько примеров событий сейчас и создайте настраиваемое поле с именем «date», чтобы указать, когда это событие.

пользовательские типы сообщений WordPress

Обратите внимание, что нам нужно использовать настраиваемые поля для указания фактической даты события, а не даты публикации, потому что дата публикации — это когда она будет опубликована. Поскольку вы, вероятно, будете добавлять события, которые произойдут в будущем, установка даты публикации на фактическую дату события будет бесполезной.

Если вы попытаетесь просмотреть событие в этот момент, вы можете получить ошибку 404. Это связано с тем, что WordPress необходимо заново создать структуру постоянных ссылок для учета этого нового типа записей. Направляйтесь к Настройки постоянных ссылок страницы, убедитесь, что он установлен правильно, так как иногда он может вернуться к значениям по умолчанию, и сохраните. Теперь вы сможете просматривать отдельные сообщения о событиях.

Создать специальную страницу «Список событий», упорядоченную по дате

Теперь, когда у вас есть все эти фантастические события в вашем блоге, было бы неплохо на самом деле перечислить их где-нибудь. Для этого мы создадим специальный шаблон страницы, чтобы вы могли затем добавить эту страницу в ваши обычные пункты меню вместе с О нас или Контактом.

Во-первых, сделайте копию вашего page.php или index.php, если у вас его нет. Переименуйте его в custom-events-template.php или что-то подобное. Откройте его и добавьте в начало файла. Это говорит WordPress, что это специальный шаблон страницы, и позволит вам выбрать его в выпадающем списке шаблонов.

[/ NOEDIT]

Затем найдите строку, похожую на эту:

[/ NOEDIT]

и только перед этим, добавьте это:

[/ NOEDIT]

Вы сможете довольно просто увидеть, что мы здесь делаем, если вы следовали последнему руководству по созданию собственных виджетов — мы создали новый запрос и просто ограничили его новым типом публикации событий.

Чтобы использовать этот специальный шаблон страницы, просто создайте новую страницу, назовите ее по своему вкусу и выберите шаблон в поле атрибутов страницы. Вам не нужно добавлять контент на эту страницу, просто опубликуйте и просмотрите его. Если повезет, он покажет ваши события.

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

[/ NOEDIT]

Кроме того, было бы полезно отобразить дату события в фактическом сообщении. Добавьте это сразу после содержимое(); функция в шаблоне:

ID, «дата», правда);
if ($ date) {
echo 'Это событие будет проводиться:'. $ date;
}
?>

[/ NOEDIT]

Этот маленький фрагмент будет пытаться получить дату события из мета и отобразить ее, если она существует.

Вот как выглядит конечный продукт на моей новой странице событий, отсортированный по дате и отображающий дату события в списке:

пользовательские типы сообщений

Дополнительная домашняя работа

Когда мы создали тип сообщения о событии, мы добавили поддержку избранных миниатюр. Используйте учебник, который я написал в прошлый раз, чтобы захватить и отобразить это изображение в списке событий.

Заключение

Надеюсь, это покажет вам, насколько просто расширить функциональность WordPress за пределы базовых сообщений и страниц. Можете ли вы вспомнить какие-либо другие типы сообщений, которые вы можете использовать? Как насчет «в стороне» для вашей боковой панели, когда вам есть, что сказать, но она не гарантирует полный пост?

В любом случае, дайте мне знать в комментариях, если у вас возникли проблемы или вы пробовали настраиваемые типы записей в своем блоге, и обязательно ознакомьтесь с остальными учебниками WordPress на MakeUseOf.com.

Ссылка на основную публикацию
Adblock
detector