bug*_*net 3 php wordpress yoast
上下文:WordPress 5.4.5,Yoast 3.7.1
我是一个可以访问客户端站点的插件开发人员.该网站安装了Yoast 3.7.1,我想知道这是否重要因为无论我做什么我都无法改变404页面title
.
现在在StackOverflow上的其他页面上提出了类似的问题(这里,这里和这里例如).那些回答的人询问是否header.php
正确嵌入了一个电话wp_title()
.这就是当前主题中的内容header.php
:
<title><?php wp_title( '|', true, 'right' ); ?></title>
Run Code Online (Sandbox Code Playgroud)
有趣的是,在我的404.php
页面中,wp_get_document_title()
告诉我文档标题Page not found - XXXX
即使wp_title
上面的调用指定分隔符为|
.Yoast对标题的重写已被禁用,所以我不确定那些短跑的来源.
我的插件执行REST调用,并从异地提取内容以包含在页面中.该内容的一部分是要使用的文本title
.
在以前的客户端站点上,我已经能够执行以下操作:
add_filter('wp_title', 'change_404_title');
function change_404_title($title) {
if (is_404())
{
global $plugin_title;
if (!empty($plugin_title))
{
$title = $plugin_title;
}
}
return $title;
}
Run Code Online (Sandbox Code Playgroud)
但是,在这个网站上,这是行不通的.
我试过,根据使用的WordPress版本,挂钩pre_get_document_title
过滤器,即
add_filter('pre_get_document_title', 'change_404_title');
Run Code Online (Sandbox Code Playgroud)
但再次无济于事.我正在阅读Yoast ...
小智 11
wp_title
自4.4版以来已弃用.所以我们应该使用新的过滤器pre_get_document_title
.你的代码看起来很好,但我很困惑global $plugin_title
.我宁愿请你先尝试一下
add_filter('pre_get_document_title', 'change_404_title');
function change_404_title($title) {
if (is_404()) {
return 'My Custom Title';
}
return $title;
}
Run Code Online (Sandbox Code Playgroud)
如果它不起作用,那么尝试更改优先级以便最近执行您的功能.
add_filter('pre_get_document_title', 'change_404_title', 50);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4810 次 |
最近记录: |