修改WordPress页面标题(<Head></Head>)

时间:2020-07-29 作者:Still Ready

我正在尝试修改WordPress页面标题。然而,我对WordPress函数、挂钩(过滤器和操作)等都是相当陌生的。

我能做到的是在<body>. 我还可以更改页面标题(<head>), 但不要修改它。E、 g.:

原始页面标题:
我的房子是红色的

修改后的页面标题(|->;用于单独的示例):
我的房子是绿色的|我的房子是红色和蓝色的

因此,我想添加或删除页面标题中的特定字符或数字/整数。要明确我到底想实现什么目标:

我想挂接我(自定义帖子类型)页面的原始页面标题和;“过滤器”;我头衔的前三个数字。

自定义帖子类型的标题已编号,如下所示:

主要X类100子类X子类101子类01 X子类200子类Y子类。。。依此类推,我更改了WordPress的标题,这样我的自定义帖子类型就可以正确排序,以便进行后退/前进导航。我使用的模块本身无法对自定义帖子类型进行排序。

因此,我不希望在我的页面标题前有任何数字(总是三个数字)。我计划;“过滤器”;通过使用(其中一个php函数)将其删除:

$x=ltrim($x,“示例123”)

  • $b=子项($a,3)

    我进一步使用了以下WordPress函数/过滤器挂钩:

    function change_page_title( $title ) {
        return $title;
    }
    add_filter( \'pre_get_document_title\', \'change_page_title\' );
    
    以及

    function change_page_title( $title ) {
        $title[\'title\'] = \'Changed title\';
    }
    add_filter( \'document_title_parts\', \'change_page_title\' );
    
    +++
    因此,如果我的问题已经有了解决方案,我很抱歉,但我找不到任何解决方案,目前我无法独自解决。因此,我希望你能帮助我。另外,如果您有一个很好的建议,希望在WordPress开发(视频、课程等资源)方面做得更好,我将不胜感激。我知道HTML、CSS、JS,对编程和PHP也有基本的了解
    ++

    我试着修改上述函数,就像这样(还有更多,但都不起作用):

    function change_page_title( $title ) {
        return $title;                     // works as expected
        // return \' test\';                 // works as expected
        // return $title . \' new title\';   // doesn\'t work
    
        // $new = $title;
        // $new2 = $title . \' test2\';
        // return $new;                    // seem also to work
        // return $new2;                   // doesn\'t work
    }
    add_filter( \'pre_get_document_title\', \'change_page_title\' );
    
    因此,这些是我试图让它工作的一些事情,或者更确切地说,是为了测试我是否能够修改标题。我相信有一个简单的解决方案,我犯了一些愚蠢的错误。

    感谢您抽出时间。

  • 1 个回复
    最合适的回答,由SO网友:Jacob Peattie 整理而成

    阅读有关过滤器的文档非常重要。的文档pre_get_document_title 说(强调我的):

    筛选文档标题before it is generated.

    $title
    (字符串)文档标题。Default empty string.

    所以当使用pre_get_document_title, 标题尚未设置,因此执行此操作时:

    return $title . \' new title\';
    
    $title 如文档所述,是一个空字符串,因此结果将是:

    \' new title\'
    
    因此,如果要修改现有标题,需要使用document_title_parts, 您将修改的位置$title[\'title\']:

    add_filter(
        \'document_title_parts\',
        function( $title ) {
            $title[\'title\'] = substr( $title[\'title\'], 4 ); // This needs to be 4, to account for the space.
    
            return $title;
        }
    );