WordPress - форум поддержки пользователей | русский ВордПресс

Помощь пользователям русского ВордПресс (WordPress)

Вы не зашли.

Объявление

#1 17.06.2007 11:00:01

rurumo
Основатель форума
Откуда: Москва
Зарегистрирован: 25.07.2006
Сообщений: 443
Вебсайт

Вывод списка страниц wp_list_pages

Есть задача - вывести список страниц в боковой колонке темы в определенном порядке или с заданным оформлением.

За вывод списка страниц отвечает функция wp_list_pages().

Использование:

Код: php

<?php wp_list_pages('arguments'); ?>


Примеры:
Чтобы было понятнее и у Вас была некая точка старта, я приведу несколько примеров вывода списка страниц с кратким описанием.

Вывод списка без заголовка
По умолчанию, функция выводит список страниц с заголовком "Страницы", чтобы убрать этот заголовок, необходимо указать пустой параметр title_li

Код: html

<ul>
<?php
wp_list_pages('title_li='); ?>
</ul>


В следующем примере, выводятся только страницы с идентификаторами 5,9,23 и заголовком "Поэзия", оформленного, как h2 (заголовок второго уровня)

Код: html

<ul>
<?php
wp_list_pages('include=5,9,23&title_li=<h2>Поэзия</h2>' ); ?>
</ul>


Вывод страниц в заданном порядке

В панели управления, есть возможность задавать порядок страницы. Чтобы вывести страницы в заданном Вами порядке, используйте следующий код.

Код: html

<ul>
<?php
wp_list_pages('sort_column=menu_order'); ?>
</ul>


Вывод страниц, с сортировкой по дате добавления

Код: html

<ul>
<?php
wp_list_pages('sort_column=post_date&show_date=created'); ?>
</ul>


Как убрать страницы из списка?

Чтобы убрать некоторые страницы из выводимого списка, используйте параметр exclude. В данном примере, убраны страницы с идентификаторами 17 и 38

Код: html

<ul>
<?php
wp_list_pages('exclude=17,38' ); ?>
</ul>


Вывод подстраниц
Иногда возникает желание сделать продвинутое меню страниц.
Например, у вас есть такое дерево страниц
- О сайте
- Проекты
  - Мой любимый проект
  - Мой первый проект
  - Мой самый классный проект

И Вы хотите, чтобы на странице Проекты выводился список проектов, а на странице О сайте вообще не выводился список (то есть заголовок меню, потому что страниц нет). Сделать это можно, используя следующий пример:

Код: html

