Вордпресс 2.3.1 англ. (да собственно любой, кроме версии 2.1). Сайт локальный.
При использовании функции wp_list_pages страницам присваиваются классы page_item и current_page_item (для текущей страницы – очень удобно для организации подсветки текущей страницы в меню).
Проблема заключается в следующем: при использовании статической главной страницы класс current_page_item не присваивается странице, назначенной для вывода блога. Поясню. Скажем у вас есть страницы: Портфолио, О нас, Контакты. Вы добавляете пустую страницу Блог. В меню Настройки – Чтение назначаете главной страницей Портфолио, а страницей для вывода вашего блога – Блог. Так вот функция wp_list_pages не будет присваивать класс current_page_item для страницы Блог.
Данный глюк был исправлен в версии 2.1, но уже с версии 2.1.1 вернулся вновь. Судя по всему единственный имеющийся патч уже присутствует в коде, но не работает (точно могу сказать за версию 2.3 и 2.3.1). Отказаться от использовании встроенного вывода списка страниц мне кажется как-то неправильно. Но похоже что другого решения нет… 🙁
Вот неработающий патч: http://trac.wordpress.org/ticket/2959
Вы имели ввиду wp_list_pages ? или действительно существует некая функция wp_page_list ?
Пардон. Ошибся: я имею в виду wp_list_pages…
Ну тогда не знаю даже, current_page_item всегда вызывается, ну во всяком случае тут, пункты меню сделаны как раз wp_list_pages, а главной страницей назначена по сути страница page_id=3.
Либо я не слишком понял вашу проблему.
В вашем случае:
current_page_item указывает на текущую страницу. Функция wp_list_pages отлично работает. Но где на вашем сайте блог?
Глюк вывода списка страниц происходит только когда:
1. включена опция статического вывода страниц
2. определена отдельная страница для вывода блога.
Функция wp_list_pages в этом случае выводит список указанных страниц и использует классы: page_item, page-item-PAGE_ID и current_page_item. НО, если текущая страница это блог (указана для вывода блога в настройках Вордпресса), то класс current_page_item НЕ добавляется к странице блога в выводе списка страниц.
В указанном выше примере кода предположим, что страница Блог имеет ID=8. Если мы находимся на главной странице (ID=3), то код будет такой же. Если мы перейдем на страницу Блог (ID=8), то код будет такой:
Т.е. без класса current_page_item. В итоге для блога нельзя использовать подсветку текущей страницы.
Есть решение. Надо изменить файл /wp-inclides/classes.php.
Вместо
Написать
Детально все расписано по ссылке http://networkforpeople.blogspot.com/2007/12/wplistpages-wordpress.html