Мы изменили иерархию сайтов для нескольких наших клиентов 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

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

  1. Глобальная почтовая переменная: Функция начинается с объявления глобальной переменной. $postиспользуется для доступа к информации о текущей публикации или странице в WordPress.
  2. Атрибуты шорткода: shortcode_atts Функция устанавливает значения по умолчанию для атрибутов шорткода. Пользователи могут отменить их, введя короткий код. Атрибуты включают в себя:
    • ifempty: сообщение, отображаемое при отсутствии дочерних страниц.
    • order: Порядок дочерних страниц (ASC или DESC).
    • orderby: критерии упорядочения дочерних страниц (например, публикация_дата).
    • ulclass: класс CSS <ul> элемент.
    • liclass: класс CSS <li> элементы.
    • aclass: класс CSS <a> (якорные) элементы.
    • displayimage: или показать избранное изображение дочерних страниц.
    • align: Выравнивание предлагаемого изображения.
  3. Просите аргументы: функция устанавливает WP_Query для получения всех дочерних страниц текущей страницы, упорядоченных по указанным атрибутам.
  4. Создание списка:
    • Если дочерние страницы найдены, функция создает неупорядоченный список HTML (<ul>), где каждая дочерняя страница представлена ​​элементом списка (<li>).
    • В каждом элементе списка функция проверяет, показывать ли избранное изображение на основе displayimage атрибут.
    • Функция также ссылается на каждую дочернюю страницу, используя <a> и, если имеется, добавляет фрагмент дочерней страницы.
  5. Выходное сообщение или сообщение по умолчанию: если дочерних страниц нет, функция выводит указанное сообщение ifempty атрибут.
  6. Сбросить данные сообщения: wp_reset_postdata функция сбрасывает запрос WordPress, предоставляя глобальный $post объект восстанавливается в соответствии с исходным основным запросом.
  7. Регистрация короткого кода: Окончательно, add_shortcode функциональные регистры listchildpages в качестве нового короткого кода, связав его с add_shortcode_listchildpages функция, делающая ее доступной для использования в сообщениях и страницах.

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

Плагин шорткода списка дочерних страниц

Наконец-то я начал добавлять код в плагин, чтобы упростить его установку и использование, и Плагин шорткода списка дочерних страниц одобрено WordPress сегодня! Пожалуйста, загрузите и установите его — оставьте нам отзыв, если он вам нравится!

Source

ЧИТАТЬ  Вебинар «Рекрутинг и корпоративная культура: как HR влияет на успех агентства» — 16 мая 2023 г. | Цифровые события