Создание веб-сайтов может быть сложной задачей. В наши дни типичный веб-сайт может содержать много типов информации, которую можно представить читателю. На сайте блога мы в основном имеем дело с постами, которые со временем добавляются в блог. Но если наш сайт посвящен программному обеспечению, музыке или почти чему-либо еще, лучше всего иметь специальный способ разделения разных типов информации.
WordPress — это отличная система управления контентом (или CMS), которая позволяет нам определять пользовательские типы записей, чтобы лучше классифицировать информацию, которую мы имеем для наших читателей. При создании веб-сайтов я использовал пользовательские типы записей в WordPress для создания листа часто задаваемых вопросов, способа составления списка файлов PDF, учебных пособий и многих других способов. Некоторые плагины даже используют пользовательские типы записей для создания динамического контента для слайдера на веб-сайте. Есть много способов использовать эту очень гибкую систему. Но у него есть свои проблемы: документация!
Проблема
Одна особенность пользовательских типов записей, которую мне было очень трудно понять, — это иерархические типы записей. Иерархический тип записей — это тип записей с родителем и одним или несколькими дочерними элементами. Тип публикации страниц в WordPress является классическим примером иерархического типа публикации. Одна страница может быть родительской для других страниц, которые могут быть иерархическими родителями других страниц. Это создает очень естественный способ группировки многих связанных страниц.
Во время работы над новым проектом, в котором был пользовательский тип публикации, стало очень ясно, что было бы очень полезно иметь пользовательский тип публикации, иерархический по своей природе, подобный страницам. Я погрузился в документацию для пользовательских типов сообщений . Большая часть работы, выполняемой для создания пользовательского типа записи, заключается в спецификации функции для регистрации типа записи: функция register_post_type()
. Эта функция — то, как мы создаем пользовательские типы записей в WordPress.
Сканируя этот документ, я нашел эту строку:
иерархическая
(булево) (необязательно) Является ли тип сообщения иерархическим (например, страница). Позволяет указать родителя.
По умолчанию: false
Я подумал, что именно так мы определяем иерархический тип поста. Я установил значение true и запустил скрипт. У меня был свой тип сообщения, и все выглядело хорошо. Тогда я заметил проблему. На экране редактирования не было области мета-поля для обозначения родителя текущего пользовательского типа записи. Эта линия не работает!
Решение
Итак, я сделал то, что делает каждый программист, я искал это в Google! Удивительно, но я нашел много постов, где люди задавали этот же вопрос. Но я так и не нашел пост, который ответил на вопрос. Когда Google не помогает, единственное другое решение: попробуйте все возможные комбинации аргументов в спецификации для функции register_post_type()
! Это заняло некоторое время!
Наконец, я заметил эти строки:
опоры
(массив) (необязательно) Псевдоним для непосредственного вызова add_post_type_support ().
По умолчанию: заголовок и редактор* ‘заглавие’
* «редактор» (контент)
* «автор»
* ‘thumbnail’ (рекомендуемое изображение, текущая тема также должна поддерживать пост-миниатюры)
* выдержка
* ‘обратные ссылки’
* ‘Настраиваемые поля’
* ‘comments’ (также будет отображаться всплывающее окно с комментариями на экране редактирования)
* ‘revisions’ (будет хранить ревизии)
* атрибуты страницы (порядок меню, иерархия должна быть истинной, чтобы отображалась опция «Родитель»)
* ‘post-format’ добавить форматы записей, см. Форматы записей
Сначала я не видел ничего, что упоминало бы иерархические типы записей, но слова « атрибуты страницы » выделялись мне. Единственный тип записей, родной для WordPress, который является иерархическим, — это страница. Возможно, если бы я дал свои пользовательские атрибуты страницы поста, то, возможно, он показал бы родительский мета-блок. Подобно тому, как эта мысль пришла мне в голову, я, наконец, заметил конец строки, в которой говорилось, что « иерархический должен быть верным, чтобы показать родительский вариант ». Бинго! Я знал, что это было то, что мне было нужно. Я добавил строку в свой тип сообщения и, конечно же, это сработало. Теперь у меня был иерархический пользовательский тип записи!
Вывод
Поэтому, чтобы создать иерархический пользовательский тип записи, вы должны установить page-attributes
в массиве « hierarchical
» и установить флажок «ierarchical »в значение true
. Я надеюсь, что это было полезно и для вас!
С какими еще мелочами вы сталкивались при разработке для WordPress, и какими советами вы можете поделиться, чтобы сэкономить время других? Поделитесь ими в комментариях ниже.