Наверх

Оглавления и списки страниц в WordPress с помощью плагина Page-list

Плагин Page-list позволяет выводить списки ссылок на страницы, а также  ссылки на страницы с миниатюрами и прочими настройками. Используя Page-list можно организовать карту сайта, каталог товаров,  галерею миниатюр страниц с прямыми ссылками на эти страницы.

Плагин предоставляет несколько типов шорткодов, которые можно вставить в любую запись или страницу:

  • [pagelist] - иерархическое дерево всех страниц сайта (полезно, если требуется организовать карту сайта);
  • [subpages] - иерархическое дерево всех дочерних страниц текущей страницы;
  • [siblings] - иерархическое дерево соседних страниц текущей страницы;
  • [pagelist_ext] - список страниц с выводом миниатюр и текстовыми выдержками;

Добавляя к шорткодам параметры, можно усовершенствовать выводимые списки.

Параметры шорткодов pagelist, subpages, siblings

depth

Указывает сколько уровней страниц включать в список, по умолчанию глубина не ограничена (depth=0), глубину можно указать следующим образом:

[pagelist depth="3"]

Если нужно показать плоский список, т.е. без иерархии, нужно использовать следующий шорткод:

[pagelist depth="-1"]

 

child_of

С помощью этого параметра можно вывести дочерние страницы конкретной страницы:

[pagelist child_of="4"]

где 4 – это ID конкретной страницы;

Для того, чтобы показать подстраницы текущей страницы, нужно использовать следующие шотркоды:

[subpages]

[pagelist child_of="current"]

[pagelist child_of="this"]

Чтобы показать соседние страницы текущей страницы, используют шорткоды:

[siblings]

[pagelist child_of="parent"]

 

exclude

Чтобы исключить определенные страницы из списка, используется такой шорткод:

[pagelist exclude="6,7,8"]

где параметру через запятую присваиваются ID страниц;

Удалить текущую страницу из списка можно шорткодом:

[pagelist exclude="current"]

 

exclude_tree

Чтобы убрать дерево страниц из списка, используется такой шорткод:

[pagelist exclude_tree="7,10"]

где параметр exclude_tree принимает разделенные запятыми значения ID страниц (все эти и вложенные в них страницы будут исключены из списка).

 

include

Чтобы добавить в список только определенные страницы, используется такой шорткод:

[pagelist include="6,7,8"]

где параметр include принимает разделенные запятыми значения ID страниц.

 

title_li

Если нужно указать название списка страниц, используется шорткод:

[pagelist title_li="List of pages"]

по умолчанию название отсутствует (title_li="");

 

number

Если нужно указать количество страниц, которые должны быть включены в список, используется шорткод:

[pagelist number="10"]

по умолчанию количество страниц не ограничено (number="").

 

offset

Если нужно пропустить некоторые страницы (сместить), используется шорткод

[pagelist offset="5"]

по умолчанию страницы не пропускаются (offset="");

 

meta_key

Если нужно включить в список только страницы, имеющие определенное произвольное поле, используется шорткод:

[pagelist meta_key="metakey" meta_value="metaval"]

 

show_date

Если нужно показать дату создания страницы, используется шорткод:

[pagelist show_date="created"]

можно использовать следующие значения для параметра show_date: created, modified, updated

 

menu_order

Если нужно указать колонки для сортировки, используется шорткод:

[pagelist sort_column="menu_order"]

по умолчанию сортирует по колонкам menu_order и post_title (sort_column="menu_order, post_title");
можно использовать следующие значения для параметраsort_columnpost_title, menu_order, post_date (сортировка по дате создания), post_modified (сортировка по дате изменения), ID, post_author (сортировать по ID автора страницы), post_name (сортировка по имени).

 

sort_order

Если нужно изменить порядок сортировки списка страниц (по возрастанию или убыванию), используется шорткод:

[pagelist sort_order="desc"]

По умолчанию sort_order присвоено значение asc (sort_order="asc"); можно использовать следующие значения для параметра sort_orderasc, desc

 

link_before

Если нужно вставить некоторый текст или HTML-код, который предшествует тексту ссылки внутри тега ссылки, используется шорткод:

[pagelist link_before="span"]

Вставить HTML-теги можно только в режиме ввода текста (кода) визуального редактора.

 

link_after

