Если я правильно понял — Вам нужны произвольные поля и их оформление — метабоксы
Нет. Порядок такой: добавляется новая страница или набор страниц. После этого при добавлении новой записи в отдельном списке появляется весь список названий существующих страниц и можно галочками выбрать те страницы, на которых эта запись будет отображаться.
добавляется новая страница или набор страниц. После этого при добавлении новой записи
Что такое «набор страниц» я не представляю, но страницы вообще не имеют никакого отношения к записям
См https://codex.wordpress.org/%D0%A1%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B
Вероятно Вам нужна таксономия для вашего кастомного типа. (как рубрики для записей). Или всё же произвольные поля связанные с определённым шаблоном(ами) темы.
Набор страниц — это когда в шапке сайта написано: О компании, Продукция, Обратная связь и т.д. и щелкая на определенную страницу, вы получаете контент, привязанный только к ней.
В данном случае основная часть записей должна выходить в виде ленты новостей, но часть информации должна быть привязана к определенным страницам. Например, есть раздел Документы и нужно во-первых, чтобы у администратора сайта была возможность добавлять набор сканов и каждый набор выходил бы в виде отдельной записи в ленте записей и во-вторых, чтобы эти записи не могли отображаться нигде кроме как на странице Документы. Таксономии — это просто способ отбора записей в стандартной ленте записей блога.
На данный момент я пока реализовал это через костыли. Создал новый тип записи (допустим MyNewType). Создал отдельный шаблон страницы, в коде которой прописал вывод данных с отбором по типу MyNewType. В результате все записи с моим новым типом выводятся только на определенной странице. Но если идти таким путем, то нужно под каждую страницу создавать свой шаблон и свой тип — в принципе выход, но некрасивый.
т.е. про рубрики вы никогда не слышали?
привязываете свои записи к нужной рубрике, добавляете в меню ссылку на рубрику
Набор страниц — это когда в шапке сайта написано: О компании, Продукция, Обратная связь и т.д. и щелкая на определенную страницу, вы получаете контент, привязанный только к ней.
Это называется «меню». И создаётся в админке как угодно.
Про остальное.. перестал понимать вообще.
tuxfighter, рубрика — это просто фильтр — если пользователь не выбрал рубрику, то выходят ВСЕ записи, в т.ч. привязанные к рубрикам. В моем случае требуется, чтобы определенные записи могли быть выведены ТОЛЬКО при выборе определенного пункта меню и НИКАК иначе. Ну привязал я записи к рубрике Документы и если пользователь выберет эту рубрику, он увидит набор соответствующих записей, но если он никакой рубрики не выберет, то все записи, относящиеся к рубрике Документы выйдут в общей ленте записей.
В моем случае требуется, чтобы определенные записи могли быть выведены ТОЛЬКО при выборе определенного пункта меню и НИКАК иначе. Ну привязал я записи к рубрике Документы и если пользователь выберет эту рубрику, он увидит набор соответствующих записей,
Ну и какие проблемы вывести в меню рубрику «документы»? Вы это не знаете как сделать?
но если он никакой рубрики не выберет,
Где «не выберет»? А что выберет/сделает?
, то все записи, относящиеся к рубрике Документы выйдут в общей ленте записей.
И что?
В общем, моя задача решается следующим образом:
1. Создается пользовательский тип (допустим, «Отдельные записи») при помощи register_post_type
2. Создается пользовательская таксономия (допустим, «Раздел отдельных записей») с привязкой к пользовательскому типу «Отдельные записи». Создание таксономии при помощи register_taxonomy.
3. Заходим в эту пользовательскую таксономию и добавляем элементы (допустим, «Документы», «О нас» и т.д.)
4. Заходим Внешний вид — Меню (в настройках экрана ставим галочку на «Раздел отдельных записей»). В метаданных появляется раздел нашей таксономии «Раздел отдельных записей» и там выбираем «Документы», «О нас» и т.д. и жмем «Добавить в меню».
5. При создании записи пользовательского типа ставим галочку на нужной нам таксономии.
После этого на странице нашего сайта появится меню «Документы», «О нас» и т.д. и записи, привязанные к этим пунктам меню не будут отображаться в общей ленте записей, а только при нажатии на соответствующем пункте меню. Если запись пользовательского типа не привязана ни к одной таксономии, то она вообще нигде не появится.
Спасибо за помощь.
-
Ответ изменён 6 лет, 5 месяцев назад пользователем flufly.
-
Ответ изменён 6 лет, 5 месяцев назад пользователем flufly.
Как я уже писал выше, моя задача решена. Но т.к. изначально в числе основных вопросов был следующий: «Имеются ли встроенные функции WP, позволяющие добавлять дополнительные поля в окно добавления/редактирования такой записи?», то опишу способ решения такой задачи. Решение в добавлении метаполя посредством метода add_meta_box. В результате, в окне добавления/редактирования записи (можно привязать к обычной записи, а можно и к записи пользовательского типа) добавляются дополнительные поля и значения этих полей сохраняются в базе данных с привязкой к идентификатору записи.