Управление выводом страниц в WordPress с помощью плагина. Page-list управление выводом дочерних страниц Page list плагин как настроить

Всем привет дорогие друзья! С вами в открытом режиме говорит и рассказывает и показывает на практике Макс Метелев.

И сегодня на закуску вам с утра порция полезного материала следующего содержания – мы с вами научимся выводить список страниц wordpress с картинками. Урок очень простой и интересный. Поехали.

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

Помимо основного способа вывода страниц wordpress с превьюшками мы покажем как вывести дочерние страницы и родительские.

Будет выглядеть это примерно так:

Первое, что вам нужно сделать это установить и активировать плагин Page-list. Он работает прямо «из коробки», потому в настройки в мы лезть не будем, так как их там нет.

Данный плагин поставляется со списком шорткодов с обширным списком параметров. Начнем с того, что сделаем простой вывод всех страниц сайта, т.е сделаем обычную карту

Создайте новую страницу в WordPress и добавьте в нее следующий шорткод [ pagelist ]

Этот шорткод покажет простой вложенный всех ваших страниц.

Вы можете использовать или его, или ряд других текстовых виджетов. Если они у вас не работают на сайте, тогда вам необходимо их подключить через добавление строчки в файле functions . php вашей темы или в конкретный участок плагина.

add_filter("widget_text","do_shortcode");

add_filter ("widget_text" , "do_shortcode" ) ;

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

Все что вам нужно это добавить нужный шорткод [ subpages ] на страницу родителя.

Также вы можете использовать короткие коды для вставки в текстовые виджеты.

Добавление родственных страниц на Вордпресс

Родственные страницы это, по сути, дочерние, которые имеют одного общего родителя. Вывод таких страниц wordpress осуществляется с помощью следующей конструкции [ siblings ]

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

Плагин Page-list идет в комплекте со следующим кодом [ page_ext ] . Этот код для вставки дает расширенные возможности для отображения списков страниц в WordPress.

Вы можете использовать его, чтобы отобразить структуру страниц с характерным изображением статьи и небольшим отрывком текста из нее. Как здесь:

[ pagelist_ext show_image = "1" image_width = "50" ]

Вы можете самостоятельно задавать размер изображения, используя параметр image_width

Также вы можете контролировать длину отрывка текста используя параметр limit_content

Например можете задать 100 знаков, пример [ pagelist_ext limit_content = "100" ]

Если вы не хотите отображать текст возле миниатюры к статье, тогда используйте следующий короткий код для страницы [ pagelist_ext show_content = "0" ]

Спасибо за внимание и удачного изучения!

Страницы WordPress они же pages — это стационарная информация, размещенная на сайте, которая не связана ни с датами выхода записей, ни с главной страницей сайта, ни с рубриками сайта.

Структура страниц WordPress

Страницы WordPress не привязываются к и страницам не задаются метки. Однако, страницы, как и рубрики, могут выстраиваться в иерархию, типа Родительская страница→Страница .

URL дочерней страницы будет такой:

http://example.ru/Родительская страница/Страница.

Редактирование страницы

Редактирование страницы осуществляется на вкладке Страницы→Добавить новую или Страницы→Все страницы→Изменить . Редактирование страницы аналогично, редактированию записей. Страница имеет заголовок, текст и метаданные.

Иерархия страниц задается в поле «Атрибуты». В списке страниц, также можно их редактировать: изменять (1), удалять(2), менять свойства(3).

Страницы и меню

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

Примером, страницы в меню может служить карта — сайта. Все плагины для создания для посетителя, предполагают создание отдельной страницы с шорткодом карты-сайта.

Чтобы включить страницу в меню откройте вкладку Внешний вид→Меню . Выберете или создайте новое меню и в левой части выберете страницы, которые хотите добавить в меню и добавьте их. После сохранения ссылки на страницы отобразятся на сайте в этом меню.

Как показать страницы на сайте

Чтобы показать страницы на сайте можно воспользоваться виджетом (Внешний вид→Виджеты ): Виджет «Страницы». Этот виджет покажет список всех страниц вашего сайта.

