首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按姓氏字母化Wordpress分类法列表

按姓氏字母化Wordpress分类法列表
EN

Stack Overflow用户
提问于 2021-08-16 10:58:49
回答 1查看 60关注 0票数 0

我有一个查询,它输出一个分类法标签列表,按名字组织,并有一个字母标题,如下所示:

E

埃琳娜·费兰特

H

海伦DeWitt

J

琼·迪迪翁

乔纳森·弗兰森

K

石黑和夫

M

麦琪·纳尔逊

P

柏拉图

R

瑞秋·库斯克

罗伯托·博拉尼奥

S

希拉·赫提

等。

如何将这个分类标签列表按姓而不是名按字母顺序排列?因此,结果将是:

B

罗伯托·博拉尼奥

C

瑞秋·库斯克

D

海伦DeWitt

琼·迪迪翁

F

埃琳娜·费兰特

乔纳森·弗兰森

H

希拉·赫提

I

石黑和夫

P

柏拉图

N

麦琪·纳尔逊

等。

以下是查询:

代码语言:javascript
复制
    <?php       
    $list = '';
    $groups = array();
    $tags = get_terms('authors',$args);
    if( $tags && is_array( $tags ) ) {
        foreach( $tags as $tag ) {
            $first_letter = strtoupper( $tag->name[0] );
            $groups[ $first_letter ][] = $tag;
        }
        if( !empty( $groups ) ) {
            foreach( $groups as $letter => $tags ) {
                $list .= "<div class='titleLetter'>" . $letter . "</div><ul>";
                foreach( $tags as $tag ) {
                    $list .= '<li><a href="/authors/'.$tag->slug.'">'.$tag->name.'</a></li>';
                }
                $list .= '<br></ul>';
            }
            $list .= '';
        }
    }
    echo $list;  ?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-16 11:33:43

如果给定的代码适用于名称排序。那么这个就可以为orderby姓工作了。

代码语言:javascript
复制
<?php       
$list = '';
$groups = array();
$tags = get_terms('authors',$args);
if( $tags && is_array( $tags ) ) {
    $i=0;
    foreach( $tags as $tag ) {
        $lastname_arr=explode(' ', $tag->name);
        $lastname=$lastname_arr[count($lastname_arr)-1];
        $first_letter = strtoupper( $lastname[0] );
        $groups[ $first_letter ][$lastname.'_'.$i] = $tag;
        $i++;
    }
    foreach($groups as $key=>$group ){
        ksort($groups[$key]);
    }
    ksort($groups);
    if( !empty( $groups ) ) {
        foreach( $groups as $letter => $tags ) {
            $list .= "<div class='titleLetter'>" . $letter . "</div><ul>";
            foreach( $tags as $tag ) {
                $list .= '<li><a href="/authors/'.$tag->slug.'">'.$tag->name.'</a></li>';
            }
            $list .= '<br></ul>';
        }
        $list .= '';
    }
}
echo $list;  
?>

我在这里做的是:

lastnames.

  • applied ksort(按键排序)函数的第一个字母
  • 替换了数组索引,用于数组和子数组(以便为新索引创建自定义顺序)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68801673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档