有更聪明的方法来编写这个函数吗?也许是通配符?
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;
});发布于 2021-06-02 23:49:32
所以,我想知道为什么不直接通过管理页面设置类别标题,例如,对于具有段式alphabetical的类,可以将All Characters设置为类别的静态标题?
那样的话,你就不需要上get_the_archive_title了。
但是无论如何,这里有一种方法可以将那些(26) elseif简化为一个:(使用正则表达式)
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/中的一个)。
https://wordpress.stackexchange.com/questions/389059
复制相似问题