抄代码 | WORDPRESS query_posts函数获取置顶文章列表并自定义排序

买了一个WORDPRESS主题,用上并填充了网站内容,一切很好。美中不足的是,发布的课程内容也和文章信息的排序逻辑一样,即:最近发布的排在最前,而课程则是想把最早发布的、也是最核心的课程显示在其位置。

WORDPRESS网站

怎么办呢?可以选择在后台手动换掉内容来解决,可是这个办法太笨了,或是选择修改课程信息背后的程序逻辑,这样或许可以一劳永逸。

首先想到的是,把想要显示的课程信息,在后台设为置顶,让其与其他信息区别开来。

2323

然后,就是修改代码的逻辑,只显示在后台设为置顶的文章。

查找资料,主要是修改query_posts函数里的参数规则。参考下文:

wordpress获取置顶文章列表的要领

将ignore_sticky_posts=1&orderby=rand这个参数,加至模板中的对应query_posts函数里,测试,发现实现了随机功能。于是继续。

最终,将原来的query_posts("showposts=$course_post_number&cat=$course_category_id&ignore_sticky_posts=1&orderby=rand");,这行代码,换成如下:

<?php

$query_post = array(
'posts_per_page' => 6,
'post__in' => get_option('sticky_posts'),
'caller_get_posts' => 1,
'orderby' => 'ID',
'order' => 'ASC'
);
query_posts($query_post);
?>

上面代码中的自定义排序字段与ASC规则,则参考了下文:

wordpress文章排序如何按ID来排序

结果如下,是自己想要的。

2332

如要更换,只需在后台更换置顶文章即可,设置或取消,这样很灵活。

相关文章

发表回复

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