<?php
if (wp_list_pages("child_of=".$post->ID."&echo=0")) { ?>
<ul>
<?php
wp_list_pages("title_li=&child_of=".$post->ID."
&sort_column=menu_order"); ?>
</ul>
<?php } ?>


Предыдущий пример выведет меню проектов только на странице Проекты, но не страницах проектов. То есть, если пользователь окажется на странице Мой любимый проект, то меню не будет.

Если Вы хотите вывести список проектов на странице конкретного проекта, используйте следующий код:

Код: html

  <div id="submenu">
    <ul>
    <?php 
      if($post->post_parent) { // страница является потомком
        wp_list_pages('sort_column=menu_order&title_li= &child_of='.$post->post_parent);
      }
      elseif(wp_list_pages("child_of=".$post->ID."&echo=0")) { // у страницы есть потомки
        wp_list_pages('sort_column=menu_order&title_li=&child_of='.$post->ID); 
      }
    ?>
    </ul>
  </div>


Оформление списка страниц

По умолчанию, WordPress генерирует обычный неупорядоченный список страниц. Все теги <li> вставляются функцией wp_list_pages() и помечены class="page_item", текущая страница также помечается class="current_page_item". Получается следующий код:

Код: html

<ul>
   <li class="page_item current_page_item">
      Текущая страница
   </li>
   <li class="page_item">
      Другая страница
   </li>
</ul>


То есть для оформления списка используйте следующие CSS классы:

Код: css

 .page_item { ... }
 .current_page_item { ... }


А теперь приведем полный список параметров для функции wp_list_pages()

Список параметров

sort_column (string)
Порядок сортировки страниц. Возможные значения:
  'post_title' - сортировка по алфавиту по названию страницы (по умолчанию)
  'menu_order' - сортировка по указанному в панели администрирования порядку. Помните, это не то же самое, что идентификатор страницы (Page_ID)
  'post_date' - сортировка по дате создания
  'post_modified' - сортировка по дате последнего изменения
  'ID' - сортировка по номеру идентификатора страницы (Page ID)
  'post_author' - сорт

************************************************************
Вывод списка страниц с описанием
http://blog.sjinks.org.ua/wordpress/550 … criptions/

Отредактированно sonika (04.10.2009 15:01:48)


За деньги с WordPress не разбираюсь. Только ради интереса.

Неактивен

 

#2 27.07.2007 10:40:49

vyacheslav2007
Новичок
Зарегистрирован: 24.07.2007
Сообщений: 10

Re: Вывод списка страниц wp_list_pages

Вот такое дело, уважаемый! Может быть по причине мой тупости и глупости, может лености, а может по какой другой причине, но у меня ничего не получилось.
Смысл вот в чем:
Есть страницы, по типу
- Проекты
  - Мой любимый проект
  - Мой первый проект
  - Мой самый классный проект

Мне нужно сделать, чтобы менюшка на странице "Проект" сворачивалась. При щелчке по ней, уже открывался список вложений. Бился я бился - ничего не получилось. Привожу код боковой панели моего шаблона:
    <div id="sidebar">
        <ul>
<?php if ( function_exists('dynamic_sidebar') && dynamic_sidebar(1) ) : else : ?>

            <?php wp_list_pages('title_li=<h2>Вашему вниманию:</h2>' ); ?>

<li><h2>Произведения:</h2>
                <ul>
                <?php wp_list_cats('sort_column=name&optioncount=0&hierarchical=1'); ?>
                </ul>
            </li>
<?php /* If this is the frontpage */ if ( is_home() || is_page() ) { ?>
                <?php get_links_list(); ?>
                    <?php wp_meta(); ?>
                </ul>
                </li>
            <?php } ?>
<?php endif; ?>
        </ul>
</div>

Вот скажите пожалуйста, ну что мне надо сделать, чтоб "подстраницы" открывались только после "щелчка" по основной странице??? Просто их у меня уйма, и растягиваются на километр, а это очень не удобно.
ХЕЕЕЛП!!!!!!!!!!!!
Моя аська - 196758694

Неактивен

 

#3 27.07.2007 12:37:38

sonika
Администратор
Откуда: Сочи
Зарегистрирован: 07.09.2006
Сообщений: 3910
Вебсайт

Re: Вывод списка страниц wp_list_pages

кажется это то что надо:
http://www.webspaceworks.com/resources/wordpress/30/


Гуглил, не нашел? | Личка — для общения, форум — для вопросов. Смертный грех №11 — не прочитать РИДМИ.

Неактивен

 

#4 27.07.2007 12:44:32

vyacheslav2007
Новичок
Зарегистрирован: 24.07.2007
Сообщений: 10

Re: Вывод списка страниц wp_list_pages

Соника! Спасибо огромное за ответ, но...
Вот сижу и думаю, нафига я уже более 12 лет своей жизни просиживаю за компьютером?
Может начать англицкий язык учить в свободное время? А то всё немецкий, да немецкий... :/
Но всё равно, спасибо большое, попробую разобраться интуитивным методом... :lol:

Неактивен

 

#5 27.07.2007 20:06:42

sonika
Администратор
Откуда: Сочи
Зарегистрирован: 07.09.2006
Сообщений: 3910
Вебсайт

Re: Вывод списка страниц wp_list_pages

А Вы переводчиком его :) http://www.google.com/translate_t


Гуглил, не нашел? | Личка — для общения, форум — для вопросов. Смертный грех №11 — не прочитать РИДМИ.

