<?php the_archive_title( '<h1 class="page-title">', '</h1>' ); ?>
这给了我类似“类别:俄罗斯”,“标签:美国”,“作者:约翰”的标题“。
我想删除“类别:”,“标签:”和“作者:”部分,只显示类别,标签和作者名称。
有人知道如何做到这一点吗?
谢谢。
#1 楼
您可以扩展我在此答案中提到的get_the_archive_title
过滤器 add_filter( 'get_the_archive_title', function ($title) {
if ( is_category() ) {
$title = single_cat_title( '', false );
} elseif ( is_tag() ) {
$title = single_tag_title( '', false );
} elseif ( is_author() ) {
$title = '<span class="vcard">' . get_the_author() . '</span>' ;
} elseif ( is_tax() ) { //for custom post types
$title = sprintf( __( '%1$s' ), single_term_title( '', false ) );
} elseif (is_post_type_archive()) {
$title = post_type_archive_title( '', false );
}
return $title;
});
#2 楼
使用功能single_term_title()
评论
您可以在WP中以多种方式执行操作,但是我总是选择最简单的解决方案。谢谢蒂莫。
– f055
18年1月11日在14:22
嗯,这对并非所有术语的档案都无效。因此,我认为这不是一个很好的解决方案。
– GDY
19年4月5日在7:13
您能告诉@GDY,档案中应显示哪些非术语?
– Iggy
19/12/17在5:19
这给我返回“ null”,我应该设置什么设置吗?
– Marcello Perri
12月15日12:38
#3 楼
对于没有词的CPT标题:'Archive':如果要为CPT构建自定义存档模板,并且只想输出CPT的标题而没有多余的词(如“ Archive”),请使用以下功能而是:
post_type_archive_title();
来自developer.wordpress.org
评论
很好-此功能正是我所需要的。请注意,第一个参数已经默认为空字符串,第二个参数默认为true,这将回显结果而不是返回结果...因此您可以仅使用post_type_archive_title()获得与echo完全相同的结果post_type_archive_title('' ,false)
– squarecandy
19/12/8在23:32
#4 楼
我觉得这太过简化了,但这就是我所做的...<h1><?php echo str_replace("Archives: ", "", get_the_archive_title()); ?></h1>
评论
对于非英语网站来说,这是行不通的。
– Maxwell s.c
18年9月9日在15:50
#5 楼
echo '<h1 class="page-title">' . single_cat_title( '', false ) . '</h1>';
在taxonomy-category.php中不在主题公开范围之内。
#6 楼
我会使用过滤器并将其放在文件functions.php中。add_filter( 'get_the_archive_title', 'replaceCategoryName');
function replaceCategoryName ($title) {
$title = single_cat_title( '', false );
return $title;
}
评论
这是一个不错的解决方案,但实际上您应该在将$ title更新为single_cat_title之前检查is_category(),如果不是is_category(),则只需返回$ title不变即可。
–保罗501
8月20日22:53
#7 楼
您可以使用以下内容仅包含标题而没有前缀single_cat_title();
评论
虽然是正确的,但之前在其他答案中已经建议过这一点。
–尼古拉
18-2-27在18:52
#8 楼
假设格式始终是:Prefix: Archive Name
,我们可以使用带有PHP的substr()和strpos()函数的get_the_archive_title()来找到第一个冒号后跟一个空格,然后仅显示其后的内容。<?php // Only show the portion of the string following the first ": "
echo substr(get_the_archive_title(), strpos(get_the_archive_title(), ': ') + 2);
?>
#9 楼
目录:wp-includes
文件:
general-template.php
查找功能:
get_the_archive_title()
更改:
if ( is_category() ) {
$title = sprintf( __( 'Category: %s' ), single_cat_title( '', false ) );
} elseif ( is_tag() ) {
$title = sprintf( __( 'Tag: %s' ), single_tag_title( '', false ) );
} elseif ( is_author() ) {
$title = sprintf( __( 'Autor: %s' ), '<span class="vcard">' . get_the_author() . '</span>' );
}
到:
if ( is_category() ) {
$title = sprintf( __( '%s' ), single_cat_title( '', false ) );
} elseif ( is_tag() ) {
$title = sprintf( __( '%s' ), single_tag_title( '', false ) );
} elseif ( is_author() ) {
$title = sprintf( __( '%s' ), '<span class="vcard">' . get_the_author() . '</span>' );
}//if you want to remove or just change text if you need to
评论
错误,您是否真的建议在这里破解内核?
– cjbj
2016年9月6日下午13:42
这是一个非常非常糟糕的主意。如果不创建单独的分支,则无法立即更新。
– fuxia♦
2016年9月6日下午13:57
很抱歉,如果我中断了角色,我会一言不发,但这只是另一个解决方案,没有恶意。所以,您说我入侵了自己的网站,还是无法共享核心文件中的代码?
– Dragan Nikolic
16年9月6日在17:36
好吧,这是您的网站,您可以编辑任何内容-甚至是核心文件。但是,如果您更新Wordpress,网络将中断。
–浣熊
16-09-22在0:08
评论
这样可行!谢谢,彼得!如果不太熟练的技术人员正在寻找相同的解决方案:将Pieter的代码添加到functions.php文件中就可以了!
–尼克
2015年2月27日在21:05
在子主题中执行此操作,以使您的更改不会在主题更新时丢失。
–于尔根·保罗(JürgenPaul)
16年8月19日在7:01
这很好用,但是缺少档案和自定义分类法的情况。
–JacobTheDev
16年11月23日在16:57
请参阅Ben Gillbanks对所有职位类型档案和分类法的解决方案。
– Dan Knauss
18年1月27日在5:54
刚刚添加了对CPT存档的支持:)
– Maxwell s.c
3月9日20:43