Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Блоги и Социальные сети
»
Тема:
Как выровнять в ряд pages в wp без css?
Новая тема
Ответить
цитата
11/01/11 в 16:23
X-dream
Чтоб выровнять в ряд категории, я юзаю такой код:
<p>Categories: <?php echo str_replace('<br />',' | ', wp_list_categories('style=&show_count=0&echo=0'));?></p>
Получается: Category1 | Category2 | Category3...
Как сделать тоже самое для pages? Без стилей и css
цитата
11/01/11 в 16:37
cyberxxx
http://codex.wordpress.org/Function_Reference/wp_list_pages
см. аргументы
link_before
и
link_after
.
Типа так:
Код:
<?php wp_list_pages('link_after=|'); ?>
или так:
Код:
<?php wp_list_pages(array('link_after' => ' | ')); ?>
Не проверял, но должно работать
цитата
11/01/11 в 16:52
X-dream
Неа, всеравно получается лист.. <ul><li>
цитата
11/01/11 в 17:00
Yacc
А чем тебя стили не устроили?
<?php
$pageList = preg_replace('#<li\s(.+)>.+(href=".+" title=".+">.+</a>)</li>#siU','<a $1 $2', wp_list_pages('title_li=&depth=1&echo=0'));
preg_match_all('#(<a.+/a>)#siU', $pageList, $matches);
echo implode(' | ', $matches[1]);
?>
цитата
11/01/11 в 17:48
X-dream
работает. спасибо.
теперь еще одна фишка интересная. все линки идут с таким class:
class="page_item page-item-2 current_page_item"
вобщем хочу чтоб все линки были без того class в чистом виде.
<a href="http://www.domain.com">domain</a>
цитата
11/01/11 в 18:02
cyberxxx
О, так даже лучше:
Код:
<?php
preg_match ( '/<li class="page_item page-item-.* current_page_item">(<.*?>)<\/li>/', wp_list_pages ( array ('echo' => 0, 'title_li' => '', 'link_after' => ' | ' ) ), $matches );
echo ($matches[1]);
?>
Последний раз редактировалось: cyberxxx (
11/01/11 в 18:26
), всего редактировалось 1 раз
цитата
11/01/11 в 18:11
Yacc
<?php
$pageList = preg_replace('#<li\s(.+)>.+(href=".+" title=".+">.+</a>)</li>#siU','<a $1 $2', wp_list_pages('title_li=&depth=1&echo=0'));
preg_match_all('#(<a.+/a>)#siU', preg_replace('/class\s*=\s*"[^\"]*"/', '', $pageList), $matches);
echo implode(' | ', $matches[1]);
?>
цитата
11/01/11 в 18:13
cyberxxx
Жуткие конструкции у тебя получаются, однако
цитата
11/01/11 в 18:16
Yacc
cyberxxx писал:
Жуткие конструкции у тебя получаются, однако
Я в пыхе дуб-дубом. Буду тебе признателен, если покажешь как сделать красиво и коротко.
цитата
11/01/11 в 18:19
X-dream
Yacc - ты волшебник. зачет
цитата
11/01/11 в 18:21
X-dream
cyberxxx писал:
Так отключил бы их (че сразу не спросил?):
Код:
<?php wp_list_pages(array('title_li' => '', 'link_after' => ' | ')); ?>
Удали их:
Код:
echo preg_replace('/class="page_item page-item-.* current_page_item" /' , '', wp_list_pages(array('echo' => 0, 'title_li' => '', 'link_after' => ' | ')));
так тоже не то что надо выходит...
цитата
11/01/11 в 18:27
cyberxxx
X-dream писал:
так тоже не то что надо выходит...
Да не, я поправил уже. Ибо немного изначально немного не то было. В исправленном варианте и <li> удаляются, и лишние классы.
цитата
11/01/11 в 18:45
X-dream
cyberxxx писал:
О, так даже лучше:
Код:
<?php
preg_match ( '/<li class="page_item page-item-.* current_page_item">(<.*?>)<\/li>/', wp_list_pages ( array ('echo' => 0, 'title_li' => '', 'link_after' => ' | ' ) ), $matches );
echo ($matches[1]);
?>
сорри
но так почему-то вообще линки не появляются...
Цитата:
<p>
</p>
цитата
11/01/11 в 18:54
cyberxxx
Yacc писал:
Я в пыхе дуб-дубом. Буду тебе признателен, если покажешь как сделать красиво и коротко.
Не вопрос. Ультрашорт версия:
Код:
<?php preg_match_all ('/(<a.*?>.*?<\/a>)/is', wp_list_pages (array ('echo' => 0, 'title_li' => '')), $matches);
echo implode (" | ", $matches [0]); ?>
цитата
11/01/11 в 18:55
Yacc
cyberxxx:
Notice: Undefined offset: 1
Ещё немного и получится так же жутко как у меня - дуба-дубового.
цитата
11/01/11 в 18:56
cyberxxx
Где это "Notice: Undefined offset: 1 "???
цитата
11/01/11 в 18:57
Yacc
cyberxxx писал:
Не вопрос. Ультрашорт версия:
Код:
<?php preg_match_all ('/(<a.*?>.*?<\/a>)/is', wp_list_pages (array ('echo' => 0, 'title_li' => '')), $matches);
echo implode (" | ", $matches [0]); ?>
Вот это работает. Респект.
цитата
11/01/11 в 19:01
cyberxxx
Я думал ты в ней Undefined offset нашел. Собственно, изначально проблема была в том, что я неправильно прочитал описание параметра "link_before". Выражение "link text
inside
<a> tag" почему-то понял, как "link text
before
<a> tag". Это меня из-за слова "before" в названии склинило. Думал выебнуться и обойтись одними лишь параметрами функции, а-н нет, регулярки юзать таки пришлось
цитата
12/01/11 в 02:30
X-dream
thx
цитата
20/01/11 в 14:06
tehnoteс
хм, а не проще было этоим li присвоить display:inline, сделать их не блоковыми, а строковыми.
Новая тема
Ответить
Эта страница в полной версии