WordPress函数wp_get_recent_posts用于获取最新文章,包括文章的标题、别名、状态、发表时间、修改时间、内容等信息。
1 | wp_get_recent_posts( array $args, string $output ) |
函数参数
$args
数组
wp_get_recent_posts()函数$args参数默认的值如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $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 ); |
wp_get_recent_posts()函数$args参数可用的值如下:
numberposts
整数,默认值:10
指定要返回的文章数量
offset
整数,默认为空
偏移数,例如设置为2,则从最新的第3篇文章开始返回数据。
category
整数,默认值:0
分类的ID,指定需要返回哪个分类的文章。
orderby
字符串值,默认值:post_date
按照哪个字段来排序,默认按照文章的发表时间排序。
order
字符串值,默认值:DESC
排序的方式
include
整数、数组或字符串值,默认为空
需要包含的文章ID,只有指定的这些文章才会被返回。
exclude
整数、数组或字符串值,默认为空
需要排除的文章ID,指定的这些文章不会被返回。
meta_key
字符串值,默认为空
自定义字段的名称,用于筛选文章
meta_value
字符串值,默认为空
自定义字段的值,用于筛选文章
post_type
字符串值,默认值:post
文章类型,默认为返回post类型的文章
post_status
字符串值,默认值:draft, publish, future, pending, private
文章的状态,可在以上值中只选择一种,例如设置为publish,则只返回公开的文章。
suppress_filters
布尔值,默认值:true
是否使用过滤器
wp_get_recent_posts()函数还有第二个参数:
$output
字符串值,默认值:ARRAY_A
- ARRAY_A:返回数组结构的数据;
- OBJECT:返回对象;
函数返回值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | Array ( [0] => Array ( [ID] => 2436 [post_author] => 1 [post_date] => 2019-03-22 08:03:33 [post_date_gmt] => 2019-03-22 0:03:33 [post_content] => [post_title] => 文章标题 [post_excerpt] => [post_status] => publish [comment_status] => open [ping_status] => closed [post_password] => [post_name] => 文章别名 [to_ping] => [pinged] => [post_modified] => 2019-03-22 10:13:46 [post_modified_gmt] => 2019-03-22 02:13:46 [post_content_filtered] => [post_parent] => 0 [guid] => https://www.beizigen.com/?p=2436 [menu_order] => 0 [post_type] => post [post_mime_type] => [comment_count] => 0 [filter] => raw ), [1] => Array ( ...... ) ...... ) |
函数使用示例
以下代码会输出10篇最新文章列表,注意在输出结果之后,使用了wp_reset_query()函数来重置循环,避免下一个查询出现错误。
1 2 3 4 5 6 7 8 9 10 | <h2>最新文章</h2> <ul> <?php $recent_posts = wp_get_recent_posts(); foreach( $recent_posts as $recent ){ echo '<li><a href="' . get_permalink($recent["ID"]) . '">' . $recent["post_title"] . '</a></li>'; } wp_reset_query(); ?> </ul> |
扩展阅读
wp_get_recent_posts()函数位于:wp-includes/post.php
相关函数:
- wp_parse_args()
- get_posts()