Вопросы и ответы по WordPress
Вы не зашли.
Как в такой вывод сылок на Статич. страницы пристроить проверку: является ли ссылка ссылкой на текущую страницу? и в зависимости от этого втюхать li доп. класс current-page-item
<?php $pages = get_pages(); foreach ($pages as $pagg) {
$listpages .= '<li class="page_item page-item-'.$pagg->ID.'"><a href="'.get_page_link($pagg->ID).'" title=""><span>';
$listpages .= $pagg->post_title;
$listpages .= '</span></a></li>';
echo $listpages;
} ?>видимо нужно как-то пристоить такую проверку? if (is_page() && $pagg->ID) == $current_page
у меня пока ничего не выходит ![]()
Неактивен
Дык wp_list_pages сам вставляет current_page_item. Зачем тебе свой цикл, из-за <span>, раздвижные двери делаешь?
Неактивен
Да
Нашла вот способ на форуме wordpress.org. так работает:
<?php
$my_pages = wp_list_pages('title_li=&echo=0');
$my_pages = str_replace('">', '"><span>', $my_pages);
$my_pages = str_replace('</a>', '</span></a>', $my_pages);
echo $my_pages;
?>
блин, 2 часа убила по поиски ![]()
Неактивен
Так лучше. Хотя мне не очень нравится str_replace('">', '"><span>', $my_pages);
Я бы использовал что-то типа
echo preg_replace('"(<a.*?>)(.*?)(</a>)"','$1<span>$2</span>$3',wp_list_pages('title_li=&echo=0'));
Неактивен
Думаю так
<?php $pages = get_pages(); foreach ($pages as $pagg) {
$listpages .= '<li class="page_item page-item-'.$pagg->ID.(is_page($pagg->ID) ? ' current-page-item ':'').'"><a href="'.get_page_link($pagg->ID).'" title=""><span>';
$listpages .= $pagg->post_title;
$listpages .= '</span></a></li>';
echo $listpages;
} ?>Отредактированно fear86 (02-02-2009 20:25:09)
Неактивен
Спасибо за варианты! Попробую оба ![]()
А чем str_replace плох?
Неактивен
Там написано менять "> на "><span>, а такой фрагмент встречается два раза, что породит следующий код:
<li class="page_item page-item-1"><span><a href="/about" title="О сайте"><span>О сайте</span></a></li>
По-моему, один span лишний.
Неактивен
Спасибо, Юрий Дмитриевич! я что-то не подумала о лишнем span
Неактивен
Вдогонку. jQuery решение:
$('.pagenav a').wrapInner('<span></span>')PS Не скажу куда это вставлять
И обсуждать недостатки не буду.
Неактивен
И еще одно решение, самое рульное (для 2.7)
<?php wp_list_pages('title_li=&link_before=<span>&link_after=</span>'); ?>Неактивен