我有一个简单的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>
推荐阅读
- 如何更改hestia上的seciton顺序( [关闭])
- 如何在WooCommerce中选择结帐国家/地区时更改悬停颜色()
- 如何在Apostrophe主题上更改帖子标题
- 如何更改”具有促销代码(”)
- 如何更改网页上特定seciton的颜色()
- 如何居中对齐Globalsign信任logo
- 如何从其他文件调用WordPress函数
- 我给 ”Go 语言“ 开发了 6 个在线工具
- 代码审计开源工具推荐