欢迎您光临自学哈网,只为分享网络知识教程,供大家学习参考!

「自学哈网」WordPress 移除归档页面的“分类:”,即自定义the_archive_title输出

作者 : 自学哈 本文共3619个字,预计阅读时间需要10分钟 2022-11-26 共165人阅读
也想出现在这里? 联系我们

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

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 文件即可。

本站声明:
本站所有资源来源于网络,分享目的仅供大家学习和交流!如若本站内容侵犯了原著者的合法权益,可联系邮箱976157886@qq.com进行删除。
自学哈专注于免费提供最新的分享知识、网络教程、网络技术的资源分享平台,好资源不私藏,大家一起分享!

自学哈网 » 「自学哈网」WordPress 移除归档页面的“分类:”,即自定义the_archive_title输出
也想出现在这里? 联系我们
© 2022 Theme by - 自学哈网 & WordPress Theme. All rights reserved 浙ICP备2022016594号