首页>建站相关>wp_get_document_title自定义页面title标签

wp_get_document_title自定义页面title标签

因为服务器配置的问题,之前一直用的3.6.1版本的wordpress,眼看这阿里云服务器快要到期,暂时也不准备续费,想把wp博客搬到目前所使用的天翼云服务器上,天翼云的服务器安装的php版本是7.2,尝试了多个wordpress 3.x版本均无法正确识别,于是只能换成了4.5.28版本的wordpress。

这几天一边查百度,一边复制粘贴尝试订制一个自用的主题,才进入head部分就已经举步维艰,看了一下空白页的源代码,3.6.1版本正常生效的tltle标签,在4.5.28版本里变成了空白。

原因是wp_title( )这个函数已经被放弃使用了,自4.4.0版本之后,wordpress提供了新的wp_get_document_title( )函数来生成tltle标签。尝试了一下效果,默认的连接符号也从“|”变成了“-”。

wp_get_document_title()的源码

function wp_get_document_title() {

    /**
     * Filters the document title before it is generated.
     *
     * Passing a non-empty value will short-circuit wp_get_document_title(),
     * returning that value instead.
     *
     * @since 4.4.0
     *
     * @param string $title The document title. Default empty string.
     */
    $title = apply_filters( 'pre_get_document_title', '' );
    if ( ! empty( $title ) ) {
        return $title;
    }

    global $page, $paged;

    $title = array(
        'title' => '',
    );

    // If it's a 404 page, use a "Page not found" title.
    if ( is_404() ) {
        $title['title'] = __( 'Page not found' );

        // If it's a search, use a dynamic search results title.
    } elseif ( is_search() ) {
        /* translators: %s: Search query. */
        $title['title'] = sprintf( __( 'Search Results for “%s”' ), get_search_query() );

        // If on the front page, use the site title.
    } elseif ( is_front_page() ) {
        $title['title'] = get_bloginfo( 'name', 'display' );

        // If on a post type archive, use the post type archive title.
    } elseif ( is_post_type_archive() ) {
        $title['title'] = post_type_archive_title( '', false );

        // If on a taxonomy archive, use the term title.
    } elseif ( is_tax() ) {
        $title['title'] = single_term_title( '', false );

        /*
        * If we're on the blog page that is not the homepage
        * or a single post of any post type, use the post title.
        */
    } elseif ( is_home() || is_singular() ) {
        $title['title'] = single_post_title( '', false );

        // If on a category or tag archive, use the term title.
    } elseif ( is_category() || is_tag() ) {
        $title['title'] = single_term_title( '', false );

        // If on an author archive, use the author's display name.
    } elseif ( is_author() && get_queried_object() ) {
        $author         = get_queried_object();
        $title['title'] = $author->display_name;

        // If it's a date archive, use the date as the title.
    } elseif ( is_year() ) {
        $title['title'] = get_the_date( _x( 'Y', 'yearly archives date format' ) );

    } elseif ( is_month() ) {
        $title['title'] = get_the_date( _x( 'F Y', 'monthly archives date format' ) );

    } elseif ( is_day() ) {
        $title['title'] = get_the_date();
    }

    // Add a page number if necessary.
    if ( ( $paged >= 2 || $page >= 2 ) && ! is_404() ) {
        /* translators: %s: Page number. */
        $title['page'] = sprintf( __( 'Page %s' ), max( $paged, $page ) );
    }

    // Append the description or site title to give context.
    if ( is_front_page() ) {
        $title['tagline'] = get_bloginfo( 'description', 'display' );
    } else {
        $title['site'] = get_bloginfo( 'name', 'display' );
    }

    /**
     * Filters the separator for the document title.
     *
     * @since 4.4.0
     *
     * @param string $sep Document title separator. Default '-'.
     */
    $sep = apply_filters( 'document_title_separator', '-' );

    /**
     * Filters the parts of the document title.
     *
     * @since 4.4.0
     *
     * @param array $title {
     *     The document title parts.
     *
     *     @type string $title   Title of the viewed page.
     *     @type string $page    Optional. Page number if paginated.
     *     @type string $tagline Optional. Site description when on home page.
     *     @type string $site    Optional. Site title when not on home page.
     * }
     */
    $title = apply_filters( 'document_title_parts', $title );

    $title = implode( " $sep ", array_filter( $title ) );

    /**
     * Filters the document title.
     *
     * @since 5.8.0
     *
     * @param string $title Document title.
     */
    $title = apply_filters( 'document_title', $title );

    return $title;
}

标签: wordpress

移动端可扫我直达哦~

推荐阅读

wordpress 2024-04-01

Wordpress的过滤器add_filter与apply_filters

对Wordpress的这个filters的概念一直是一知半解(其实半解也算不上,只能算知道有这么个函数),最近遇到了Wordpress的头像问题,无可避免的又遇到过滤器。刚好在CSDN上看到某篇文章写得比较清楚,摘录顺便自己动手尝试一...

建站相关 wordpress

wordpress 2024-03-28

Wordpress中Gravatar头像不显示的解决方案

Wordpress是个老牌的博客软件,版本迭代至今,几乎已经是市占率最高的一款建站工具。一直觉得一款软件,它的用户越多,使用就会越人性化,因为用户的使用水平不同,会遇到不同层次的问题,通过收集与筛选用户反馈,更可以有的放矢的去完善软件...

建站相关 wordpress

wordpress 2023-09-05

关于get_the_post_thumbnail函数

与the_post_thumbnail直接输出不同,get开头的函数,包括但不限于get_the_post_thumbnail,往往会返回一些值。在需要对这些值进行操作,比如转存或修改时,我们需要使用get系的函数。<?php ...

建站相关 wordpress

wordpress 2023-06-19

save_post的可接受参数与add_action语法

想在主页的文章列表中,为每一篇文章配置一张缩略图,之前修改twentyten主题的时候尝试过类似的实现,只是某天一个不小心“rm -rf wordpress”,连主题带所有图片都被删得一干二净。只记得是一个较为复杂的判断语句,先判断有...

建站相关 wordpress

wordpress 2023-06-10

customize自定义项目被保存后的后续处理

在自定义项目中设置了一组幻灯片的数据,本来准备直接在输入完成后对数据进行重组,利用换行符号分割数据,利用“||”符号区分连接与图片地址,在保存设置项时将输入数据直接组装为html语句。实际测试过程中极其不方便,一有更改就需要重新输入源...

建站相关 wordpress

wordpress 2023-05-07

Wordpress添加设置项目后如何修改项目值

使用add_option添加了一部分自定义设置,采用了数组的形式。希望其中部分设置能在保存或者修改文章之后自动获取新数据并更新,所以准备在“save_post”(编辑或发布后)执行一个更新数据的操作。Wordpress的函数命名很规范...

建站相关 wordpress

wordpress 2023-05-07

Wordpress生成标签云的函数wp_tag_cloud

很多站点上都会展现彩色的标签云,从个人浏览经验来看,相对于分类目录,文章标签反而更适合用户快速定位到意向查看的文章。一方面目录分类范围较大,一方面目录一般位于页眉,而标签云往往会被布局于页面底部,下意识的就近原则,也会让标签得到更多的...

建站相关 wordpress

wordpress 2023-04-30

wordpress自定义组件add_setting的回调测试

在后台设置了一个站点logo图片地址的参数,考虑到后期可能更换,有手动输入的需求,所以准备设计成仅输入文件名称,指定文件的文件夹,当用户输入后由系统组装文件夹地址与图片名称,从而得到完整的图片地址。虽然知道add_setting支持回...

建站相关 wordpress