Неактивен

 

#6 30.07.2007 03:35:12

vyacheslav2007
Новичок
Зарегистрирован: 24.07.2007
Сообщений: 10

Re: Вывод списка страниц wp_list_pages

СОНИКА!!! СПАСИБО ТЕБЕ ОГРОМНОЕ!!!
И вам всем, кто откликнулся!
Практически всё получилось, заработало!!!
УРРРАААААААА!!!!!!!!!!!!!
:lol:

Неактивен

 

#7 07.08.2007 05:51:41

douson
Новичок
Зарегистрирован: 07.08.2007
Сообщений: 1

Re: Вывод списка страниц wp_list_pages

Заранее извиняюсь если пишу не туда куда надо. А как сделать так, чтобы пункты меню страниц оформить заранее подготовленным графическим файлом... С CSS проблем нет, это я сделаю.. Но вот как это прописать в <?php с этим не получается....
p.s. мне очень нравиться как сделано на _ttp://www.bloggingpro.com/ ТОП МЕНЮ... Как сделать подобное??? Помогите советом, пожалуйста :)

Неактивен

 

#8 08.08.2007 14:16:01

Saman
Новичок
Зарегистрирован: 08.08.2007
Сообщений: 1

Re: Вывод списка страниц wp_list_pages

Круто!
а как то же самое проделать с рубриками?
просто нужно расположить их в определенной последовательности, а они упорно выстраиваются по алфавиту
то есть хотелось бы знать как выглядит аналог "sort_column=menu_order" для рубрик...
спасибо

upd
о! путем тупого тыка выяснил:
sort_column=id
но всё равно хотелось бы некий список свойств для рубрик, если не трудно

Отредактированно Saman (08.08.2007 14:22:51)

Неактивен

 

#9 08.08.2007 15:20:19

sonika
Администратор
Откуда: Сочи
Зарегистрирован: 07.09.2006
Сообщений: 3910
Вебсайт

Re: Вывод списка страниц wp_list_pages

По ссылке, данной мной выше, в боковой колонке есть ссылка на плагин Fold category list
http://www.webspaceworks.com/resources/wordpress/31/


Гуглил, не нашел? | Личка — для общения, форум — для вопросов. Смертный грех №11 — не прочитать РИДМИ.

Неактивен

 

#10 18.12.2007 10:19:06

Tatarnikoff
Блогер
Откуда: Россия
Зарегистрирован: 08.12.2007
Сообщений: 28
Вебсайт

Re: Вывод списка страниц wp_list_pages

А можно как-то вывести список страниц на другой странице сайта (не в папке wp)? Тоесть у меня wp - это лишь часть стайта - блог новостей, но там очень удобно делать странички, хотелось бы вывести список страниц на удаленной от Word Press станичке на том же сайте но не в директории Word Press.

Неактивен

 

#11 18.12.2007 10:23:54

Кактус б/у
Гуру-блогер
Зарегистрирован: 26.06.2007
Сообщений: 1008

Re: Вывод списка страниц wp_list_pages

Tatarnikoff написал:

А можно как-то вывести список страниц на другой странице сайта (не в папке wp)? Тоесть у меня wp - это лишь часть стайта - блог новостей, но там очень удобно делать странички, хотелось бы вывести список страниц на удаленной от Word Press станичке на том же сайте но не в директории Word Press.

http://forum.maxsite.org/viewtopic.php?id=1963


/задолбал меня этот форум. поэтому я его практически не посещаю. в личку не долбить. не отвечаю/

Неактивен

 

#12 18.12.2007 10:24:57

Ю.Б.
Прогрессор
Откуда: Харків, Україна
Зарегистрирован: 25.07.2007
Сообщений: 12116
Вебсайт

Re: Вывод списка страниц wp_list_pages

Tatarnikoff написал:

А можно как-то вывести список страниц на другой странице сайта (не в папке wp)?

Можно. Если знаете, что такое php и MySQL.


"Лучший способ убедить дурака, что он не прав, — позволить ему поступить по-своему." (Джош Биллингс)