Страницы WordPress в коде и файлах шаблона

Шаблон страницы рабочего шаблона это файл page.php. Чтобы его отредактировать нужно, открыть редактор сайта, вкладка Внешний вид→Редактор , и найти там файл page.php.

Если у вас установлен , то можно отдельно , вкладка Внешний вид→Редактор CSS . Эти изменения не исчезнут при обновлении шаблона.

Многие современные шаблоны WordPress, поддерживают отдельное изменение шаблона страниц, и эти настройки есть на вкладках создания страниц.

Вывод

Страница это уникальный тип информации на сайте WordPress, которая не «подвластна» времени и основной структуре сайта.

Игорь Серов специально для сайта « »

Выводит список постоянных страниц в виде ссылок.

Обычно используется в файлах header.php (шапка сайта) или sidebar.php (боковая панель) для создания меню.

Смотрите также очень похожую функцию wp_page_menu() ;

Альтернативой для создания меню является функция wp_nav_menu() , добавлена с версии 3.0. Мануал .

✈ 1 раз = 0.014449с = тормоз | 50000 раз = 213.16с = тормоз | PHP 7.1.2, WP 4.7.3

Хуки из функции

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

Шаблон использования

$args = array("depth" => 0, "show_date" => "", "date_format" => get_option("date_format"), "child_of" => 0, "exclude" => "", "exclude_tree" => "", "include" => "", "title_li" => __("Pages"), "echo" => 1, "authors" => "", "sort_column" => "menu_order, post_title", "sort_order" => "ASC", "link_before" => "", "link_after" => "", "meta_key" => "", "meta_value" => "", "number" => "", "offset" => "", "walker" => "", "post_type" => "page", // из функции get_pages()); wp_list_pages($args);

Кроме параметров ниже, функция может принимать все те же параметры что и get_pages() , потому что она работает на её основе.

Depth(число)

Этот параметр контролирует уровень вложенности дочерних страниц, которые будут включены в список. По умолчанию 0 (показать все дочерние страницы, включая двойную и более вложенность).

  • 0 (по умолчанию) Включать в список все уровни вложенных страницы и показывать их в древовидном виде.
  • -1 Включить в список все уровни вложенных страниц, но не показывать вложенность (древовидное отображение списка отключается, список будет показан как общий).
  • 1 Показать только первые вложенные страницы, т.е. дочерние страницы первого уровня.
  • 2, 3 и т.д. Включить в список дочерние страницы 2, 3 и т.д. уровня…

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

Show_date(строка)

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

  • "" - не показывать даты (по умолчанию).
  • modified - показывать дату изменения.
  • created - показывать дату создания страницы.

По умолчанию: null

Date_format(строка) Контролирует в каком виде будет показана дата, если включен параметр show_date , например, d/m/Y выведет: 10/11/2011
По умолчанию: настройки даты в WordPress child_of(число) Показывать только дочерние страницы отдельной страницы, указанной в этом параметре. Указывать нужно ID страницы, подстраницы которой мы хотим вывести. По умолчанию 0 - показывать все страницы.
По умолчанию: 0 exclude(строка) В этом параметре указываем через запятую ID тех страниц, которые мы не хотим, чтобы попали в список, например: exclude=3,7,31 .
По умолчанию: "" exclude_tree(строка) Укажите через запятую ID родительский страниц, которые вы хотите исключить из списка. Так же будут исключены все вложенные (дочерние страницы) указанных ID. Т.е. этот параметр исключает из списка все дерево страниц.
Добавлен в версии 2.7.
По умолчанию: "" include(строка/массив)

Показать в списке только указанные страницы. ID можно указать через запятую или пробел в виде строки: include=45 63 78 94 128 140 .

Этот параметр отменяет параметры относящиеся к формированию списка, так как он создает список только из тех страниц которые указаны. Отменяются параметры: exclude , child_of , depth , meta_key , meta_value , authors .
По умолчанию: ""

Title_li(строка) Заголовок списка. По умолчанию: __("Pages") __("") нужно для локализации. Если обнулить этот параметр (""), то заголовок списка не будет показываться, так же будут удалены HTML теги обрамляющие список ().
По умолчанию: __("Pages") echo(логический) Выводить результат на экран (true) или возвращать для обработки (false).
По умолчанию: true authors(строка) Показать страницы принадлежащие только указанным в этом параметре авторам. Указывать нужно ID авторов, через запятую.
По умолчанию: "" sort_column(строка)

Сортировать список по указанным полям. По умолчанию список сортируется по заголовкам (post_title), в алфавитном порядке. Можно указывать несколько параметров через запятую, в соответствии с которыми потом будет отсортирован список.

  • post_title - сортировать по заголовку (в алфавитном порядке);
  • menu_order - сортировать по порядку, который указывается на админ-панели на странице редактирования "постоянной страницы";
  • post_date - сортировать по дате создания "постоянной страницы";
  • post_modified - сортировать по дате изменения страницы;
  • ID - сортировать по идентификатору записи в Базе Данных (по ID);
  • post_author - сортировать по ID авторов;
  • post_name - сортировать в алфавитом порядке по альтернативному имени поста (обычно транслитерация заголовка).

По умолчанию: "menu_order, post_title"

Sort_order(строка) Направление сортировки: "ASC" - по порядку, "DESC" - в обратном порядке.
По умолчанию: "ASC" link_before(строка) Укажите здесь текст или HTML код, который будет вставлен перед текстом ссылки (внутри тега ). Добавлен в версии 2.7.
По умолчанию: "" link_after(строка) Укажите здесь текст или HTML код, который будет вставлен после текста ссылки (внутри тега
). Добавлен в версии 2.7.
По умолчанию: "" meta_key(строка) Выведет страницы, имеющие только указанные произвольные поля (работает только вместе с параметром meta_value).
По умолчанию: "" meta_value(строка) Выведет страницы, имеющие только указанные значения произвольных полей (ключ произвольного поля указывать обязательно в параметре meta_key).
По умолчанию: "" number(число) Ограничение количества ссылок в списке (SQL LIMIT). В некоторых случаях может не работать.
По умолчанию: нет offset(число) Верхний отступ списка. Например, если указать 5, то первые 5 ссылок, которые должны были бы быть показаны не будет показаны в списке.
Добавлен в версии 2.8.
По умолчанию: нет item_spacing(строка) Оставлять или нет переносы строк в HTML коде меню. Может быть: preserve или discard . C WP 4.7.
По умолчанию: "preserve" walker(строка) php Класс, который обрабатывает построение списка.
По умолчанию: ""

Примеры

#1 Удаление или изменение заголовка списка

#1.1 Удалим заголовок списка, отменив параметр title_li .

Имейте ввиду, что теги ul так же будет удалены и их нужно указывать отдельно:

#1.2. Изменим заголовок

Изменим заголовок на "Поэты", обвернем его в HTML тег

и выведем в списке только постоянные страницы с ID 9, 5 и 23:

    " . __("Poetry") . "

"); ?>

#2 Сортировка списка страниц

#2.1 Отсортируем список в соответствии с порядковыми номерами, указанными на странице редактирования "постоянных страниц":

#2.2 Используя этот код, мы уберем заголовок "Страницы" у списка:

#2.3 Теперь выведем список отсортированный по дате создания "постоянной страницы" и покажем дату рядом с каждой ссылкой:

#3 Исключение и включение страниц

#3.1 Используя параметр exclude исключим страницы с ID 17,38:

#3.2 Используя параметр include , создадим список только из страниц в ID 35, 7, 26 и 13:

    " . __("Pages") . ""); ?>

#4 Вывод дочерних страниц

#4.1 Выведем список дочерних страниц

Используя следующий пример, можно вывести в сайдбаре (или где-нибудь еще) список дочерних страниц (подстраниц), постоянной страницы на который вы сейчас находитесь. Для этого воспользуемся параметром child_of и проверкой существуют ли вообще дочерние страницы для текущей (попробуем получить дочерние страницы в переменную $children, если получится, выведем список):

ID."&echo=0"); if ($children) { ?>

#4.2. Статичный список дочерних страниц

post_parent) $children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0"); else $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0"); if ($children) { ?>

Этот пример можно использовать в боковой панели (сайдбаре), однако нужно понимать, что он проверяет сначала наличие родительской страницы у текущей, если она существует, то выводится список одноуровневых страниц, если родительской страницы нет, то выводится список дочерних страниц. Таким образом, мы будет иметь на всех страницах замкнутый список для страниц верхнего уровня.

#4.3. Альтернативный вариант предыдущего кода. Этот пример также можно использовать в сайдбаре, он будет выводить:

    когда вы находитесь на главной странице, будут показаны все "постоянные страницы" верхнего уровня;

    когда вы находитесь на "постоянной странице" верхнего уровня, у которой нет дочерних страниц, будут показаны все те же "постоянные страницы" верхнего уровня;

    когда вы находитесь на "постоянной странице" верхнего уровня, у которой есть дочерние страницы, будут показаны эти дочерние страницы и их дочерние страницы;

  • когда вы находитесь на дочерней странице "постоянной страницы" верхнего уровня (на странице второго уровня), будут показаны дочерние страницы "постоянной страницы" верхнего уровня (т.е. дочерние страницы родительской).
Страницы верхнего уровня"); if (is_page()) { $page = $post->ID; if ($post->post_parent) { $page = $post->post_parent; } $children=wp_list_pages("echo=0&child_of=" . $page . "&title_li="); if ($children) { $output = wp_list_pages ("echo=0&child_of=" . $page . "&title_li=

Child Pages

"); } } echo $output; ?>

#4.4 Список страниц, только если он есть

Список дочерних страниц, который будет показан, только если у "постоянной страницы" есть дочерние страницы. Дочерние страницы будут показаны как на родительской "постоянной странице" так и на самих дочерних страницах. Отличием от предыдущего примера, является наличие названия родительской "постоянной страницы" в заголовке списка:

post_parent) { $children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0"); $titlenamer = get_the_title($post->post_parent); } else { $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0"); $titlenamer = get_the_title($post->ID); } if ($children) { ?>

#4.5 Как получить все дочерние страницы, на "постоянных страницах" любого уровня вложенности:

post_parent){ // получим дочерние страницы, для "постоянной страницы" верхнего уровня $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0"); }else{ // получим дочерние страницы, если мы находимся на дочерней странице первого уровня. //$children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0"); if($post->ancestors) { // теперь получим ID самой первой страницы (старшой) // wp собирает ID в обратном порядке, поэтому "первая" страницы будет последней $ancestors = end($post->ancestors); $children = wp_list_pages("title_li=&child_of=".$ancestors."&echo=0"); // все, теперь у нас всегда будет список из всех дочерних страниц, // на каком уровне вложенности мы бы не находились. } } if ($children) { ?>

#4.6 Дерево дочерних страниц указанной "постоянной страницы"

Так как нет возможности указать wp_list_pages выводить дерево (все уровни вложенности) страниц определенной страницы (например, страницы с ID 93), то для такого трюка мы можем воспользоваться функцией get_pages() :

ID; $args=array("title_li" => "Дерево родительской страницы: " . $parent, "include" => $parent . "," . implode(",", $pageids)); wp_list_pages($args); } ?>

