👍 Научим бесплатно правильно создавать сайты на WordPress. Подробнее →
Речь пойдёт о новом меню WordPress, которое реализовано пока в немногих темах (знаю только TwentyTen и её ремикс, кстати, добротная штука).
Вот Я решил воспользоваться прекрасными возможностями этого меню. Зашёл, настроил. Аккуратненько так, цивильно всё. Но, собственно, зачем полез: хотел прекратить кнопку «Блог» в меню, которое содержит список недавних записей. Так и сделал. Но сейчас это реализовано «вручную»: каждый пост добавлял сам. А можно ли сделать так, чтобы они сами туда добавлялись?
Надеюсь, понятно пишу.

А что это за кнопка Блог? Откуда такая появилась?
Я создал страницу, назвал её «Блог», и указал в настройках, что на главной показывать страницу «Визитка», а записи отображать на странице «Блог».
Потом создал меню и к странице «Блог» добавил подпункты последних записей. Каждую новую пока что буду добавлять так.
Можно добавить фрагмент в functions.php активной темы:
О, добротно. Только, к сожалению ,сложно пока читать этот код и понимать его строки :) благодарю.
Функция wp_get_recent_posts() возвращает массив текущих записей, который с помощью тегов списка оформляется в виде подменю. Затем с помощью preg_replace() находится ссылка на блог, и сразу после неё вставляется созданное подменю. Символы n и t необязательны — я добавил их, чтобы получившийся HTML-код был точно таким же, как и при ручном добавлении.
Ого! Круто. Сразу всё понятно стало.
Так. Я тут воспользовался методом дочерних тем — создал папку «twentyten-child», в не положил style.css и functions.php. В стиль положил все свои правила, что успели накопиться, а в функции — только вот эту штуку для добавления пунктов меню. Дочерняя тема сработала, активировалась, и даже стили применились, а вот функция эта не работает :( что делать?
Так, всё, разобрался:
— Привязал дочернюю тему не к TwentyTen, а к 2010-weaver
— Включил заново меню.
Спасибо огромное!
Ха, этот код выводит ещё и черновики!
[img]http://dl.dropbox.com/u/666401/Images/Screenshots/2010-10-20_212327.png[/img]
Оказалось, что wp_get_recent_posts() возвращает не только опубликованные записи. Можно заменить на get_posts(), учитывая, что теперь $post — объект, а не массив:
Это прибавляет гибкости, т.к. можно использовать все параметры get_posts() — например, включать/исключать записи определённой рубрики,
ага, теперь хорошо. спасибо.