买了一个WORDPRESS主题,用上并填充了网站内容,一切很好。美中不足的是,发布的课程内容也和文章信息的排序逻辑一样,即:最近发布的排在最前,而课程则是想把最早发布的、也是最核心的课程显示在其位置。
怎么办呢?可以选择在后台手动换掉内容来解决,可是这个办法太笨了,或是选择修改课程信息背后的程序逻辑,这样或许可以一劳永逸。
首先想到的是,把想要显示的课程信息,在后台设为置顶,让其与其他信息区别开来。
然后,就是修改代码的逻辑,只显示在后台设为置顶的文章。
查找资料,主要是修改query_posts函数里的参数规则。参考下文:
将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规则,则参考了下文:
结果如下,是自己想要的。
如要更换,只需在后台更换置顶文章即可,设置或取消,这样很灵活。