Неактивен

 

#13 19.12.2007 15:44:40

Tatarnikoff
Блогер
Откуда: Россия
Зарегистрирован: 08.12.2007
Сообщений: 28
Вебсайт

Re: Вывод списка страниц wp_list_pages

Ю.Б. написал:

Tatarnikoff написал:

А можно как-то вывести список страниц на другой странице сайта (не в папке wp)?

Можно. Если знаете, что такое php и MySQL.

Про PHP знаю, а вот с MySQL не особо, но буду разбираться)

Неактивен

 

#14 19.12.2007 15:56:26

Ю.Б.
Прогрессор
Откуда: Харків, Україна
Зарегистрирован: 25.07.2007
Сообщений: 12116
Вебсайт

Re: Вывод списка страниц wp_list_pages

А там особо и не надо, хватит минимальных знаний про SELECT и WHERE. :)


"Лучший способ убедить дурака, что он не прав, — позволить ему поступить по-своему." (Джош Биллингс)

Неактивен

 

#15 19.12.2007 15:59:38

Tatarnikoff
Блогер
Откуда: Россия
Зарегистрирован: 08.12.2007
Сообщений: 28
Вебсайт

Re: Вывод списка страниц wp_list_pages

Посмотрел как это делается с БД, единственный вопрос возник, может кто посдкажет, как правильно сделать запрос к БД на выдачу списка страниц (НЕ постов)

Вот, примерно как это должно выглядеть - выбрать из wp_posts ORDER BY post_type = page. Как это на понятном для MySQL языке сказать? :)))

Что-то вроде...
$query = "SELECT * FROM wp_posts ORDER BY post_type=page"

Неактивен

 

#16 19.12.2007 16:44:00

Tatarnikoff
Блогер
Откуда: Россия
Зарегистрирован: 08.12.2007
Сообщений: 28
Вебсайт

Re: Вывод списка страниц wp_list_pages

Я разобрался! Если ещё кому-нибудь захочется так сделать, вот решение.

Чтобы вывести список страниц (не путайте с записями блога), на любой странице с помощью MySQL, нужен следующий PHP-код:

Код:

 <?php  $hostname="localhost"; //хост
        $username="username"; //имя пользователя
        $password="******"; //пароль для БД
        $dbname="dbname"; //имя БД

         mysql_connect($hostname, $username, $password)
           or die("Can't connect to Database. <br>MySQL answer: ".mysql_error());
         mysql_select_db($dbname)
           or die("Can't connect to Database. <br>MySQL answer: ".mysql_error());

mysql_query('SET NAMES cp1251'); //Если страница, на которую собираетесь добавить заголовки страниц в другой кодировке, то оставьте этот параметр, если нет, то можно удалить.

$query = "SELECT * FROM wp_posts ORDER BY post_type"; //выбираем посты из БД
    $result = mysql_query($query);

    echo "<ul>";
    while ($row = mysql_fetch_array($result))
    {
        $title = $row['post_title'];
        $link = $row['guid'];
        $date = date("d-m-Y", strtotime($row['post_date_gmt']));

        if ($row['post_type'] == "page") //если пост является страницей, то выводим его заголовок
        {
        echo "<li><a target=\"_blank\" href=\"$link\">$title</a></li>"; //сюда можно ещё дату вставить или любую другую инфу из БД.
       }

    }
    echo "</ul>";
//ВСЁ!)))
    ?>

Неактивен

 

#17 19.12.2007 18:17:37

Ю.Б.
Прогрессор
Откуда: Харків, Україна
Зарегистрирован: 25.07.2007
Сообщений: 12116
Вебсайт

Re: Вывод списка страниц wp_list_pages

Увы, занят был, не успел ответить.
В запрос надо вставить WHERE post_type='page' вместо ORDER BY  post_type. Тогда и проверка в цикле на тип не нужна будет, и работать будет веселее.


"Лучший способ убедить дурака, что он не прав, — позволить ему поступить по-своему." (Джош Биллингс)

