首页 / WordPress建站 / WordPress开发 / WordPress 移除归档页面的“分类:”,即自定义the_archive_title输出
Loading收藏0

今天有朋友问了一个问题,如何移除归档页面分类或标签名称前面的“分类:”和“标签:”,如下图:

首先,我们要先了解这两个字是通过什么函数调用出来的,在比较正规的主题中,一般会用以下代码在归档页面输入标题:

1
<?php the_archive_title('<h1 class="page-title">','</h1>');?>

而这个 the_archive_title() 函数的代码为:

1
2
3
4
5
6
7
function the_archive_title($before='',$after=''){$title= get_the_archive_title();
 
    if(!empty($title)){echo$before.$title.$after;}}

可以看到,调用的是  get_the_archive_title() 的内容,我们再来看看这个  get_the_archive_title() 的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
function get_the_archive_title(){if( is_category()){/* translators: Category archive title. %s: Category name */$title=sprintf( __('Category: %s'), single_cat_title('',false));}elseif( is_tag()){/* translators: Tag archive title. %s: Tag name */$title=sprintf( __('Tag: %s'), single_tag_title('',false));}elseif( is_author()){/* translators: Author archive title. %s: Author name */$title=sprintf( __('Author: %s'),'<span class="vcard">'. get_the_author().'</span>');}elseif( is_year()){/* translators: Yearly archive title. %s: Year */$title=sprintf( __('Year: %s'), get_the_date( _x('Y','yearly archives date format')));}elseif( is_month()){/* translators: Monthly archive title. %s: Month name and year */$title=sprintf( __('Month: %s'), get_the_date( _x('F Y','monthly archives date format')));}elseif( is_day()){/* translators: Daily archive title. %s: Date */$title=sprintf( __('Day: %s'), get_the_date( _x('F j, Y','daily archives date format')));}elseif( is_tax('post_format')){if( is_tax('post_format','post-format-aside')){$title= _x('Asides','post format archive title');}elseif( is_tax('post_format','post-format-gallery')){$title= _x('Galleries','post format archive title');}elseif( is_tax('post_format','post-format-image')){$title= _x('Images','post format archive title');}elseif( is_tax('post_format','post-format-video')){$title= _x('Videos','post format archive title');}elseif( is_tax('post_format','post-format-quote')){$title= _x('Quotes','post format archive title');}elseif( is_tax('post_format','post-format-link')){$title= _x('Links','post format archive title');}elseif( is_tax('post_format','post-format-status')){$title= _x('Statuses','post format archive title');}elseif( is_tax('post_format','post-format-audio')){$title= _x('Audio','post format archive title');}elseif( is_tax('post_format','post-format-chat')){$title= _x('Chats','post format archive title');}}elseif( is_post_type_archive()){/* translators: Post type archive title. %s: Post type name */$title=sprintf( __('Archives: %s'), post_type_archive_title('',false));}elseif( is_tax()){$tax= get_taxonomy( get_queried_object()->taxonomy);/* translators: Taxonomy term archive title. 1: Taxonomy singular name, 2: Current taxonomy term */$title=sprintf( __('%1$s: %2$s'),$tax->labels->singular_name, single_term_title('',false));}else{$title= __('Archives');}
 
    /**
     * Filters the archive title.
     *
     * @since 4.1.0
     *
     * @param string $title Archive title to be displayed.
     */return apply_filters('get_the_archive_title',$title);}

好长一段代码,注意看倒数第二行代码为:

1
return apply_filters('get_the_archive_title',$title);

此处应用了一个过滤钩子,也就是我们可以通过这个钩子修改 get_the_archive_title() 的内容,从而实现修改 the_archive_title() 输出的内容。

要实现刚才我们说的去掉归档页面的 “分类:”和“标签:”,可以使用下面的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function my_theme_archive_title($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_post_type_archive()){$title= post_type_archive_title('',false);}elseif( is_tax()){$title= single_term_title('',false);}
 
    return$title;}
 
add_filter('get_the_archive_title','my_theme_archive_title');

将该代码添加到当前使用的主题的 functions.php 文件即可。

你可能还喜欢

1 条评论

发表评论

我们是国内最靠谱的WordPress建站团队!

专业承接WordPress网站建设及运维、WordPress主题和插件开发、汉化、安装等服务

联系电话:0773-8282430

查看所有服务项目

视频教程:点击联系我们
定制开发:点击联系我们
售后支持:点击联系我们
商务合作:点击联系我们

固话:0773-8282-430

手机:133-0773-9152

微信扫一扫,联系我们