Функция возвращает массив, содержащий объекты постов (записей, страниц, вложений, произвольных типов постов или всё сразу), соответствующие заданным параметрам. Прежде всего хочу сказать — если вам нужно вывести посты, то рассмотрите использование WP_Query для этих целей.
get_posts( $args ) |
Имеет следующие значения параметров по умолчанию:
$params = array( 'post_type' => 'post', // тип постов - записи 'numberposts' => 5, // получить 5 постов, можно также использовать posts_per_page 'orderby' => 'date', // сортировать по дате 'order' => 'DESC', // по убыванию (сначала - свежие посты) 'suppress_filters' => true // 'posts_*' и 'comment_feed_*' фильтры игнорируются ); |
Соответствия параметров get_posts() и WP_Query
Любой из параметров WP_Query прекрасно подойдет и для get_posts()
. Кроме того, функция имеет несколько эквивалентных параметров:
Параметр get_posts() | Его эквивалент в WP_Query |
---|---|
numberposts | posts_per_page |
category | cat |
include | post__in Также устанавливает значение posts_per_page равным количеству перечисленных постов. |
exclude | post__not_in |
То есть в принципе вы можете не использовать параметры из первой колонки таблицы вообще, но если вы увидите их где-то в коде, то уже точно будете знать, что они означают.
Примеры использования get_posts()
Для начала самый простой пример — выведем ссылки на 5 последних опубликованных постов на блоге. Для получения URL постов нам также потребуется функция get_permalink().
$recent_posts_array = get_posts(); // получаем массив постов foreach( $recent_posts_array as $recent_post_single ) : // для каждого поста из массива echo '<a href="' . get_permalink( $recent_post_single ) . '">' . $recent_post_single->post_title . '</a>'; // выводим ссылку endforeach; // конец цикла |
Аналогичный пример, но с использованием функция the_permalink() (для вывода урл) и the_title() (для вывода заголовков).
<?php $params = array( 'posts_per_page' => 5 // этот параметр не обязателен, так как get_posts() по умолчанию и так выводит 5 постов ); $recent_posts_array = get_posts( $params ); foreach( $recent_posts_array as $recent_post_single ) : setup_postdata( $recent_post_single ); // устанавливает $post (глобальная переменная - объект поста) ?><a href="<?php the_permalink() /* URL записи */ ?>"><?php the_title() /* выводим заголовок */ ?></a><?php endforeach; wp_reset_postdata(); // сбрасывает $post |
Больше примеров смотрите здесь.
Источник: misha.blog