本文作者:QiQiBoY
第一,按标题首字母排列文章
只需在循环(loop)前,添加
/** * 方式一,直接添加查询字符串 */ <?php query_posts( $query_string . '&orderby=title&order=asc' ); ?> /** * 方式二,合并查询数组 */ <?php $args=array_merge( $wp_query->query, array( 'orderby' => 'title', 'order' => 'asc' ) ); query_posts($args); ?>
注: query_posts($args)用来改变主循环,相关使用方法可查询wordpress官方说明文档。
第二,按首标题字母检索文章
这个普通用户可能用处不大,但是对于一些将wordpress用来做产品展示的网站来说,按照字母名称快速查询相关产品则是一个很基本的需求。最近在一个项目中有用到,研究了wordpress的query后,一点小心得在这里分享出来。
既然是检索,那肯定就是要用到”s=word”这个查询变量了。比如查找以字母“A”开头的文章
<?php query_posts('s=A'); ?>
这样的话,wordpress会通过标题和内容查找包含字母A的文章,而不是我们需要的”以字母A开头的文章”.要达到我们的目的应该怎么做呢?
add_filter( 'posts_search', 'wp_custom_search' ); function wp_custom_search($search){ $s=get_query_var('s'); if(!$s)return $search;//非搜索,直接返回。 $search = "AND (((wp_ymimds_posts.post_title LIKE '{$s}%'))) AND (wp_ymimds_posts.post_password = '')";//会sql的你应该懂得,模糊查询 return $search; }
将以上代码放到主题的functions.php中即可。