Привет всем, я играю с WordPress 3.0 и двумя (2) новыми функциями, пользовательскими типами сообщений и редактором меню.
Я начал с создания нового типа сообщений под названием » products
«, как вы уже догадались, это список продуктов.
Я использую стандартный шаблон болота и создаю новое меню, чтобы заменить верхнюю навигацию. Насколько я вижу, я могу добавить в него только определенные «продукты», я не могу добавить «архив» продуктов. Я пытаюсь добавить ссылку в меню, чтобы перейти на страницу со списком ВСЕХ продуктов.
есть идеи как это сделать?
@dotty Как вы можете видеть из этого билета trac: должны быть индексные страницы для пользовательских типов сообщений, поэтому очевидно, что потребность еще не решена в ядре WordPress.
И @John P Bloch, и @Chris_O дают вам хорошие альтернативы; Я собираюсь дать вам 3-й.
Страница «Продукты »
Сначала создайте страницу для своего пользовательского типа сообщений и назовите ее «Продукты». Это даст ему следующий URL:
Шорткод «Список продуктов »
Затем создайте шорткод, который можно встроить на страницу «Продукты». В моем примере я назвал это
[product-list]
. Вот скриншот того, как будет выглядеть его использование:(источник: mikeschinkel.com )
Обратите внимание, что такой шорткод был бы отличным кандидатом для добавления большого количества дополнительных функций и обеспечения его работы для многих различных типов сообщений, но в интересах ясности я в значительной степени жестко закодировал все. Конечно, вы можете использовать его как отправную точку для своего собственного шорткода:
Файл
post-product.php
шаблона темыДалее вам нужно создать файл шаблона темы, который отображает только один продукт. Функция, которая реализует шорткод, называет файл шаблона,
post-product.php
и вот хорошая отправная точка:Добавьте опцию меню
Последнее, что вы хотите добавить пункт меню. Это очень просто, как вы можете видеть на этом снимке экрана (следующее предполагает, что вы ничего не делали с меню WordPress 3.0 раньше и используете тему, которая поддерживает меню WordPress 3.0, такую как Twenty Ten):
(источник: mikeschinkel.com )
Наконец, вывод
А вот как может выглядеть базовый список продуктов:
(источник: mikeschinkel.com )
Остается открытым вопрос, как изменить пункт меню продуктов, чтобы он предоставлял подменю со всеми продуктами.
@harke Обновлено.
хорошо, что это была не просьба :). Мне просто интересно, как автоматически создается раскрывающийся список, и я думаю, что это все еще бесполезно. Но как написано, это не просьба.
Привет, у меня проблема с этим, и надеюсь, что вы могли бы помочь. Проблема в том, что
current-menu-item
класс не применяется к продуктам ‘li
Отсутствующие изображения. :/
Спасибо за отличную информацию здесь. Я ищу то же самое, но, хотя с переписыванием все работает нормально, я застрял, потому что, когда я добавляю пользовательскую ссылку в меню, общедоступный веб-сайт, похоже, не меняет CSS, указывающий, что посетитель находится на этой странице. Не могли бы вы сообщить мне, как это делается, чтобы я мог показать пункт меню в состоянии «включено», если вы находитесь в архиве «продукты»?
@Chris_O : Это один из способов, но не единственный, и он также требует значительных усилий для поддержания категоризации пользователем. JMTCW в любом случае.
Имеет смысл. Надеемся, что индексная страница настраиваемых типов сообщений будет реализована в ядре.
Это изначально не поддерживается WordPress. Однако вы можете добавить это в свой файл functions.php, и он будет работать:
Это даст вам example.com/products/ в виде списка продуктов. Оттуда вы просто добавляете пользовательскую ссылку в свое меню.
Однако, если вы хотите настоящую архивацию (по месяцам, годам и т. д.) с фидами, вам нужен более подробный код. Если ваши «продукты» относятся к неиерархическому типу сообщений (кажется, что так и должно быть), вы можете использовать мой плагин:
http://www.wordpress.org/extend/plugins/custom-post-permalinks/
Это дает вам дополнительные поля для настройки ваших постоянных ссылок (как вы можете делать с сообщениями в блогах) и дает вам возможность настраивать постоянные ссылки на основе категории, автора, месяца, года, типа сообщения и т. д.
Вам нужно будет назначить таксономию для типа сообщения «продукты», а затем добавить термин таксономии в одно из ваших пользовательских меню, которое затем перенесет пользователя на страницу архива всех продуктов в рамках используемой таксономии.
Пример. У меня есть настраиваемый тип сообщения под названием «Работа» с таксономией, помеченной как «должности».
Если бы мне нужны были все вакансии с термином таксономии «Текущие вакансии», я бы выбрал его и добавил в меню.
Если вам нужно, чтобы все ваши типы сообщений «продукты» были на странице архива, вы можете назначить родительскую таксономию для всех них, чтобы все они могли быть перечислены на странице архива.
Я думаю, что лучше создать с помощью пользовательского типа сообщения тип сообщения Архив и переместить заархивированные сообщения в этот архив. Также добавьте текущий post_type в postmeta этого нового post_type, чтобы отменить это. Я написал плагин для этого, и в настоящее время вы можете увидеть это без таблиц стилей, изображений и языкового файла на gist.github/978690.