Если нужно вставить текст или некоторый HTML-код, который следует ЗА текстом ссылки внутри тега ссылки, то используется шорткод:

[pagelist link_after="span"]

Вставить HTML-теги можно только в режиме ввода текста (кода) визуального редактора.

 

class

Если нужно задать CSS-класс для списка страниц, используется шорткод:

[pagelist]

По умолчанию класс пустой (class=" ")

 

Параметры для pagelist_ext

 

[pagelist_ext]

По умолчанию показывает список дочерних страниц текущей страницы, но если дочерних страниц не существует, выведет все существующие страницы сайта.

show_image

Показать или скрыть миниатюру:

[pagelist_ext show_image="0"]

"show_image" имеет более высокий приоритет, чем "show_first_image"

По умолчанию: show_image="1"

 

show_first_image

Показать или скрыть первое изображение из содержимого страницы, если отсутствует миниатюра:

[pagelist_ext show_first_image="1"]

По умолчанию: show_first_image="0"

 

show_title

Показать или скрыть название:

[pagelist_ext show_title="0"]

По умолчанию: show_title="1"

show_content

Показать или скрыть содержимое страницы:

[pagelist_ext show_content="0"]

По умолчанию: show_content="1"

 

more_tag

Если нужно вывести все содержимое до и после тега more, испольуется шорткод:

[pagelist_ext more_tag="0"]

Этот параметр не добавляет "more_link" до конца содержания, просто вырезает содержимое  перед more_tag; параметр "more_tag" имеет более высокий приоритет, чем  "limit_content"

По умолчанию: more_tag включен (more_tag="1") и показывает только содержимое до тега  more.

 

limit_content

Количество символов содержимого, ограниченное "more-tag" (если есть), либо параметром"limit_content"

[pagelist_ext limit_content="100"]

По умолчанию: limit_content="250"

 

image_width

Ширина изображения

[pagelist_ext image_width="80"]

По умолчанию: image_width="50"

 

image_height

Высота изображения

[pagelist_ext image_height="80"]

По умолчанию: image_height="50"

 

child_of

Если нужно вывести дочерние страницы определенной страницы:

[pagelist_ext child_of="4"]

где 4 - это ID конкретной страницы.

По умолчанию выводятся дочерние страницы текущей страницы.

 

parent

Если нужно вывести дочерние страницы определенной страницы, используется шорткод:

[pagelist_ext parent="4"]

где 4 это ID конкретной страницы и глубина будет только в один уровень.

По умолчанию parent="-1" и глубина не ограничена.

 

sort_order

Если нужно изменить порядок сортировки списка страниц (по возрастанию или убыванию), используется шорткод:

[pagelist_ext sort_order="desc"]

Можно использовать следующие значения для параметра sort_order: asc, desc

По умолчанию: sort_order="asc"

 

sort_column

Если нужно указать колонки для сортировки, используется шорткод:

[pagelist_ext sort_column="menu_order"]

Можно использовать следующие значения для параметра sort_column: post_title, menu_order, post_date (сортировка по времени создания), post_modified (сортировка по времени изменения), ID, post_author (сортировать по ID автора страницы), post_name (сортировка по имени).

По умолчанию сортирует по колонкам sort_column и post_title (sort_column="menu_order, post_title")

 

hierarchical

Отображение дочерних страниц ниже их родительской страницы

[pagelist_ext hierarchical="0"]

По умолчанию: hierarchical="1"

 

exclude

Чтобы исключить определенные страницы из списка, используется такой шорткод:

[pagelist_ext exclude="6,7,8"]

где параметру через запятую присваиваются ID страниц.

 

exclude_tree

Чтобы убрать дерево страниц из списка, используется такой шорткод:

[pagelist_ext exclude_tree="7,10"]

где параметр exclude_tree принимает разделенные запятыми значения ID страниц (все эти и вложенные в них страницы будут исключены из списка).

 

include

Чтобы добавить в список только определенные страницы, используется такой шорткод:

[pagelist_ext include="6,7,8"]

где параметр include принимает разделенные запятыми значения ID страниц.

 

meta_key

Если нужно включить в список только страницы, имеющие определенное произвольное поле, используется шорткод:

[pagelist_ext meta_key="metakey" meta_value="metaval"]

 

authors

Включает только страницы, написанные определенным автором

[pagelist_ext authors="6,7,8"]

 

number

Если нужно указать количество страниц, которые должны быть включены в список, используется шорткод

