我正在尝试修改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\' );
因此,这些是我试图让它工作的一些事情,或者更确切地说,是为了测试我是否能够修改标题。我相信有一个简单的解决方案,我犯了一些愚蠢的错误。感谢您抽出时间。
最合适的回答,由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;
}
);