首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改类别显示名称功能

更改类别显示名称功能
EN

WordPress Development用户
提问于 2021-06-02 23:05:41
回答 1查看 130关注 0票数 0

有更聪明的方法来编写这个函数吗?也许是通配符?

代码语言:javascript
复制
add_filter( 'get_the_archive_title', function ( $title ) {
    if ( is_category( 'alphabetical' ) ) {
        $title = 'All Characters';
    }
    elseif ( is_category( 'a-alphabetical' ) ) {
        $title = 'Characters Starting with A';
    }
    elseif ( is_category( 'b-alphabetical' ) ) {
        $title = 'Characters Starting with B';
    }
    elseif ( is_category( 'c-alphabetical' ) ) {
        $title = 'Characters Starting with C';
    }
    elseif ( is_category( 'd-alphabetical' ) ) {
        $title = 'Characters Starting with D';
    }
    elseif ( is_category( 'e-alphabetical' ) ) {
        $title = 'Characters Starting with E';
    }
    elseif ( is_category( 'f-alphabetical' ) ) {
        $title = 'Characters Starting with F';
    }
    elseif ( is_category( 'g-alphabetical' ) ) {
        $title = 'Characters Starting with G';
    }
    elseif ( is_category( 'h-alphabetical' ) ) {
        $title = 'Characters Starting with H';
    }
    elseif ( is_category( 'i-alphabetical' ) ) {
        $title = 'Characters Starting with I';
    }
    elseif ( is_category( 'j-alphabetical' ) ) {
        $title = 'Characters Starting with J';
    }
    elseif ( is_category( 'k-alphabetical' ) ) {
        $title = 'Characters Starting with K';
    }
    elseif ( is_category( 'l-alphabetical' ) ) {
        $title = 'Characters Starting with L';
    }
    elseif ( is_category( 'm-alphabetical' ) ) {
        $title = 'Characters Starting with M';
    }
    elseif ( is_category( 'n-alphabetical' ) ) {
        $title = 'Characters Starting with N';
    }
    elseif ( is_category( 'o-alphabetical' ) ) {
        $title = 'Characters Starting with O';
    }
    elseif ( is_category( 'p-alphabetical' ) ) {
        $title = 'Characters Starting with P';
    }
    elseif ( is_category( 'q-alphabetical' ) ) {
        $title = 'Characters Starting with Q';
    }
    elseif ( is_category( 'r-alphabetical' ) ) {
        $title = 'Characters Starting with R';
    }
    elseif ( is_category( 's-alphabetical' ) ) {
        $title = 'Characters Starting with S';
    }
    elseif ( is_category( 't-alphabetical' ) ) {
        $title = 'Characters Starting with T';
    }
    elseif ( is_category( 'u-alphabetical' ) ) {
        $title = 'Characters Starting with U';
    }
    elseif ( is_category( 'v-alphabetical' ) ) {
        $title = 'Characters Starting with V';
    }
    elseif ( is_category( 'w-alphabetical' ) ) {
        $title = 'Characters Starting with W';
    }
    elseif ( is_category( 'x-alphabetical' ) ) {
        $title = 'Characters Starting with X';
    }
    elseif ( is_category( 'y-alphabetical' ) ) {
        $title = 'Characters Starting with Y';
    }
    elseif ( is_category( 'z-alphabetical' ) ) {
        $title = 'Characters Starting with Z';
    }
    return $title;
});
EN

回答 1

WordPress Development用户

回答已采纳

发布于 2021-06-02 23:49:32

所以,我想知道为什么不直接通过管理页面设置类别标题,例如,对于具有段式alphabetical的类,可以将All Characters设置为类别的静态标题?

那样的话,你就不需要上get_the_archive_title了。

但是无论如何,这里有一种方法可以将那些(26) elseif简化为一个:(使用正则表达式)

代码语言:javascript
复制
add_filter( 'get_the_archive_title', function ( $title ) {
    if ( is_category( 'alphabetical' ) ) {
        $title = 'All Characters';
    // If the slug starts with -alphabetical, we set the title to
    // "Characters Starting with ".
    } elseif ( is_category() && preg_match( '/^([a-z])-alphabetical$/', get_queried_object()->slug, $m ) ) {
        $title = 'Characters Starting with ' . strtoupper( $m[1] );
    }

    return $title;
} );

因此,在上面的代码中,我使用了preg_match(),也使用了get_queried_object(),它在类别存档页面上返回当前类别的术语对象/数据(例如,example.com/category/alphabetical/中的一个)。

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

https://wordpress.stackexchange.com/questions/389059

复制
相关文章

相似问题

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