Неактивен

 

#18 20.12.2007 15:16:13

Tatarnikoff
Блогер
Откуда: Россия
Зарегистрирован: 08.12.2007
Сообщений: 28
Вебсайт

Re: Вывод списка страниц wp_list_pages

Нет, в таком случае невозможно будет сделать ссылки на статьи, я попробовал.
Или проверка в цикле или ещё один запрос к БД. Ссылка содержится в 'guid', а мы выбирая из базы только 'page' сразу отбрасываем все остальное, в том числе и ссылки.

Неактивен

 

#19 20.12.2007 15:28:14

Ю.Б.
Прогрессор
Откуда: Харків, Україна
Зарегистрирован: 25.07.2007
Сообщений: 12116
Вебсайт

Re: Вывод списка страниц wp_list_pages

Насчет guid Вы заблуждаетесь. Это уникальный идентификатор, который может совпадать с пермалинком.
И насчет выбирая из базы только 'page' тоже не правы. Что выбирать указывается в SELECT, а в WHERE указывается по какому критерию выбирать. Впрочем, спорить и доказывать не буду. :D


"Лучший способ убедить дурака, что он не прав, — позволить ему поступить по-своему." (Джош Биллингс)

Неактивен

 

#20 03.01.2008 13:02:04

sonika
Администратор
Откуда: Сочи
Зарегистрирован: 07.09.2006
Сообщений: 3910
Вебсайт

Re: Вывод списка страниц wp_list_pages

Вот еще вариации на тему вывода страниц (Pages)
http://www.mywordpress.ru/support/viewtopic.php?id=2444


Гуглил, не нашел? | Личка — для общения, форум — для вопросов. Смертный грех №11 — не прочитать РИДМИ.

Неактивен

 

#21 29.06.2008 18:20:37

KdP
Блогер
Зарегистрирован: 27.06.2008
Сообщений: 33

Re: Вывод списка страниц wp_list_pages

Подскажите а как сделать чтоб нужная страница в сайтбаре полностью  с картинками отображалась.
Спасибо очень надо

Неактивен

 

#22 04.07.2008 16:28:56

fuck13
Новичок
Зарегистрирован: 04.07.2008
Сообщений: 2

Re: Вывод списка страниц wp_list_pages

помогите как сделать разбивку главной страницы чтобы 5 постов а потом было навигация по страницам. не могу понять как это делаеться

Неактивен

 

#23 05.08.2008 21:53:36

Uncut
Новичок
Зарегистрирован: 04.08.2008
Сообщений: 1

Re: Вывод списка страниц wp_list_pages

Возможно ли удалить из ссылки ее описание <title> (всплывающую подсказку, которая появляется при наведении курсора на ссылку) таким образом чтобы ссылка имела вид 

Код:

<a href="http://site.ru/?page_id=1">Page 1</a>

? потому как добавление ссылок вручную и использование русских символов в хидере и сайдбаре очень нежелательно. спасибо.

Неактивен

 

#24 18.08.2008 11:40:38

Elena0602
Блогер
Откуда: Москва
Зарегистрирован: 15.08.2008
Сообщений: 44
Вебсайт

Re: Вывод списка страниц wp_list_pages

Подскажите,что я сделала неправильно:
- Захожу-Боковая колонка (sidebar.php)
-В код вставляю

Код:

<ul>
<?php
wp_list_pages('menu_order' ); ?>
</ul>

Получается:

Код:

