在 WordPress 中,使用 WP_Query
进行文章查询是最常见的操作,学习好这方面的操作, WordPress 开发基本就学会了一半。
「WordPress果酱」将通过一系列教程讲解如何使用 WP_Query
进行 WordPress 文章查询。
我写这一系列文章的目的也是为了方便自己使用这些参数的时候方便查询,所以如果你也是经常进行 WordPress 二次开发的话,建议收藏本文。
第10讲关于权限和缓存的参数,这两类参数参数都用得比较少,但是一些场景下还是非常有用的:
权限参数
权限参数用于显示用户有相应权限的文章,对应的参数只有一个:
perm
(string) – 用户权限。
显示用户有相应权限的已发布和私密的文章
代码语言:javascript复制$args = array(
'post_status' => array( 'publish', 'private' ),
'perm' => 'readable',
);
$query = new WP_Query( $args );
缓存参数
用于设置停用将获取到的文章存到缓存中,对应的参数有三个:
cache_results
(boolean) – 缓存文章信息.update_post_meta_cache
(boolean) – 缓存 post meta 信息.update_post_term_cache
(boolean) – 缓存对应的分类或者标签信息
显示50篇文章,但是文章信息不加入缓存中:
代码语言:javascript复制$args = array(
'posts_per_page' => 50,
'cache_results' => false
);
$query = new WP_Query( $args );
显示50篇文章,但是 post meta 信息不加入缓存中:
代码语言:javascript复制$args = array(
'posts_per_page' => 50,
'update_post_meta_cache' => false
);
$query = new WP_Query( $args );
显示50篇文章,但是 post term 信息不加入缓存中:
代码语言:javascript复制$args = array(
'posts_per_page' => 50,
'update_post_term_cache' => false
);
$query = new WP_Query( $args );
一般来说,这些缓存相关的参数不会特别用到,添加到缓存是才是正确的做法,但是在一些特定的情况下可能很有用,比如需要获取一组文章的标题和链接,而无需其他的信息,也不需要 post meta 和 post term 的数据,通过这几个参数的设置,可以不执行额外的 SQL 查询的时间。
另外需要注意,如果使用了持久对象缓存(例如 memcached),这些标志默认设置为 false,因为当存在持久缓存时,无需在每次页面加载时更新缓存。