[pagelist_ext number="10"]

По умолчанию количество страниц не ограничено (number="")

 

offset

Если нужно пропустить некоторые страницы (сместить), используется шорткод:

[pagelist_ext offset="5"]

По умолчанию страницы не пропускаются (offset="")

 

post_type

Тип выводимых записей.

[pagelist_ext post_type="page"]

 

post_status

Статус выводимых записей.

[pagelist_ext post_status="publish"]

 

class

Если нужно задать CSS-класс для списка страниц, используется шорткод:

[pagelist_ext]

По умолчанию класс пустой (class="")

strip_tags

Чтобы выводить контент с тегами, нужно использовать шорткод:

[pagelist_ext strip_tags="0"]

По умолчанию strip_tags включен (strip_tags="1")

 

strip_shortcodes

Чтобы выводить контент с шорткодом, нужно использовать шорткод:

[pagelist_ext strip_shortcodes="0"]

По умолчанию strip_shortcodes включен (strip_shortcodes="1") и все зарегистрированные шорткоды удаляются;

 

show_child_count

Если нужно показать одну дочернюю страницу, используется шорткод:

[pagelist_ext show_child_count="1"]

По умолчанию child_count выключен (show_child_count="0"); Если show_child_count="1", но количество дочерних страниц = 0, то не выводит;

 

child_count_template

Если нужно создать шаблон child_count, используется шорткод:

[pagelist_ext show_child_count="1" child_count_template="Subpages: %child_count%"]

По умолчанию child_count_template="Subpages: %child_count%";

 

show_meta_key

Если нужно вывести произвольное поле, используется шорткод:

[pagelist_ext show_meta_key="your_meta_key"]

По умолчанию show_meta_key пустой (show_meta_key=""); Если show_meta_key включен, но значение ключа пустое, то произвольное поле не выводится;

 

meta_template

Если нужно создать шаблон поля, используется шорткод:

[pagelist_ext show_meta_key="your_meta_key" meta_template="Meta: %meta%"]

По умолчанию meta_template="%meta%"

 

Источники:

http://wordpress.org/

http://www.indeso.ru/

