get_posts() — позволяет получить массив из объектов постов, соответствующих заданным параметрам

Владислав Белецкий
Владислав Белецкий .
Категория:
Комментариев: 0

Функция возвращает массив, содержащий объекты постов (записей, страниц, вложений, произвольных типов постов или всё сразу), соответствующие заданным параметрам. Прежде всего хочу сказать — если вам нужно вывести посты, то рассмотрите использование 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()

Для начала самый простой пример — выведем ссылки на 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

Больше примеров смотрите здесь.

Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии