1. David Wu首页
  2. WordPress
  3. WordPress安装教程

WordPress中query_posts函数的详细用法-WordPress开发教程

query_posts的基本结构(无法分页)<?php query_posts( $args ); ?> <?php while ( have_posts() ) : the_post(); ?> … <?php endwhile; ?> <?php wp_reset_query(); ?

query_posts的基本结构(无法分页)

<?php query_posts( $args ); ?> 
<?php while ( have_posts() ) : the_post(); ?> 
... 
<?php endwhile; ?> 
<?php wp_reset_query(); ?>

query_posts函数添加在主循环前,如果后面还有循环函数,需要在循环结束后增加<?php wp_reset_query(); ?>来重置query

使用query_posts控制分类文章

<?php query_posts( "cat=1,5,6" ); ?>

只显示分类ID为1,5,6的文章,要排除分类ID为3和5的文章只需在分类ID前增加1个减号<?php query_posts( ‘cat=-3,-5′ ); ?>

使用query_posts显示特定文章

<?php query_posts( "p=2" ); ?>

只显示ID为2的文章

使用query_posts控制文章数量

<?php query_posts( "posts_per_page=5" ); ?>

显示最多5篇文章

使用query_posts控制文章排序方式

orderby=date?按发布日期排序
orderby=modified 按修改时间排序
orderby=ID 按文章ID排序
orderby=comment_count 按评论最多排序
orderby=title 按标题排序
orderby=rand 随机排序

query_posts函数多参数结构(支持分页)

<?php 
$paged = (get_query_var("paged")) ? get_query_var("paged") : 1; 
$args = array( 
"orderby" => "rand", 
"paged" => $paged 
); 
query_posts($args); 
?>

把参数写在’paged’ => $paged上面就可以了,上例中只写了一个文章排序方式为随机的参数,’orderby’ => ‘rand’,每个参数结束后用半角逗号来结束

使用query_posts控制显示哪些分类,TAG标签或特定的文章

"category__in" => array( 1, 3)

只显示分类ID为1和3的文章,如果需要排除分类ID为2和4的文章则用’category__not_in’ => array(2, 4),

要显示某个分类区间的文章,’category__in’ => range(3, 6),显示分类ID3到6的文章。

同理,需要控制显示哪些TAG标签的文章,只需要将该参数的category改为tag,如’tag__in’ => array( 5, 8),只显示标签ID为5和8的文章。

将参数的category改为post则能控制显示哪些ID的文章,’post__in’ => array(2,4,6),只显示ID为2,4,6的文章,如果只想显示置顶文章,则将array(2,4,6)改成get_option(‘sticky_posts’)

使用query_posts控制文章数量

"showposts" => 5 或 "posts_per_page" => 5

显示最多5篇文章,如果把5改成-1,则显示所有文章

使用query_posts控制显示指定自定义字段的文章

"meta_key" => "sort", "orderby" => "meta_value_num",

只显示自定义字段为sort的文章,且按照sort值的大小来排序,值填写数字就可以按照数字从大到小的顺序排序了,从而可以自由的排序文章。

在分类页中使用query_posts函数

"category__in" => array(get_query_var("cat"))

如果是在分类页中使用,需要调用当前分类的ID,那么直接在array的括号内填写get_query_var(‘cat’)。

但是如果该分类有子分类,使用上面的方法并不会显示子分类的文章,想要显示所有子分类的文章就把上面的代码替换为

"cat" => get_query_var("cat")

更多详细用法,请参考官方文档 http://codex.wordpress.org/Function_Reference/query_posts

原创文章,作者:DavidWu,如若转载,请注明出处:https://www.davidwu.net/archives/121464

服务项目 服务内容 收费标准(元)
开发定制 WordPress主题/插件开发定制 (以最终需求为准)
主题/插件汉化 汉化团队WordPress主题/插件,翻译率95% (以标的主题/插件的句子数量为准)
服务器环境配置 基于您现有服务器,搭建配置网站运行环境,结合我们多年来实战经验,可完美支持WordPress等PHP程序运行,并配置伪静态规则、优化目录权限等问题。服务器我们强烈推荐使用Linux系统。 100元/次
网站托管 若贵站目前尚无技术人员,无法完成服务器环境配置,可选择我们的网站托管服务,直接交付正常运行的WordPress站点,并且无需担心服务器的后续维护工作,一切都由我们来帮您完成。 标配套餐:1000元/年/站点 高配套餐:联系客服获取
网站加速优化 从服务器后端配置优化到WordPress数据库缓存、前端页面缓存、JS和CSS压缩合并,全方位优化网站加载速度,实现秒开。(此服务仅针对(云)服务器/VPS) 500元/次(仅站内优化200元/次)
主题配置 本站所有主题均支持,可快速实现,若有任何问题可以咨询客服解决,若您希望我们提供配置服务,可选购此服务。 英文主题安装 60元/次 汉化主题安装 30元/次
HTTPS配置 HTTPS已经不断普及,并且有着更高的安全性以及SEO上的优待。该服务收取的为服务费,SSL证书产生的费用请自行承担。 100元/次
网站搬家 迁移网站所有文件和数据库信息、网站相关配置的调整、以及迁移中的疑难问题故障排除。 标准收费:500元/次 若网站数据量大,需协商
网站运维 提供整站的运维服务,保证网站正常运行。包含:网站故障定位及排除、网站数据备份和恢复、网站攻击及木马等问题的处理等 标准收费:2000元/年 IP 5000以上需协商

发表评论

邮箱地址不会被公开。 必填项已用*标注