其实这个需求还是比较少的,但是每个人的需求不一样才会让WordPress有折腾的价值。
其实代码方面也是非常简单的,不过我这里啰嗦一点,简单的说一下WordPress的文章状态有哪些:
pending:等待发布
draft:草稿文章
auto:自动保存
future:定时发布
private:私密文章
inherit:修订版本
trash:垃圾文章
如果你知道上面每个状态对应的解释,那么通过下面的代码就可以自定义获取所有状态的文章了:
1 2 3 4 5 6 7 8 |
$args = array( 'post_type' => 'my-post-type', 'post_author' => $current_user->ID, 'post_status' => array('publish', 'pending', 'draft', 'auto-draft', 'future', 'private', 'inherit', 'trash') ); $query = new WP_Query($args); while ( $query->have_posts() ) : $query->the_post(); |
上面的方法是标准的通过wp_query循环获取之后输出的方式,比较常规也是比较合理的,同时提供了另外一种可能比较非常规的方式:
1 2 3 4 5 6 7 |
$articles = get_posts( array( 'numberposts' => -1, 'post_status' => 'any', 'post_type' => get_post_types('', 'names'), ) ); |
二者之间如果仅仅是获取文章的话,没什么差别,但是如果有额外的需求,比如指定分类,每页显示数量、排除分类等等这些就可能还是需要用我wp_query了。
针对上面通过get_posts的代码,获取了内容之后依然需要下面的代码进行输出:
1 2 3 |
foreach ($articles as $article) { echo $article->ID; } |
通过foreach循环输出所有的文章信息,这里需要注意的就是,如果你使用了wp_query进行输出,可能并不需要指定文章ID,默认会自动获取,但是通过get_posts获取的数据就需要注明文章ID了,也就是上面代码中的:$article->ID。
有兴趣的朋友可以去实践一下,具体效果可以看看下面图片: