如何更改归档标题以使用分类标签的复数形式而不是单数形式

我有一个简单的Wordpress博客, 分为两个类别:子句是” comment” 和” press_release” 。当我在任何一个类别的帖子的single.php页面上时, 它都应显示” 评论” 或” 新闻稿” 。当我使用任何一个类别的存档的archive.php时, 我都想将其命名为” Comments” 或” Press Releases” 。
我已经将此代码添加到functions.php中, 但是它只是使整个网站在浏览器中空白。
-更新代码-
从functions.php:

$labels = array( 'name'=> _x( 'Kommentare', 'taxonomy general name'), 'singular_name'=> _x( 'Kommentar', 'taxonomy singular name'), 'menu_name'=> __( 'Kommentare') ); $labels = array( 'name'=> _x( 'Pressemitteilungen', 'taxonomy general name'), 'singular_name'=> _x( 'Pressemitteilung', 'taxonomy singular name'), 'menu_name'=> __( 'Pressemitteilungen') ); add_filter( 'get_the_archive_title', function ( $title ) {if( is_tax() ) { $tax = get_taxonomy( get_queried_object()-> taxonomy ); /* use the "name" label instead of "singular_name" to showl the plural version */ $title = sprintf( __( '%1$s: %2$s' ), $tax-> labels-> name, single_term_title( '', false ) ); } return $title; });

在诸如archive.php的索引(对于复数版本)上:
< ?php if (have_posts()) : ?> < ?php $post = $posts[0]; ?> < ?php if (is_category()) { ?> < h2> < ?php echo get_the_archive_title(); ?> < /h2> < ?php } elseif (is_author()) { ?> < h2> < ?php _e('Ver?ffentlicht von %s'); ?> < /h2> < ?php } ?>

(但回显” 类别:新闻” 而不是” 新闻” 。)
在通常的代码块中的单个帖子页面(例如single.php)上:
< ?php foreach((get_the_category()) as $category) { echo $category-> cat_name; } ?>

-结束更新代码-
— 最新更新的代码—
add_action( 'init', 'create_taxonomies', 0 ); function create_taxonomies() { $labels = array( 'name'=> _x( 'Pressemitteilungen', 'taxonomy general name'), 'singular_name' => _x( 'Pressemitteilung', 'taxonomy singular name'), 'menu_name'=> __( 'Pressemitteilungen') ); $args = array( 'hierarchical'=> true, 'labels'=> $labels, 'query_var'=> true, 'rewrite'=> array( 'slug' => 'pressemitteilung' ) ); register_taxonomy( 'pressemitteilung', array( 'post' ), $args ); $labels = array( 'name'=> _x( 'Kommentare', 'taxonomy general name'), 'singular_name'=> _x( 'Kommentar', 'taxonomy singular name'), 'menu_name'=> __( 'Kommentare') ); $args = array( 'hierarchical'=> true, 'labels'=> $labels, 'query_var'=> true, 'rewrite'=> array( 'slug' => 'kommentar' ) ); register_taxonomy( 'kommentar', array( 'post' ), $args ); }add_filter( 'get_the_archive_title', function ( $title ) { if( is_tax() ) { $tax = get_taxonomy( get_queried_object()-> taxonomy ); $title = sprintf( __( '%2$s' ), $tax-> labels-> name, single_term_title( '', false ) ); } return $title; });

— 结束新更新的代码-
请注意, 我无法通过在’ %s’ 之后添加字母’ s’ 来对其进行” 软修复” 。我不能使用它, 因为我想在德语博客中使用它, 并且复数形式并不都一致(例如带有额外的)。
是语法错误还是我做错了?
#1WP默认情况下对分类档案使用单个标签。
archive.php使用get_the_archive_title来显示标题, 该标题使用singular_name, 正如我们从get_the_archive_title的以下代码行中看到的那样, 该代码生成分类档案的标题:
$title = sprintf( __( '%1$s: %2$s' ), $tax-> labels-> singular_name, single_term_title( '', false ) );

幸运的是, 我们可以使用get_the_archive_title过滤器对此进行过滤。在我们的过滤器函数中, 我们需要1.检查归档文件是否用于分类法。2.如果是, 请从查询对象中获取分类法。3.以与get_the_archive_title函数相同的方式生成标题, 但使用” 名称” 而不是” singular_name” 。
将此添加到你的functions.php中, 以更改分类档案名称:
add_filter( 'get_the_archive_title', function ( $title ) {if( is_tax() ) { $tax = get_taxonomy( get_queried_object()-> taxonomy ); /* use the "name" label instead of "singular_name" to showl the plural version */ $title = sprintf( __( '%1$s: %2$s' ), $tax-> labels-> name, single_term_title( '', false ) ); } return $title; });

例子:
在你的问题中, 你对标签的定义如下:
$labels = array( 'name'=> _x( 'Comments', 'taxonomy general name'), 'singular_name'=> _x( 'Comment', 'taxonomy singular name'), 'menu_name'=> __( 'Comments') );

默认情况下, WP将在存档中使用单数名称, 即” 注释” 。上面的代码将其改为使用名称, 即” 注释” 。
将其更改为使用德语标签:
$labels = array( 'name'=> _x( 'Kommentare', 'taxonomy general name'), 'singular_name'=> _x( 'Kommentar', 'taxonomy singular name'), 'menu_name'=> __( 'Kommentare') );

现在, 上面的代码将使用设置为” Kommentare” 的名称, 而不是来自singular_name的” Kommentar” 。
更新:
以下是我添加到测试站点的完整代码, 它可以正常工作:
functions.php:
add_action( 'init', 'create_taxonomies', 0 ); function create_taxonomies() { $labels = array( 'name'=> _x( 'Pressemitteilungen', 'taxonomy general name'), 'singular_name' => _x( 'Pressemitteilung', 'taxonomy singular name'), 'menu_name'=> __( 'Pressemitteilungen') ); $args = array( 'hierarchical'=> true, 'labels'=> $labels, 'query_var'=> true, 'rewrite'=> array( 'slug' => 'press_release' ) ); register_taxonomy( 'press_release', array( 'post' ), $args ); }add_filter( 'get_the_archive_title', function ( $title ) { if( is_tax() ) { $tax = get_taxonomy( get_queried_object()-> taxonomy ); $title = sprintf( __( '%1$s: %2$s' ), $tax-> labels-> name, single_term_title( '', false ) ); } return $title; });

archive.php
< ?php if ( have_posts() ) : ?> < h1 class="page-title"> < ?php echo get_the_archive_title( ); ?> < /h1> [...]

【如何更改归档标题以使用分类标签的复数形式而不是单数形式】我已经在WP管理员的press_release分类法中设置了一个测试词testterm1, 在存档页面中为mysite.com/press_release/testterm1/创建了HTML
< h1 class="page-title"> Pressemitteilungen: test term1< /h1>

    推荐阅读