Содержание маркетинга

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

, который вы можете использовать в сообщениях или страницах 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. Или… вы можете скачать плагин, который я опубликовал.

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

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

Плагин WordPress для вывода дочерних страниц

Douglas Karr

Douglas Karr является директором по маркетингу OpenINSIGHTS и основатель компании Martech Zone. Дуглас помог десяткам успешных стартапов MarTech, помог в комплексной проверке приобретений и инвестиций Martech на сумму более 5 миллиардов долларов, а также продолжает помогать компаниям во внедрении и автоматизации их стратегий продаж и маркетинга. Дуглас — международно признанный эксперт по цифровой трансформации, а также эксперт в области MarTech и спикер. Дуглас также является автором опубликованного руководства для чайников и книги по бизнес-лидерству.

Статьи по теме

Вернуться к началу кнопки
Закрыть

Adblock обнаружен

Martech Zone может предоставить вам этот контент бесплатно, потому что мы монетизируем наш сайт за счет доходов от рекламы, партнерских ссылок и спонсорства. Мы были бы признательны, если бы вы удалили блокировщик рекламы при просмотре нашего сайта.