Всего отзывов: 27

  1. Салават

    Приветствую. Спасибо, забрал некоторую инфу. Кстати, кому если будет нужно, то здесь разжевано по полочкам как произвольные поля в плагине Page list можно выводить: labcopy.ru.

  2. Алекс

    Здравствуйте всем! Решил использовать плагин Page-list, столкнулся с задачей, которую решить пока своим умом не могу. А именно: в сайдбаре вывожу шорткодом этого плагина список дочерних страниц. Кликаю на нужную ссылку перехожу на заданную страницу, страница открывается, всё нормально. Но сайдбар на открывшейся странице пустой. Т.е. сайдбар показывается только на главной. При переходе на любую другую страницу он т.е. сайдбар пустой. Где и что я упустил? Как решить, подскажите пожалуйста. Заранее премного благодарен.

    • Здравствуйте
      Для начала проверьте, что ваша тема не поддерживает разные сайдбары для главной и всех остальных страниц, то есть что сайдбар, в который вы вставили виджет, действительно присутствует на всех страницах.
      Затем проверьте, каким шорткодом и с какими параметрами вы задаете ваш список страниц.

      • Алекс

        Возможно я неправильно написал. Не сайдбар, а область виджетов бокового меню в Mantra. Шорткод [subpages].

        • Существуют темы, в которых на главной и прочих предусмотрены разные наборы виджетов.

          Поскольку шорткод [subpages] генерирует список дочерних относительно текущей страниц, логично, что для страницы, у которой нет дочерних, он может оказаться пустым. Попробуйте использовать шорткод [pagelist], при необходимости [pagelist child_of="ID"], где Id — идентификатор нужной вам страницы.

          Идентификатор страницы можно узнать, например, из URL при ее редактировании

  3. Алексей

    С выводом шорткода с помощью php разобрался. Но как вообще вывести каталог с помощью шорткода на главную, ведь у главной нет дочерних (дочерние есть только у страницы Каталога) и использование include не срабатывает? Нужно конкретно четыре первых товара вывеси.

    • Для списка дочерних используют шорткод [subpages], а вам нужен [pagelist include=»6,7,8″]. По идее, если вы правильно укажете идентификаторы страниц, список выведется корректно в любом месте сайта — в таком виде он он не привязан к иерархии.

      • Алексей

        Не получается. Вот:
        [pagelist_ext show_content = "0" image_width="240" image_height="240" show_meta_key="cena"] — в этом случае на главной выводятся ВСЕ возможные страницы сайта согласно правилу: "По умолчанию показывает список дочерних страниц текущей страницы, но если дочерних страниц не существует, выведет все существующие страницы сайта."
        [pagelist_ext show_content = "0" include="1,2,3,4" image_width="240" image_height="240" show_meta_key="cena"] — в этом случае на главной НЕ выводится НИ ОДНА из страниц.
        1,2,3,4 — это порядковые номера дочерних страниц к странице каталога, и на странице каталога они выводятся, а у главной страницы в принципе нет дочерних, и поэтому ничего не выводится — он не читает эти идентификаторы как относящиеся к своим.
        Еще пробовал выводить с использованием значения произвольного поля, создав эти поля у дочерних страниц каталога:
        [pagelist_ext show_content = "0" meta_key="metakey" meta_value="metaval" image_width="200" image_height="200" show_meta_key="cena"]
        Но тут тоже ничего не вывелось, опять же скорее всего потому, что это правило относится лишь к дочерним страницам ТЕКУЩЕЙ страницы, на которую ставим шорткод, а у главной таких страниц нет, а дочерние только у страницы каталога.
        Что я делаю не так? Вам удавалось выводить каталог на странице, у которой нет дочерних?

        • Вот, к примеру, две станицы: Overview и Contacts. Они никак не связаны, т.е являются соседними и не дочерними ни для одной страницы.
          На Overview вставлен код Contact me: [pagelist include="31"] и, как видите, список из одной 31й страницы вывелся. Аналогично, если указать [pagelist include="29, 31"], то выведутся обе страницы — и overview и contacts.

          Вам нужно проверить ваше дерево страниц (иерархию). Еще можно попробовать явно задать родителя — вашу страницу-каталог: [pagelist child_of="4"], где вместо 4 — Page ID каталога.

      • Алексей

        Я же правильно понимаю, что идентификатор страницы — это цифра, которая вписывается в блоке «Атрибуты страницы» — «Порядок»? И эта цифра затем используется в include. Но она ведь по сути относится к родительской, а не ко всему сайту. Или идентификатор — это нечто другое?

      • Алексей

        А, понял что такое идентификатор:)

  4. Алексей

    И как вывести каталог с помощью шорткода через html-код, а не через поле записи (у меня главная редактируется при помощи обычного файла html). Ввожу шорткод, и он же отображается на сайте, а не каталог.

  5. Алексей

    Добрый день!
    Как задать ширину одной позиции в шорткоде?
    У одного варианта вывода каталога это задается так в css:
    .page-list-ext .page-list-ext-item {
    float:left;
    width:240px;
    margin: 25px 30px 0 0;
    }
    А я хочу вывести на другой странице другой вариант каталога с другими размерами. Как это сделать через шорткод, а то он автоматически подтянет стили из css?

    • Как вариант, вы можете использовать стиль с указанием идентификатора или класса страницы, на которой вы делаете вывод (в зависимости от темы на странице может быть что-то подобное, уникальное для каждой страницы

      ), или же попробуйте воспользоваться атрибутом class и создать несколько стилей разного вида.
      • Алексей

        А вот тут не понятно. Дело в том, что атрибут class=»» задает стили не для отдельного элемента каталога, а для ВСЕЙ ОБЛАСТИ, в которую мы выводим элементы каталога. То есть этот класс является аналогом классов page-list и page-list-ext и он при использовании появляется с ними в одном и том же . А мне нужно задать альтернативные уже существующим классам page-list-ext-item и page-list-ext-title классы, которые относятся НЕ КО ВСЕЙ ОБЛАСТИ ВЫВОДА, а к ОТДЕЛЬНЫМ ВЫВОДИМЫМ ПОЗИЦИЯМ.Как задать такие классы при выводе на главную страницу? То есть эти классы для выводимых элементов должны отличаться для страницы каталога и для главной страницы. Как это сделать?

      • Алексей

        Вот именно эти классы меня интересуют — page-list-ext-item и page-list-ext-title. Как их сделать разными для страницы каталога и для главной страницы?

      • Алексей

        Попробовал сделать подмену файла со стилями page-list.css на page-list.css. В файле header.php этот файл со стилями не встречается (как и в function.php), но нашел его в файле самого плагина page-list.php вот в такой строчке:

        if ( !function_exists(‘pagelist_unqprfx_add_stylesheet’) ) {
        function pagelist_unqprfx_add_stylesheet() {
        wp_enqueue_style( ‘page-list-style’, plugins_url( ‘/css/page-list.css’, __FILE__ ), false, PAGE_LIST_VERSION, ‘all’ );
        }
        add_action(‘wp_enqueue_scripts’, ‘pagelist_unqprfx_add_stylesheet’);
        }

        После этого я расширил условие для того, чтобы нужный мне файл со стилями page-list.css выводился ТОЛЬКО на главной:

        if (is_front-page() and !function_exists(‘pagelist_unqprfx_add_stylesheet’) ) {
        function pagelist_unqprfx_add_stylesheet() {
        wp_enqueue_style( ‘page-list-style’, plugins_url( ‘/css/page-list2.css’, __FILE__ ), false, PAGE_LIST_VERSION, ‘all’ );
        }
        add_action(‘wp_enqueue_scripts’, ‘pagelist_unqprfx_add_stylesheet’);
        } else if ( !function_exists(‘pagelist_unqprfx_add_stylesheet’) ) {
        function pagelist_unqprfx_add_stylesheet() {
        wp_enqueue_style( ‘page-list-style’, plugins_url( ‘/css/page-list.css’, __FILE__ ), false, PAGE_LIST_VERSION, ‘all’ );
        }
        add_action(‘wp_enqueue_scripts’, ‘pagelist_unqprfx_add_stylesheet’);
        }

        Но после такой подмены сайт вообще перестал работать! Что я сделал не так и как правильно подменить стили для page-list?

        • php файл вообще изменять не стоит, поскольку он перезапишется после первого же обновления. Для того чтоб менять внешний вид в разных местах, вам нужно понять механизм селекторов CSS. Чтобы сделать разными list-ext-item и page-list-ext-title вам достаточно сделать разными классы их родителей и задать стили, перезаписывающие стандартные, соответственно родителю.

          • Алексей

            А какие классы являются для них классами родителей и как эти классы родителей сделать более авторитетными на конкретных страницах?
            «Задать стили, перезаписывающие стандартные, соответственно родителю.» — Про это можно где-нибудь почитать?

          • Если вы добавите в вызову плагина атрибут class, например [pagelist include=»31″ class=»shortlist»], то в конечном коде вы получите следующую структуру:

            это значит, что элемент списка можно описать в стилях как

            .page-list.shortlist .page_item{
            /*Стиль, который должен быть у конкретного списка*/
            }

            Таким образом, задавая разным шорткодам с вызовом плагина разные классы, вы можете управлять стилями page_item и всего остального, что находится внутри списка.

  6. Подскажите, пожалуйста, как вывести страницы в две колонки.

    • Юлия, попробуйте воспользоваться ключом class:
      [pagelist class="page-list-cols-2"]

      согласно документации, доступны варианты page-list-cols-2, page-list-cols-3, page-list-cols-4, page-list-cols-5

      • У меня сейчас стоит такой код: [pagelist_ext "page-list-cols-2" show_content="0" show_image="1" image_width="290" show_title="1" show_meta_key= "gc_price"] для вывода миниатюры, названия и цены. Выводится в один столбик. Пробовала код, который Вы посоветовали, не работает, к сожалению. Буду признательна за подсказку )

        • Попробуйте указазать cols-2 таким образом:
          [pagelist_ext class="page-list-cols-2"…]

          Авторы плагина пишут, что это экспериментальная возможность, которая работает не во всех браузерах. Также можно попробовать «подкрутить» стили CSS вручную: ссылка от авторов и пример.

  7. Не могу разобраться — как сделать в этом плагине вывод страниц по определенной категории и метке. Помогите плиз!

    • Евгений, следует различать страницы и записи. Записи (post) — это публикации, имеющие категорию и метки. С ними данный плагин не имеет ничего общего. Страницы (page) — это записи, у которых есть только иерархическая структура, например странички «О нас», «Услуги» и т д.
      Wordpress по умолчанию не позволяет присваивать им метки или категории, поэтому для упорядочивания в меню используют этот плагин.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *