所以我想知道为什么你不直接通过管理页面设置类别标题,例如,对于有slug的那一个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 <letter>-alphabetical, we set the title to
// "Characters Starting with <the LETTER in uppercase>".
} 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/
).