<div id="left_column">
      <div class="inside" id="h1">
        <div id="top1"></div>
            <?php include (TEMPLATEPATH . "/searchform.php"); ?>
            <img src="images/spacer.gif" alt="" width="1" height="10" /><br />
            

            <div id="statusbar">
                <?php /* If this is a 404 page */ if (is_404()) { ?>
                <?php /* If this is a category archive */ } elseif (is_category()) { ?>
                <p>You are currently browsing the archives for the <?php single_cat_title(''); ?> category.</p>
            
                <?php /* If this is a yearly archive */ } elseif (is_day()) { ?>
                <p>You are currently browsing the <a href="<?php bloginfo('home'); ?>/"><?php echo bloginfo('name'); ?></a> weblog archives
                for the day <?php the_time('l, F jS, Y'); ?>.</p>
            
                <?php /* If this is a monthly archive */ } elseif (is_month()) { ?>
                <p>You are currently browsing the <a href="<?php bloginfo('home'); ?>/"><?php echo bloginfo('name'); ?></a> weblog archives
                for <?php the_time('F, Y'); ?>.</p>
            
                <?php /* If this is a yearly archive */ } elseif (is_year()) { ?>
                <p>You are currently browsing the <a href="<?php bloginfo('home'); ?>/"><?php echo bloginfo('name'); ?></a> weblog archives
                for the year <?php the_time('Y'); ?>.</p>
            
                <?php /* If this is a monthly archive */ } elseif (is_search()) { ?>
                <p>You have searched the <a href="<?php echo bloginfo('home'); ?>/"><?php echo bloginfo('name'); ?></a> weblog archives
                for <strong>'<?php the_search_query(); ?>'</strong>. If you are unable to find anything in these search results, you can try one of these links.</p>
            
                <?php /* If this is a monthly archive */ } elseif (isset($_GET['paged']) && !empty($_GET['paged'])) { ?>
                <p>You are currently browsing the <a href="<?php echo bloginfo('home'); ?>/"><?php echo bloginfo('name'); ?></a> weblog archives.</p>
            
                <?php } ?>
            </div>
            
            
            
                  
                <?php if ( function_exists('dynamic_sidebar') && dynamic_sidebar(__('Sidebar','theme441')) ) : else : ?>    
                
                <div class="widget_style" id="categories">
                  <h2><?php _e('Categories','theme441'); ?></h2>
                  <ul>
                    <?php wp_list_categories('show_count=0&title_li=0'); ?>
                  </ul>
                </div>
                
                
                <div class="widget_style" id="archives">
                    <h2><?php _e('Archives','theme441'); ?></h2>
                    <ul>
                        <?php get_archives('monthly','10','custom','<li>','</li>'); ?>
                    </ul>                       
                </div>
                
                <ul>
<?php
wp_list_pages('menu_order' ); ?>
</ul>
                <div id="links_with_style" class="widget_style">
                    <ul  >
                        <?php wp_list_bookmarks(); ?>
                    </ul>                       
                </div>  
                
                                        
                <div class="widget_style" id="meta">
                    <h2><?php _e('Meta','theme441'); ?></h2>
                    <ul  >
                        <?php wp_register('<li>', '</li>'); ?>
                        <li><?php wp_loginout(); ?></li>
                        <li><a href="http://validator.w3.org/check/referer" title="This page validates as XHTML 1.0 Transitional">Valid <abbr title="eXtensible HyperText Markup Language">XHTML</abbr></a></li>

                        <li><a href="http://gmpg.org/xfn/"><abbr title="XHTML Friends Network">XFN</abbr></a></li>
                        <li><a href="http://wordpress.org/" title="Powered by WordPress, state-of-the-art semantic personal publishing platform.">WordPress</a></li>
                        <?php wp_meta(); ?>
                    </ul>                       
                </div>
                <?php endif; ?>
               


        <div id="bottom1"></div>
      </div>
    </div>

А страницы,как выводились ,так и выводятся (не по ID)

Неактивен

 

#25 18.08.2008 11:49:58

Ю.Б.
Прогрессор
Откуда: Харків, Україна
Зарегистрирован: 25.07.2007
Сообщений: 12116
Вебсайт

Re: Вывод списка страниц wp_list_pages

<?php wp_list_pages('sort_column=menu_order'); ?>

http://codex.wordpress.org/Template_Tags/wp_list_pages


"Лучший способ убедить дурака, что он не прав, — позволить ему поступить по-своему." (Джош Биллингс)

Неактивен

 

Board footer

Работает на PunBB
© Копирайт 2002–2005 Rickard Andersson