MaxBar38 08.07.2023 04:50

Как создать кастомный шорткод в WordPress?

Здравствуйте!

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


function custom_shortcode($atts) {
    $args = array(
        'post_type' => 'post',
        'posts_per_page' => 5,
        'category_name' => 'название_категории'
    );

    $query = new WP_Query($args);

    if ($query->have_posts()) {
        $output = '';
    } else {
        $output = 'Нет доступных записей.';
    }

    wp_reset_postdata();

    return $output;
}
add_shortcode('custom', 'custom_shortcode');

Мне нужно, чтобы данный шорткод выводил список последних 5 записей из категории с названием "название_категории". Я создал основу функции, но не уверен, как правильно настроить параметры запроса и получить необходимый результат. Буду благодарен за помощь и объяснение каждой строки кода.

Спасибо!

Ответы:

Zoya27Fun 08.07.2023 05:12
Перед использованием шорткода, убедитесь, что вы правильно указали название категории в параметрах запроса, чтобы получить нужные записи. Также не забудьте включить функцию wp_reset_postdata() после использования WP_Query для сброса глобальных переменных.
Zoya27Fun 08.07.2023 05:13

Создание кастомного шорткода в WordPress довольно простое задание. Код, который ты предоставил, вполне подходит для твоего запроса. Однако, чтобы он работал должным образом, нужно внести некоторые изменения.


function custom_shortcode($atts) {
    $args = array(
        'post_type' => 'post',
        'posts_per_page' => 5,
        'category_name' => 'название_категории'
    );

    $query = new WP_Query($args);

    if ($query->have_posts()) {
        $output = '<ul>';
        while ($query->have_posts()) {
            $query->the_post();
            $output .= '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>';
        }
        $output .= '</ul>';
    } else {
        $output = 'Нет доступных записей.';
    }

    wp_reset_postdata();

    return $output;
}
add_shortcode('custom', 'custom_shortcode');

Данный код задает параметры запроса для получения 5 последних записей из определенной категории. Вместо "название_категории" нужно указать реальное название категории, из которой хочешь получить записи.

Функция custom_shortcode принимает аргументы, однако в данном случае они не используются. Массив $args содержит параметры запроса WordPress, такие как тип поста ('post'), количество записей ('posts_per_page') и название категории ('category_name').

Затем мы создаем новый объект WP_Query с указанными параметрами запроса. Если запрос возвращает записи, мы начинаем формирование списка, добавляя каждую запись внутрь тега

    с помощью цикла while. Для каждой записи мы создаем элемент списка
  • с ссылкой на ее URL и ее заголовком.

    Если запрос не возвращает записей, выводится сообщение "Нет доступных записей."

    В конце функции мы вызываем wp_reset_postdata() для сброса параметров запроса WordPress.

    Наконец, мы добавляем шорткод с названием 'custom' и указываем функцию 'custom_shortcode' в качестве обработчика.

    Очень важно не забыть зарегистрировать этот код, поместив его в файл functions.php вашей темы или в плагин. После этого вы сможете использовать шорткод [custom] в любом месте вашего сайта для вывода списка последних 5 записей из определенной категории.

    Удачи!


Добавить ответ