八月
10

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

从标题中可以看出,本文要讲两个方面内容:

第一,按标题首字母排列文章

这个简单,只需在循环(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中即可。

demo可看我在项目中的具体应用。

查询以某一字母开头的文章示例

demo

本文标签: , , , ,

分享

本文短网址: http://qiqi.boy.im/f5

这篇文章已经有 19 条评论

Comments (19) Trackbacks (0)
You can leave a response or Trackback this entry .
  1. liuqiqi -#1

    美美的沙发。。。 :grin:

  2. WayJam -#2

    Mark下,以后可能用到。

  3. winy -#3

    嗯,这个我也做过,模糊查询,我还判断了一下以数字开头的文章

  4. Maplews -#4

    挺好玩,不过我觉得实用性不大..
    估计用搜索的都很少

  5. 小邪 -#5

    唔,第二种方法应该对中文木有用呐 ╮(╯▽╰)╭

  6. wmtimes -#6

    中国字难啊。除非加上拼音。

  7. Dianso -#7

    这功能实用

  8. 刘印 -#8

    这个不错,很多像软件站都用到了这个功能。

  9. 奥拉西坦 -#9

    文章不多,暂时用不上~~嘿

  10. jixiangac -#10

    这种检索对于个人博客什么的估计没有把- -
    软件分享之类的博客倒不错 :idea:

  11. IM路人 -#11

    中文貌似还真有点难~~~~

  12. 毕节教育网 -#12

    代码看不明白。

  13. loosky -#13

    有的时候的却需要这个功能。

  14. 美容护肤小窍门 -#14

    通过百度访问到您的博客
    内容很好
    页面很漂亮
    以后会常来看看你的博文的
    谢谢你的分享

  15. c -#15

    感觉你的博客有点像cms了哦。。 :eek:

  16. zhbconan -#16

    隔壁工位的哥们介绍我看你的网站,做的很不错,希望以后可以多向你学习。

  17. 扒站 -#17

    很专业的博客,受益匪浅.

  18. 懒人工具 -#18

    不错,受益了

  19. 微代码 -#19

    非常不错的博客,顶一个,欢迎回访,更欢迎互换链接

  1. No trackbacks yet.

Leave a Reply

Hi , say something.

  • :?:
  • :razz:
  • :sad:
  • :evil:
  • :!:
  • :smile:
  • :oops:
  • :grin:
  • :eek:
  • :shock:
  • :???:
  • :cool:
  • :lol:
  • :mad:
  • :twisted:
  • :roll:
  • :wink:
  • :idea:
  • :arrow:
  • :neutral:
  • :cry:
  • :mrgreen: