Функция возвращает массив, содержащий объекты постов (записей, страниц, вложений, произвольных типов постов или всё сразу), соответствующие заданным параметрам. Прежде всего хочу сказать — если вам нужно вывести посты, то рассмотрите использование 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_*' фильтры игнорируются );
Любой из параметров WP_Query прекрасно подойдет и для get_posts()
. Кроме того, функция имеет несколько эквивалентных параметров:
Параметр get_posts() | Его эквивалент в WP_Query |
---|---|
numberposts | posts_per_page |
category | cat |
include | post__in Также устанавливает значение posts_per_page равным количеству перечисленных постов. |
exclude | post__not_in |
То есть в принципе вы можете не использовать параметры из первой колонки таблицы вообще, но если вы увидите их где-то в коде, то уже точно будете знать, что они означают.
Для начала самый простой пример — выведем ссылки на 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
Больше примеров смотрите здесь.
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.
Доброй ночи, Миша.
Можешь ли помочь разобраться с get_posts?
Использую его при изменении галереи.
Почему-то у первой записи срабатывает
это показывает id не того поста, в котором галерея, а последней созданной записи.
Тыщу раз перепроверила wp_reset_postdata(); Он везде стоит где global $post;
что-то я запуталась (((
Привет!
А можно ли использовать параметр фильтра
$attr['id']
для получения ID поста?ничего не выводит
Блин, тогда даже хз, это нужно ставить код и разбираться.. А какая задача у кода?
Он меняет стандартный вывод галереи. Вписаны классы фрейворка. На главной галереи из произвольного поля отображаются с крупной картинкой и несколькими миниатюрами под ней.
Вот здесь если открыть первую запись
отображается главной картинкой миниатюра 4-го товара, т.к. он опубликован последним.
Блин, тут надо ставить этот код и разбираться, сходу трудно сказать. В принципе можешь скинуть мне доступ по емайл - я гляну, как будет время.