Хотите показать последние записи в тексте статьи или другом месте сайта WordPress? Это можно сделать с помощью шорткода. Разберем как его создать и вставлять.
Зачем создавать шорткод?
В ВордПресс есть стандартный виджет Свежие записи. Но его можно использовать только для виджетных областей. Также в некоторых темах встроена функция вывода последних постов. Но проблема в том, что эти методы не работают, если нужно вывести внутри записей, страниц или пользовательских типов записей.
Выход – создать шорткод, который можно вызвать везде.
Как создать шорткод последних записей?
Все последующие действия предполагают редактирование functions.php — основного конфигурационного файла WordPress-темы. Если вы не знаете, как редактировать этот файл, то в этом случае поможет плагин ProFunctions.
Рекомендуем использовать дочерние темы, чтобы не потерять свои правки после обновления.
Добавьте следующий код в functions.php
вашей темы:
function wpschool_recent_posts_shortcode( $atts, $content = null ) { global $post; extract( shortcode_atts( array ( 'cat' => '', 'num' => '5', 'order' => 'DESC', 'orderby' => 'post_date', ), $atts )); $args = array( 'cat' => $cat, 'posts_per_page' => $num, 'order' => $order, 'orderby' => $orderby, ); $output = ''; $posts = get_posts( $args ); foreach( $posts as $post ) { setup_postdata( $post ); $output .= '<li><a href="'. get_the_permalink() .'">'. get_the_title() .'</a></li>'; } wp_reset_postdata(); return '<ul>'. $output .'</ul>'; } add_shortcode( 'recent_posts', 'wpschool_recent_posts_shortcode' );
Код будет работать в любой ВП-теме или плагине.
Чтобы добавить последние публикации в пост или страницу, вставьте в нужном месте шорткод:
[recent_posts num = "5" cat = "7"]
В итоге появится список из 5 записей из категории с ID=7
. Вы можете настроить атрибуты по своему желанию. Шорткод также принимает несколько других атрибутов:
[recent_posts num = "10" cat = "" order = "asc" orderby = "rand"]
Теперь список будет включать 10 записей из любой категории, упорядоченных случайным образом и отображаемых в порядке возрастания.
Нажмите, пожалуйста, на одну из кнопок, чтобы узнать понравилась статья или нет.
Доброго времени суток.
А как сделать тоже самое, только чтобы выводился не СПИСОК последних записей, а их МИНИАТЮРЫ (с заглавной картинкой статьи, заголовком…) с возможностью открыть эту статью кликнув по её миниатюре?
Спасибо.
Вставьте этот код в том месте, где у вас выводится LI в functions.php, после чего у вас будет выводится миниатюра с заголовком.
Здравствуйте!
Очень ценная статья и авторитетный ресурс.
А возможно, кроме миниатюр и заголовков статей, выводить и краткие анонсы с кнопкой “Читать далее”?
Как добавить вывод даты?
Разобрался сам, вот если кому нужно. Добавляем .get_the_date()
foreach( $posts as $post ) {
setup_postdata( $post );
$output .= '' .get_the_date() . get_the_title() .'';
}