Intereting Posts
Устранение пользовательских шрифтов (WordPress) Пользовательский тип сообщения (Jigoshop): неожиданное значение для $ category_id (через $ term-> term_taxonomy_id) на реальном сервере wp_dropdown_pages () возвращает пустую строку для типа сообщения что-то другое, кроме страницы Файлы, сгенерированные в нескольких каталогах, предположительно с помощью WordPress (advanced_settings.php и common_config.php) Хороший способ добавить другое фоновое изображение для каждой страницы? Retreaving все изображения, прикрепленные к текущему сообщению Какие роли пользователя должны иметь фильтр wp_unique_post_slug_is_bad_flat_slug? Установить Cookies для отображения сообщений об ошибках проверки формы Такая же таксономия для разных типов объектов Ajax загрузить больше кнопки для комментариев wordpress Навигация по страницам за пределами контура передать html-код в worpdress Почему некоторые крючки не работают внутри контекста класса? Использовать базовый пул категории в постоянных ссылках Относительные или абсолютные пути для файлов Flash Player Player

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

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

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

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

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

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

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

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