Проблема. Мой личный блог находится на example.com
, и я хочу создать книжную полку, где я разделяю все книги, которые я читаю или планирую читать. Я мог бы сделать это двумя способами:
Создайте категорию под названием «Книги», чтобы отобразить последние книги, которые я добавил (например, архив).
Создайте пользовательскую таксономию «Тема», чтобы классифицировать книги.
Используйте пользовательские файлы шаблонов category-books.php и taxonomy-subject.php и используйте in_category( 'books' )
в single.php, чтобы настроить внешний вид (чтобы он больше напоминал книжную полку).
Структура permalink в моем блоге уже выглядит следующим образом: /%category%/%postname%/
и база категорий лишена. Поэтому URL-адреса архива книг и книги (публикации) будут выглядеть следующим образом: http://example.com/books/
и http://example.com/books/book-name/
, соответственно.
Используйте плагин Advanced Custom Fields для условного отображения определенных пользовательских мета-полей на странице редактирования, т. Е. Только при проверке категории «Книги».
Создайте собственный тип сообщения, называемый «Книги», с 'rewrite' => array('slug' => 'books')
. Поэтому URL-адреса архива книг и книги (публикации) будут выглядеть следующим образом: http://example.com/books/
и http://example.com/books/book-name/
, соответственно.
Создайте пользовательскую таксономию «Тема», чтобы классифицировать книги.
Используйте пользовательские файлы шаблонов archive-books.php, single-books.php и taxonomy-subject.php, чтобы настроить внешний вид (чтобы он больше напоминал книжную полку).
Используйте плагин Advanced Custom Fields для отображения некоторых настраиваемых мета-полей на странице редактирования для настраиваемого типа сообщений – «Книги».
Какой из двух методов – лучший способ выполнить то, что я хочу? (Я имею в виду, как это должно быть сделано.)
Я все еще запутался в отношении того, предназначены ли для этой цели персонализированные почтовые типы; даже после прочтения этих:
Форматы сообщений и пользовательские типы сообщений
Почтовые типы и форматы и таксономии, о, мой!
Я начну с конца.
Почтовый формат – это таксономия с 9 условиями. Единственная причина, по которой они существуют, – это установить стандарт для разработчиков тем. После того, как термины будут всего 9, и имена терминов не могут быть изменены пользователями (пользователи могут выбирать их только с помощью переключателя при создании сообщений), разработчики темы могут создавать файлы шаблонов, такие как "taxonomy-post_format-gallery.php"
будучи уверенным, что этот шаблон будет использоваться для архива сообщений с форматом post -gallery . Также можно использовать функцию has_post_format
со специальным термином: это невозможно сделать со стандартными категориями или пользовательской таксономией, поскольку условия выбираются пользователями.
Например, если я создаю тему и помещаю где-то условное if ( has_category('foo') )
и моя тема используется другими людьми, я не могу быть уверен, что пользователи моей темы будут использовать категорию «foo» для своих сообщений, на произвольном, я могу использовать condional if ( has_post_format('gallery') )
потому что формат «галерея» является стандартным.
Короче говоря, почтовый формат – это своего рода категории со стандартными именами терминов, которые существуют, чтобы помочь разработчикам тем (особенно тем, которые продают или распространять темы) стилизовать сообщения в зависимости от их содержимого таким образом, который разделяется между тысячами тем, которые существуют для WP: даже если пользователь переключит тему, пост будет стилизован правильно, если обе темы поддерживают формат post.
Важно отметить, что почтовый формат может быть назначен только на стандартные должности, а не на CPT.
В вашем случае книга не является одним из 9 терминов, поэтому вы можете исключить почтовый формат.
Теперь перейдем к выбору пользовательских таксономий и типам пользовательских сообщений.
Прежде всего, вы не должны определять структуру своего сайта на основе URL-адреса, а наоборот, вы должны настроить свои URL-адреса для «зеркального отображения» как можно ближе к структуре сайта.
Сказал, что вам следует подумать, что такое таксономии и какие типы сообщений.
Сообщения, в общем, являются информационными контейнерами. Типы сообщений предназначены для организации этой информации по типам. Таксономии могут использоваться для группировки информации тожего типа или разных типов, которые имеют характеристику.
В общем, одна информация может быть только одного типа, но может иметь разные характеристики : тип WordPress должен обрабатываться через типы сообщений, характеристики через таксономии.
В вашем случае книга представляет собой тип информации . Это характерно. Один из них – предмет, который вы хотите обработать с помощью таксономии, на самом деле книга может иметь больше одного предмета, но не может быть книгой и в то же время новостью, которая является другим типом информации.
В заключение вы должны использовать CPT для книги и группировать их в тему с использованием таксономии.
Что касается URL-адресов, я думаю, что стандартный example.com/books/
для книжного архива и example.com/books/a-book-name
для одной книги может быть оптимальным, если у вас нет особых потребностей.