«
»
WordPressВсе для functions.phpВсе для разработки шаблонов

WordPress – Полезные рецепты вывода страниц

WordPress – Полезные рецепты вывода страниц

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

В WordPress существует много удивительных способов отображения страниц. WP предоставляет два разных тега шаблона для отображения списков страниц вашего сайта. Первый, наиболее часто используемый тег wp_list_pages(), и второй, менее известный тег wp_page_menu(). Сначала мы рассмотрим очень гибкий wp_list_pages() тег шаблона, а затем перейдем к новому wp_page_menu() тегу.

Тег wp_list_pages ()

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

<?php wp_list_pages(); ?>

А затем вы можете настроить отображения по-разному, используя тонкое меню аргументов, приведенное на его справочной странице Codex . Давайте рассмотрим некоторые интересные вещи, которые вы можете сделать wp_list_pages().

Экстремальная мощность сортировки

Вы можете сортировать свои страницы по дескриптору любого поля в wp_post таблице базы данных WordPress. По умолчанию вы получаете по алфавиту в названии страницы, но есть и другие отличные варианты. Вот некоторые рецепты из них:

<?php wp_list_pages('sort_column=menu_order'); <?php wp_list_pages('sort_column=post_date'); <?php wp_list_pages('sort_column=post_name'); <?php wp_list_pages('sort_column=id&sort_order=asc'); <?php wp_list_pages('sort_column=id&sort_order=desc');

Это первое, что немного малоприятно, но может оказаться очень полезным для отображения ваших страниц в любом порядке. Чтобы настроить порядок страниц для отображения через menu_order параметр, назначаете каждой странице числовое значение на экране «Write / Edit Admin». Вы можете увидеть полный список доступных дескрипторов здесь .

Включить и исключить все

WordPress позволяет легко включать и исключать любые страницы для создания идеального меню страниц. По умолчанию при использовании wp_list_pages отображаются все страницы, но это легко настраивается с помощью трех полезных аргументов:

<?php wp_list_pages('exclude=1,2,3'); <?php wp_list_pages('include=1,2,3'); <?php wp_list_pages('exclude_tree=1,2,3');

Этот exclude_tree параметр является новым начиная с WordPress версии 2.7. Это делает очень простой ветвь страниц (родительскую страницу и все последующие страницы) из ваших списков страниц.

Управление глубиной страниц

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

<?php wp_list_pages('depth=0'); <?php wp_list_pages('depth=-1'); <?php wp_list_pages('depth=1'); <?php wp_list_pages('depth=2'); <?php wp_list_pages('depth=n'); <?php wp_list_pages('child_of=0'); <?php wp_list_pages('child_of=3');

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

Использовать с пользовательскими полями

Вот очень мощный способ настройки меню страниц с использованием значений настраиваемого поля. Используя meta_keyи meta_value параметры, вы можете сообщить WordPress, чтобы отображать только те страницы, которые содержат определенные пары ключ / значение для настраиваемого поля. Вот некоторые примеры:

<?php wp_list_pages('meta_key=menu&meta_value=page'); <?php wp_list_pages('meta_key=icon&meta_value=true');

Этот параметр также дает вам гибкость в изменении списков страниц без необходимости касаться какого-либо исходного кода.

Еще больше функциональности

WordPress недавно выпустил несколько новых трюков для wp_list_pages() тега. А именно, теперь у нас есть возможность обернуть якорный текст наших списков страниц любым HTML или текстом. Другие новые функции включают количество отображаемых страниц, а также количество страниц для передачи при отображении списков страниц. Давайте посмотрим:

<?php wp_list_pages('link_before=<span>&link_after=</span>'); <?php wp_list_pages('number=7'); <?php wp_list_pages('offset=7');

Полный рецепт копирования / вставки для wp_list_pages ()

Есть еще несколько полезных параметров для wp_list_pages() тега, но вместо объяснения каждого из них я буду ссылаться на Codex для всех скучных деталей. Итак, прежде чем копаться в сочных материалах, вот рецепт «супер-вкусный», снабженный всеми возможными параметрами, специально разработанными для легкой настройки:

<?php wp_list_pages('sort_column=post_title&sort_order=asc&exclude=0&exclude_tree=0&include=0&depth=0&child_of=0&show_date=&date_format=&title_li=&echo=1&meta_key=menu&meta_value=page&link_before=<span>&link_after=</span>&authors=0&number=0&offset=0');

Хорошо, достаточно оснований, давайте рассмотрим некоторые действительно вкусные рецепты для списка страниц.

Список всех подстраниц текущей страницы

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

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

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

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

<?php if($post->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) { ?> <ul> <?php echo $children; ?> </ul> <?php } ?>

И вы можете сделать еще лучше. С помощью следующего метода ваши списки страниц будут отображаться следующим образом:

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

    <?php $output = wp_list_pages('echo=0&depth=1&title_li=<h2>Top Level Pages</h2>' ); 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=<h2>Child Pages</h2>'); } } echo $output; ?>

Все это замечательно, но также полезно знать, как создать разметку, сгенерированную wp_list_pages() тегом шаблона. Давайте посмотрим на следующее.

Укладка wp_list_pages() разметки

Вот разметка по умолчанию, сгенерированная wp_list_pages() тегом шаблона (предполагая в общей сложности пять страниц с текущей страницей с идентификатором «1»):

<li class="pagenav">Pages <ul> <li class="page-item-1 page_item current_page_item">Page ID 1</li> <li class="page-item-2 page_item">Page ID 2</li> <li class="page-item-3 page_item">Page ID 3</li> <li class="page-item-4 page_item">Page ID 4</li> <li class="page-item-5 page_item">Page ID 5</li> </ul> </li>

Вы можете разделить внешний

Связанные записи
ElementorWordPressПлагиныПолезные сайты

Elementor - 10 потрясающих мест для поиска бесплатных или премиальных шаблонов

MailChimpWordPressПлагины

5 лучших плагинов WordPress для Mailchimp (большинство из них бесплатны)

WoocommerceWordPressПлагины

Дропшиппинг: Как импортировать продукты AliExpress в WooCommerce при помощи плагина DropshipMe

WoocommerceWordPressПлагины

8 лучших плагинов для WooCommerce Dropshipping для AliExpress и не только (Или дропшиппинга на WordPress)