WordPress как на ладони
wordpress jino

wp_get_recent_posts() WP 1.0.0

Получает последние записи (посты) сайта, включая черновики, запланированные и записи на модерации. Получит 10 последних записей.

В параметре post_type можно указать записи какого типа нужно получить, по умолчанию post - т.е. получаются посты сайта...

Функция является оберткой для get_posts(), отличия в том, что она получает 10, а не 5 записей и пытается получить записи всех возможных статусов, включая черновики, запланированные, личные и ожидающие модерации.

'numberposts' => 10,
'post_status' => 'draft, publish, future, pending, private',
Работает на основе: get_posts()

Хуков нет.

Возвращает

Массив. Список постов в виде ассоциативного массива из объектов записей. В индексах массива будет находится ID записи, а в значении объект WP_Post, т.е. сама запись (пост).

Использование

<?php wp_get_recent_posts( $args ) ?>

Шаблон использования

$args = array(
	'numberposts'      => 10,
	'offset'           => 0,
	'category'         => 0,
	'orderby'          => 'post_date',
	'order'            => 'DESC',
	'include'          => '',
	'exclude'          => '',
	'meta_key'         => '',
	'meta_value'       => '',
	'post_type'        => 'post',
	'post_status'      => 'draft, publish, future, pending, private',
	'suppress_filters' => true,
); 

$result = wp_get_recent_posts( $args );
foreach( $result as $post ){
	setup_postdata( $post );
	the_title(); // вывод
}
wp_reset_postdata();
$args(число)

Массив аргументов по которым нужно получить последние посты. Какие аргументы можно использовать смотрите в описании query_posts().

Аргументы стали возможны только с версии 3.1, до этого в этот параметр передавалось число — сколько последних постов выводить.

По умолчанию: предустановки

Примеры

1. Последние записи

Выведем список из 6-ти ссылок на последние уже опубликованные записи из категории 5:

<?php 
$args = array(
	'numberposts' => 6,
	'category' => 5,
	'post_status' => 'publish',
); 

$result = wp_get_recent_posts($args);

foreach( $result as $p ){ 
?>
	— <a href="<?php echo get_permalink($p['ID']) ?>"><?php echo $p['post_title'] ?></a><br />    
<?php 
} 
?>

2. Для версий ниже 3.1

Работает для версий ниже 3.1. Это пример, показывает как использовать функцию wp_get_recent_posts, для того чтобы вывести список из 7 последних постов на экран. Список будет в виде ссылок на посты.

<ul>
  <li>
	<h2>Posts Recentes</h2>
	<ul>
	<?php
	  $recent_posts = wp_get_recent_posts(7);
	  foreach($recent_posts as $post){
		echo '<li><a href="' . get_permalink($post["ID"]) . '" title="'.$post["post_title"].'" >' .   $post["post_title"].'</a> </li> ';
	  } ?>
	</ul>
  </li>
</ul>

Данные, возвращаемые для каждого поста

ID(число)
Идентификатор записи.
post_author(число)
Идентификатор автора записи.
post_date(строка)
Дата записи в формате YYYY-MM-DD HH:MM:SS (с учетом исправления времени).
post_date_gmt(строка)
Дата записи в формате YYYY-MM-DD HH:MM:SS (время по Гринвичу (GMT)).
post_content(строка)
Текст записи.
post_title(строка)
Заголовок записи.
post_excerpt(строка)
Цитата записи.
post_status(строка)
Статут записи, может быть: publish|pending|draft|private|static|object|attachment|inherit|future|trash.
comment_status(строка)
Возможность комментирования для записи, может быть: open|closed|registered_only.
ping_status(строка)
Статус пингов/трэкбэков, может быть: open|closed.
post_password(строка)
Пароль записи.
post_name(строка)
Имя записи (слаг). Название которое обычно используется в УРЛ-е.
to_ping(строка)
УРЛ-ы из статьи, на которые нужно отправить уведомления при обновлении поста.
pinged(строка)
УРЛ-ы из статьи, которые уже получили уведомления.
post_modified(строка)
Дата изменения записи в формате YYYY-MM-DD HH:MM:SS (с учетом корректировки времени).
post_modified_gmt(строка)
Дата изменения записи в формате YYYY-MM-DD HH:MM:SS (время по Гринвичу (GMT)).
post_parent(число)
ID родительской страницы (отлично от нуля у прикрепленных типов записей).
guid(строка)
Ссылка на запись. Важно: использовать этот параметр в качестве постоянной ссылки для поста неправильно, если версия вашего WordPress выше 2.5. Это уникальный идентификатор записи, который позднее стал ссылкой на запись.
menu_order(число)
Порядковый номер для построения меню (используется для постоянных страниц).
post_type(строка)
Тип записи: post, page, attachment и т.д.
post_mime_type(строка)

