Как создать кастомный шорткод в 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 = '';
while ($query->have_posts()) {
$query->the_post();
$output .= '- ' . get_the_title() . '
';
}
$output .= '
';
} else {
$output = 'Нет доступных записей.';
}
wp_reset_postdata();
return $output;
}
add_shortcode('custom', 'custom_shortcode');
Мне нужно, чтобы данный шорткод выводил список последних 5 записей из категории с названием "название_категории". Я создал основу функции, но не уверен, как правильно настроить параметры запроса и получить необходимый результат. Буду благодарен за помощь и объяснение каждой строки кода.
Спасибо!
Ответы:
Создание кастомного шорткода в 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 записей из определенной категории.
Удачи!