wordpress 按首字母排列文章/检索文章

本文作者: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中即可。

wordpress 按首字母排列文章/检索文章