Какого типа вложения нужно получить. Можно использовать, когда параметр post_type = attachment.

  • image/jpeg
  • image/png
  • image/gif
  • image - для любых картинок
  • audio/mpeg
  • application/pdf
  • application/zip

Вместо одно миме типа можно указать несколько в массиве. Полный список миме типов смотрите здесь.

comment_count(число)
Количество комментариев у записи.

Код wp get recent posts: wp-includes/post.php WP 4.9

<?php
function wp_get_recent_posts( $args = array(), $output = ARRAY_A ) {

	if ( is_numeric( $args ) ) {
		_deprecated_argument( __FUNCTION__, '3.1.0', __( 'Passing an integer number of posts is deprecated. Pass an array of arguments instead.' ) );
		$args = array( 'numberposts' => absint( $args ) );
	}

	// Set default arguments.
	$defaults = array(
		'numberposts' => 10, 'offset' => 0,
		'category' => 0, 'orderby' => 'post_date',
		'order' => 'DESC', 'include' => '',
		'exclude' => '', 'meta_key' => '',
		'meta_value' =>'', 'post_type' => 'post', 'post_status' => 'draft, publish, future, pending, private',
		'suppress_filters' => true
	);

	$r = wp_parse_args( $args, $defaults );

	$results = get_posts( $r );

	// Backward compatibility. Prior to 3.1 expected posts to be returned in array.
	if ( ARRAY_A == $output ){
		foreach ( $results as $key => $result ) {
			$results[$key] = get_object_vars( $result );
		}
		return $results ? $results : array();
	}

	return $results ? $results : false;

}

Cвязанные функции

Из метки: query (запрос)

Еще из раздела: Запросы

wp_get_recent_posts 9 комментариев
  • Валентин cайт: www.flebolog.org

    Спасибо вам большое. Попалась красивая тема, которая не поддерживает виджеты. Для того чтобы вывести последние записи - использовал wp_get_recent_posts. Все получилось быстро, без шума и пыли. Код примера поставил прямо в код страницы боковой колонки. Запустилось сразу. Респект администрации.

    Ответить6.6 лет назад #
    • Kama4558

      На здоровье! Тут нет администрации, всего лишь я smile

      Ответить6.6 лет назад #
  • Fenik cайт: zmonews.ru

    Огромное спасибо...
    Сам изучаю php но вот изменять вордпресс пока тяжко получается..
    Вам признателен

    Ответить5.7 лет назад #
  • Павел @

    Спасибо. А как вывести дату перед записью в произвольном формате?

    Ответить5.2 лет назад #
  • Dzirt

    Доброго времени суток! Не подскажите ли, а как вместе с последними (произвольного типа) записями вывести их миниатюры и произвольные поля? Как вывести произвольный тип записи и цитату к нему - разобрался:

    <?php // Вывод ссылок "Книжных" новинок:
    		$args = array(  
    			'numberposts' => 5,
    			'post_type' => 'book'
    		);   
    
    		$result = wp_get_recent_posts($args);  
    
    		foreach( $result as $p ){   
    		?>  
    			<div style="margin-bottom:10px;">
    			* <a href="<?php echo get_permalink($p['ID']) ?>"><?php echo $p['post_title'] ?></a>
    			<?php echo $p['post_excerpt'] // это Цитата ?>
    			</div>
    		<?php   
    		}   
    		?>

    Но вот с остальным - никак unknw
    Заранее благодарен за помощь thank_you

    Ответить4.7 года назад #
  • campusboy1896 cайт: www.youtube.com/c/wpplus

    Я так и не понял, в чем принципиальная разница с get_posts?

    • Kama4558

      Нет разницы... Она только в том что в get_posts() по умолчанию немного другие параметры и вывод меняется на ARRAY_A. Насколько я понимаю, это просто старая функция, которая до версии 3.1 работала как-то по своему, но сейчас она уже не нужна и стала просто оберткой для get_posts()...

  • Shamcor

    А изображение как вывести?

    Ответить2 месяца назад #

Здравствуйте, !

Ваш комментарий