пользовательский тип сообщения против условного отображения метабоксов для определенных условий?

Проблема. Мой личный блог находится на example.com , и я хочу создать книжную полку, где я разделяю все книги, которые я читаю или планирую читать. Я мог бы сделать это двумя способами:

  1. Создайте категорию под названием «Книги», чтобы отобразить последние книги, которые я добавил (например, архив).

    Создайте пользовательскую таксономию «Тема», чтобы классифицировать книги.

    Используйте пользовательские файлы шаблонов 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 для условного отображения определенных пользовательских мета-полей на странице редактирования, т. Е. Только при проверке категории «Книги».

  2. Создайте собственный тип сообщения, называемый «Книги», с '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 для отображения некоторых настраиваемых мета-полей на странице редактирования для настраиваемого типа сообщений – «Книги».

Какой из двух методов – лучший способ выполнить то, что я хочу? (Я имею в виду, как это должно быть сделано.)

Я все еще запутался в отношении того, предназначены ли для этой цели персонализированные почтовые типы; даже после прочтения этих:

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

  • Почтовые типы и форматы и таксономии, о, мой!

Solutions Collecting From Web of "пользовательский тип сообщения против условного отображения метабоксов для определенных условий?"

Я начну с конца.

Почтовый формат – это таксономия с 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 для одной книги может быть оптимальным, если у вас нет особых потребностей.