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' => ' | ')); ?>

Не проверял, но должно работать icon_smile.gif
цитата
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
smail54.gif работает. спасибо.

теперь еще одна фишка интересная. все линки идут с таким class:

class="page_item page-item-2 current_page_item"

вобщем хочу чтоб все линки были без того class в чистом виде. icon_cool.gif

<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
Жуткие конструкции у тебя получаются, однако icon_smile.gif
цитата
11/01/11 в 18:16
 Yacc
cyberxxx писал:
Жуткие конструкции у тебя получаются, однако icon_smile.gif

Я в пыхе дуб-дубом. Буду тебе признателен, если покажешь как сделать красиво и коротко. icon_smile.gif
цитата
11/01/11 в 18:19
 X-dream
Yacc - ты волшебник. зачет smail54.gif
цитата
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]);
?>


сорри icon_smile.gif но так почему-то вообще линки не появляются...

Цитата:
<p>

</p>
цитата
11/01/11 в 18:54
 cyberxxx
Yacc писал:
Я в пыхе дуб-дубом. Буду тебе признателен, если покажешь как сделать красиво и коротко.icon_smile.gif


Не вопрос. Ультрашорт версия:
Код:
<?php preg_match_all ('/(<a.*?>.*?<\/a>)/is', wp_list_pages (array ('echo' => 0, 'title_li' => '')), $matches);
echo implode (" | ", $matches [0]); ?>


icon_smile.gif
цитата
11/01/11 в 18:55
 Yacc
cyberxxx: Notice: Undefined offset: 1

Ещё немного и получится так же жутко как у меня - дуба-дубового. icon_smile.gif
цитата
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]); ?>

icon_smile.gif


Вот это работает. Респект.
цитата
11/01/11 в 19:01
 cyberxxx
Я думал ты в ней Undefined offset нашел. Собственно, изначально проблема была в том, что я неправильно прочитал описание параметра "link_before". Выражение "link text inside <a> tag" почему-то понял, как "link text before <a> tag". Это меня из-за слова "before" в названии склинило. Думал выебнуться и обойтись одними лишь параметрами функции, а-н нет, регулярки юзать таки пришлось smail101.gif
цитата
12/01/11 в 02:30
 X-dream
smail54.gif thx
цитата
20/01/11 в 14:06
 tehnoteс
хм, а не проще было этоим li присвоить display:inline, сделать их не блоковыми, а строковыми.


Эта страница в полной версии