WordPress: как составить список дочерних страниц с помощью шорткода
Мы перестроили иерархию сайтов для нескольких наших WordPress клиентов, и одна из вещей, которые мы пытаемся сделать, — это эффективно организовать информацию. Для этого нам часто нужно создать главную страницу и включить меню, которое автоматически перечисляет страницы под ней. Список дочерних страниц или подстраниц.
К сожалению, в WordPress нет встроенной функции или возможности, позволяющей сделать это, поэтому мы разработали короткий код для добавления на сайт клиента. Вот как вы можете использовать шорткод со всеми его переменными, заполненными в записи или на странице WordPress:
[listchildpages ifempty="No child pages found" order="ASC" orderby="title" ulclass="custom-ul-class" liclass="custom-li-class" aclass="custom-a-class" displayimage="yes" align="aligncenter"]
Распределение использования:
ifempty="No child pages found"
: Этот текст будет отображаться, если дочерних страниц нет.order="ASC"
: сортирует список дочерних страниц в порядке возрастания.orderby="title"
: это упорядочивает дочерние страницы по их названию.ulclass="custom-ul-class"
: применяет класс CSS «custom-ul-class» к<ul>
элемент списка.liclass="custom-li-class"
: применяет класс CSS «custom-li-class» к каждому<li>
элемент в списке.aclass="custom-a-class"
: применяет класс CSS «custom-a-class» к каждому<a>
(ссылка) элемент в списке.displayimage="yes"
: включает в себя избранное изображение каждой дочерней страницы в списке.align="aligncenter"
: это выравнивает избранные изображения по центру.
Вставьте этот короткий код непосредственно в область содержимого записи или страницы WordPress, где вы хотите, чтобы отображался список дочерних страниц. Не забудьте настроить значения каждого атрибута в соответствии с дизайном и структурой вашего сайта WordPress.
Кроме того, если вы хотите короткий отрывок описывая каждую страницу, плагин включает выдержки на страницах, чтобы вы могли редактировать это содержимое в настройках страницы.
Список дочерних страниц шорткода
function add_shortcode_listchildpages($atts, $content = "") {
global $post;
$string = '';
$atts = shortcode_atts(array(
'ifempty' => '<p>No Records</p>',
'order' => 'DESC',
'orderby' => 'publish_date',
'ulclass' => '',
'liclass' => '',
'aclass' => '',
'displayimage' => 'no',
'align' => 'alignleft'
), $atts, 'listchildpages');
$args = array(
'post_type' => 'page',
'posts_per_page' => -1,
'post_parent' => $post->ID,
'orderby' => $atts['orderby'],
'order' => $atts['order']
);
$parent = new WP_Query($args);
if ($parent->have_posts()) {
$string .= $content.'<ul class="'.$atts['ulclass'].'">';
while ($parent->have_posts()) : $parent->the_post();
$string .= '<li class="'.$atts['liclass'].'">';
$true = array("y", "yes", "t", "true");
$showimage = strtolower($atts['displayimage']);
if (in_array($showimage, $true)) {
if (has_post_thumbnail($post->ID)) {
$image_attributes = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'thumbnail');
$string .= '<a class="'.$atts['aclass'].'" href="'.get_permalink().'" title="'.get_the_title().'">';
$string .= '<img src="'.$image_attributes[0].'" width="'.$image_attributes[1].'" height="'.$image_attributes[2].'" alt="'.get_the_title().'" class="'.$atts['align'].'" /></a>';
}
}
$string .= '<a class="'.$atts['aclass'].'" href="'.get_permalink().'" title="'.get_the_title().'">'.get_the_title().'</a>';
if (has_excerpt($post->ID)) {
$string .= ' - '.get_the_excerpt();
}
$string .= '</li>';
endwhile;
$string .= '</ul>';
} else {
$string = $atts['ifempty'];
}
wp_reset_postdata();
return $string;
}
add_shortcode('listchildpages', 'add_shortcode_listchildpages');
Функция add_shortcode_listchildpages
добавляет собственный шорткод
No Records
- Глобальная переменная сообщения: Функция начинается с объявления глобальной переменной.
$post
, который используется для доступа к информации о текущей публикации или странице в WordPress. - Атрибуты шорткода:
shortcode_atts
Функция устанавливает значения по умолчанию для атрибутов шорткода. Пользователи могут переопределить их при вставке шорткода. Атрибуты включают в себя:ifempty
: Сообщение, отображаемое при отсутствии дочерних страниц.order
: Порядок дочерних страниц (ASC или DESC).orderby
: Критерии упорядочивания дочерних страниц (например, публикация_даты).ulclass
: CSS-класс для<ul>
элемент.liclass
: CSS-класс для<li>
элементов.aclass
: CSS-класс для<a>
(якорные) элементы.displayimage
: отображать ли избранное изображение дочерних страниц.align
: выравнивание представленного изображения.
- Аргументы запроса: Функция устанавливает
WP_Query
для получения всех дочерних страниц текущей страницы, отсортированных по указанным атрибутам. - Создание списка:
- Если дочерние страницы найдены, функция создает неупорядоченный список HTML (
<ul>
), где каждая дочерняя страница представлена элементом списка (<li>
). - В каждом элементе списка функция проверяет, отображать ли избранное изображение на основе
displayimage
атрибутов. - Функция также создает ссылку на каждую дочернюю страницу, используя метод
<a>
и, если доступно, добавляет фрагмент дочерней страницы.
- Если дочерние страницы найдены, функция создает неупорядоченный список HTML (
- Выходное сообщение или сообщение по умолчанию: Если дочерних страниц нет, функция выводит сообщение, указанное в
ifempty
атрибутов. - Сбросить данные публикации:
wp_reset_postdata
функция сбрасывает запрос WordPress, гарантируя, что глобальный$post
объект восстанавливается в исходном сообщении основного запроса. - Регистрация короткого кода: Наконец,
add_shortcode
функциональные регистрыlistchildpages
в качестве нового короткого кода, связывая его сadd_shortcode_listchildpages
функцию, делая ее доступной для использования в сообщениях и страницах.
Эта функция полезна для динамического отображения подстраниц на родительской странице, улучшения навигации и организации на сайте WordPress. Я бы порекомендовал добавить его в собственный плагин, если вы хотите добавить его на свой сайт WordPress. Или… вы можете скачать плагин, который я опубликовал.
Плагин шорткода списка дочерних страниц
Наконец-то я решил вставить код в плагин, чтобы упростить установку и использование, и Плагин List Child Pages Shortcode был одобрен WordPress сегодня! Пожалуйста, скачайте и установите его – если он вам нравится, оставьте отзыв!