按标题中的第二个单词排序?

时间:2011-12-07 作者:v3nt

我有全名作为标题,想按姓氏排序。

我怎样才能用wordpress做到这一点?

在PHP中,它将遵循-

 SELECT * from posts ORDER BY SUBSTR(LTRIM(post_title), LOCATE(\' \',LTRIM(post_title)))
当前获取人员类别的代码为;

$args = array(
    \'posts_per_page\'=>50,
    \'cat\'=> \'39,-41\',
    \'orderby\'=>\'title\',
    \'order\'=>\'ASC\',
);
query_posts($args);
我怎样才能得到第二个词序?

最好的,丹。

2 个回复
SO网友:goldenapples

有一个过滤器“posts\\u orderby”,允许您指定自己的ORDER BY子句。在您的情况下,代码如下所示:

add_filter( \'posts_orderby\', \'order_by_surname\' );

function order_by_surname( $orderby, $query ) {

    // first you should check to make sure sure you\'re only filtering the particular query
    // you want to hack. return $orderby if its not the correct query;

    return "ORDER BY SUBSTR(
        LTRIM({$wpdb->posts}.post_title), 
        LOCATE(\' \',LTRIM({$wpdb->posts}.post_title)))";

}

SO网友:Wyck

第一个示例是SQL查询,没有本机WordPress函数可以执行此操作。

这就给您留下了一些PHP选项,explode it, str_word_count, 随着sort (或ksort)然后按字母顺序排列数组。

这是一种非常奇怪的使用这种类型数据的方式,它应该放在一个元框中,因为您基本上必须在您的案例中对查询进行黑客攻击才能得到您想要的数据。

结束