2020-04-03 / 5456阅
WordPress允许按照文章的状态查询文章,参数如下:
有关文章状态的查询。文章状态指的是文章当前处于什么情况,比如 “已发布”、“草稿”、“待审核” 和 “定时发布” 等等,文章状态是可以由主题或者插件开发者扩展的。 关于文章状态可以使用一个参数:
post_status(字符串 | 数组):文章的状态,一般默认都是 publish(已发布)
获取一个状态的文章 获取草稿文章: $query = new WP_Query( 'post_status=draft' );
获取多个状态的文章 获取多个状态下的文章: $query = new WP_Query( array( 'post_status' => array( 'pending', 'draft', 'future' ) ) );
获取全部状态的文章: $query = new WP_Query( 'post_status=any' );
要对查询的结果进行分页,有以下几个参数
nopaging(布尔):将文章分页还是全部获取。默认是 False:分页 posts_per_page(整数):每页显示多少文章,如果设置成 –1 则不分页 posts_per_archive_page(整数):和 posts_per_page 是一样的,不过这个只有在当前查询是根据存档或是搜索的情况下才生效 offset(整数):偏移值,从第几篇文章开始 paged(整数):页码,指定文章分页的当前页 page(整数):静态首页的页码 ignore_sticky_posts(布尔):是否忽略指定文章,要忽略置顶文章可以设置成 True,默认是 False
设置每页文章数 设置每页的文章数量为 3 篇文章: $query = new WP_Query( 'posts_per_page=3' );
显示全部文章 获取全部文章,不分页(方法一): $query = new WP_Query( 'nopaging=1' );
获取全部文章,不分页(方法二): $query = new WP_Query( 'posts_per_page=-1' );
偏移 从第 4 个文章开始获取 $query = new WP_Query( 'offset=3' ) );
每页 5 篇文章,而但向前移位 3 篇: $query = new WP_Query( array( 'posts_per_page' => 5, 'offset' => 3 ) );
获取第 N 页文章 获取第 6 页的文章: $query = new WP_Query('paged=6' );
获取当前页文章: $query = new WP_Query( array( 'paged' => get_query_var( 'paged' ) ) );
以下分页代码能够保证分页的准确性,建议每次都使用
获取当前页文章,如果没有指定页码则默认第一页: $paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1; $query = new WP_Query( array( 'paged' => $paged ) );
置顶文章 获取第一篇置顶文章: $sticky = get_option( 'sticky_posts' ); $query = new WP_Query( 'p=' . $sticky[0] );
获取第一篇置顶文章,如果没有置顶文章则获取一篇最新的文章: $args = array( 'posts_per_page' => 1, 'post__in' => get_option( 'sticky_posts' ), 'ignore_sticky_posts' => 1, ); $query = new WP_Query( $args );
排除置顶文章 排除全部置顶文章: $query = new WP_Query( array( 'post__not_in' => get_option( 'sticky_posts' ) ) );
忽略指定文章的置顶性,在循环里按正常排序出现: $query = new WP_Query( 'ignore_sticky_posts=1' );
阅读文章或者观看视频过程中有任何问题,请下方留言或者联系我Q248758228