#5 Маркировка и Стилизация списков постоянных страниц

По умолчанию, wp_list_pages() создает список такой конструкции:

Если мы уберем заголовок, поставив пустой параметр title_li= , то вид станет таким:

...

По-другому можно написать так:

Все теги li создаваемые функцией wp_list_pages() помечены CSS классом page_item . Когда в списке появляется страница на который вы находитесь, к li элементу списка добавляется еще класс current_page_parent .

Таким образом, список можно "раскрашивать" следующими CSS селекторами:

Pagenav { … } /* главный класс ul тега, который оборачивает весь список */ .page-item-2 { … } /* элемент относящийся к странице с ID 2 */ .page_item { … } /* любой элемент списка */ .current_page_item { … } /* текущая страница */ .current_page_parent { … } /* родительская страница текущей */ .current_page_ancestor { … } /* любая страница как либо связанная с текущей (родитель или дочь.) */

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

Pagenav ul ul, .pagenav .current_page_item ul ul, .pagenav .current_page_ancestor ul ul, .pagenav .current_page_ancestor .current_page_item ul ul, .pagenav .current_page_ancestor .current_page_ancestor ul ul { display: none; } .pagenav .current_page_item ul, .pagenav .current_page_ancestor ul, .pagenav .current_page_ancestor .current_page_item ul, .pagenav .current_page_ancestor .current_page_ancestor ul, .pagenav .current_page_ancestor .current_page_ancestor .current_page_item ul, .pagenav .current_page_ancestor .current_page_ancestor .current_page_ancestor ul { display: block; }

#6. Список родственных или дочерних страниц к текущей

post_parent){ // собираем родственные страницы $relations = get_post_ancestors($post->ID); // получаем дочерние страницы (если есть) $result = $wpdb->get_results("SELECT ID FROM wp_posts WHERE post_parent = $post->ID AND post_type="page""); // если дочерние страницы этой страницы получилось // получить объединяем их с родственными if ($result){ foreach($result as $pageID){ array_push($relations, $pageID->ID); } } // добавляем текущую страницу к родственным array_push($relations, $post->ID); // делаем список ID разделенный запятыми из родственных, дочерних и текущей $relations_string = implode(",",$relations); // получаем список с помощью параметра include $sidelinks = wp_list_pages("title_li=&echo=0&include=".$relations_string); } // если это не дочерняя страница else { // показываем только дочерние страницы один уровень $sidelinks = wp_list_pages("title_li=&echo=0&depth=1&child_of=". $post->ID); } if($sidelinks){ ?>

    тегах echo $sidelinks; ?>

#7 Использование произвольного типа записей (отличного от page)

Если на сайте создан произвольный тип записей с древовидной структурой, то wp_list_pages() можно использовать для вывода и таких записей.

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

Тип записи указывается в параметре post_type:

Wp_list_pages(array("post_type"=>"portfolio", "title_li"=> __("Portfolio")));

Заметки

  • С версии 2.7 добавлены параметры: link_before, link_after и exclude_tree.
  • С версии 2.8 добавлены параметры: number и offset.

Хотите получить действительно живых подписчиков на канал в Телеграме, но не знаете где это сделать? Переходите по ссылке и покупайте необходимый ресурс по невероятно дешевым ценам. Также Вам будут доступны оптовые скидки для более быстрого и эффективного продвижения канала.

Код wp list pages : wp-includes/post-template.php WP 5.2.1

0, "show_date" => "", "date_format" => get_option("date_format"), "child_of" => 0, "exclude" => "", "title_li" => __("Pages"), "echo" => 1, "authors" => "", "sort_column" => "menu_order, post_title", "link_before" => "", "link_after" => "", "item_spacing" => "preserve", "walker" => "",); $r = wp_parse_args($args, $defaults); if (! in_array($r["item_spacing"], array("preserve", "discard"), true)) { // invalid value, fall back to default. $r["item_spacing"] = $defaults["item_spacing"]; } $output = ""; $current_page = 0; // sanitize, mostly to keep spaces out $r["exclude"] = preg_replace("/[^0-9,]/", "", $r["exclude"]); // Allow plugins to filter an array of excluded pages (but don"t put a nullstring into the array) $exclude_array = ($r["exclude"]) ? explode(",", $r["exclude"]) : array(); /** * Filters the array of pages to exclude from the pages list. * * @since 2.1.0 * * @param array $exclude_array An array of page IDs to exclude. */ $r["exclude"] = implode(",", apply_filters("wp_list_pages_excludes", $exclude_array)); // Query pages. $r["hierarchical"] = 0; $pages = get_pages($r); if (! empty($pages)) { if ($r["title_li"]) { $output .= ""; } } /** * Filters the HTML output of the pages to list. * * @since 1.5.1 * @since 4.4.0 `$pages` added as arguments. * * @see wp_list_pages() * * @param string $output HTML output of the pages list. * @param array $r An array of page-listing arguments. * @param array $pages List of WP_Post objects returned by `get_pages()` */ $html = apply_filters("wp_list_pages", $output, $r, $pages); if ($r["echo"]) { echo $html; } else { return $html; } }

Большинство бизнес-сайтов чаще всего используют страницы для размещения своего контента. В виду того, что страницы отличаются от записей, вам могут понадобиться различные способы их отображения. В этой статье мы покажем вам как легко добавить список страниц с миниатюрами в WordPress. Также мы продемонстрируем вам способ вывода дочерних и одноуровневых страниц.

Первым делом вам необходимо установить и активировать плагин Page-list . Он работает «из коробки»» не нуждается в дополнительной настройке.

Page-list располагает шорткодами с огромным количеством доступных параметров. Давайте начнем с добавления простого списка всех страниц в виде карты сайта.

Просто создайте новую страницу в WordPress и добавьте в нее шорткод .

Этот шорткод отобразит простой вложенный список всех ваших страниц.

Вы можете использовать этот или любой другой шорткод в текстовых виджетах WordPress. Если шорткоды не срабатывают в виджетах на вашем сайте, то необходимо активировать их поддержку. Добавьте следующую строку в файл файл functions.php вашей темы или в :

Add_filter("widget_text","do_shortcode");

Выводим дочерние страницы для родительской в WordPress

Ранее в наших статья мы показывали вам различные способы вывода дочерних страниц на родительской странице в WordPress. Page-list намного упрощает отображение дочерних страниц.

Все, что вам нужно сделать, это добавить шорткод на родительскую страницу.

Также вы можете использовать шорткод в текстовом виджете.

Выводим одноуровневые страниц на страницах WordPress

Одноуровневые страницы — это дочерние страницы, у которых одна и та же родительская страницы. Вы можете вывести одноуровневые страницы с помощью шорткода на странице или внутри виджета.

Выводим список страниц с миниатюрой и цитатой

В плагине Page-list есть еще один шорткод — . Этот шорткод предоставляет расширенные возможности вывода списка ваших страниц в WordPress.

Вы можете использовать его для вывода списка страниц с миниатюрой и цитатой. Например, вот так:

Также можно настроить размер изображения путем использования параметра image_width .

Существует возможность контролировать длину цитаты с помощью параметра limit_content внутри шорткода.

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

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

Мы надеемся, что эта статья помогла вам легко вывести список страниц с миниатюрами в WordPress.

По всем вопросам и отзывам просьба писать в комментарии ниже.

Плагин Page-list применяется для вывода дочерних страниц. Не смотря на то что строить сайт на страницах не совсем удобно, особенно при большом количестве страниц (что связано с отсутствием деления по таксономиям и трудностям сортировки), однако такая возможность есть и если припечет, то реализовать такой проект вполне реально.

Плагин скачало/установило более 40К, а последнее обновление было в июле этого года.

Для чего используется плагин Page-list?

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

Настройка формата вывода осуществляется через css.

Особенности установки Page-list

Плагин работает сразу после активации, настрое его обнаружено не было.

Недостатки Page-list

Не нашел параметра который бы позволял вывести для текущей страницы только первый уровень вложенности. Такая возможность есть только при принудительном указании ID страницы. Решение. Задать текущую страницу параметром: parent=»this»

Пример шоткода с выводом заданного размера миниатюры

Вывод

Инструмент рабочий, конфликтов не замечено, удобно.

Берем в репозитории WordPress Page-list ссылка на Page-list
Документация проекта Page-list Page-list , на иноземной мове
Аналогичный инструмент для постов