WordPress как на ладони
rgbcode is looking for WordPress developers. Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

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()

Хуков нет.

Возвращает

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

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

$result = wp_get_recent_posts( [
	'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,
], OBJECT );
foreach( $result as $post ){
	setup_postdata( $post );
	the_title(); // вывод
}
wp_reset_postdata();

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

wp_get_recent_posts( $args, $output );
$args(число)

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

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

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

$output(строка)

Тип возвращаемых данных.

  • ARRAY_A - массив массивов с данными постов, в индексах массива будет ID поста.
  • OBJECT - массив объектов WP_Post, в индексах массива будут числа по порядку.

Default: ARRAY_A

Примеры

0

#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
}
?>
0

#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>
0

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

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(строка)
Уникальный идентификатор записи (для RSS), обычно содержит ссылку на запись. Нельзя использовать этот параметр в качестве постоянной ссылки на пост.
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(число)
Количество комментариев у записи.

Заметки

Список изменений

С версии 1.0.0 Введена.

Код wp_get_recent_posts() WP 6.4.3

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,
	);

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

	$results = get_posts( $parsed_args );

	// 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;
}
8 комментариев
    Войти