gpt4 book ai didi

php - wp_title 过滤器对 <title> 标签没有影响

转载 作者:技术小花猫 更新时间:2023-10-29 12:36:10 26 4
gpt4 key购买 nike

我刚刚在我的主题 functions.php 文件中添加了以下过滤器:

function change_the_title() {
return 'My modified title';
}
add_filter('wp_title', 'change_the_title');

在我的 header.php 中:

<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
<meta id="viewport" name="viewport" content="width=device-width">
<link rel="profile" href="http://gmpg.org/xfn/11">
<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>">
<?php wp_head(); ?>
</head>
<body <?php body_class();?>>

然后,我发现我的页面标题没有改变!并且标题标签被注入(inject)到wp_head函数中。

此外,如果我在 header 中手动调用函数 wp_title,它会返回预期值。

怎么了?我该如何解决?


补充:我的WordPress版本是4.4。

最佳答案

终于发现是WordPress核心代码被改了,看下面这段代码。

/**
* Displays title tag with content.
*
* @ignore
* @since 4.1.0
* @since 4.4.0 Improved title output replaced `wp_title()`.
* @access private
*/
function _wp_render_title_tag() {
if ( ! current_theme_supports( 'title-tag' ) ) {
return;
}

echo '<title>' . wp_get_document_title() . '</title>' . "\n";
}

所以,4.4之后,核心不注入(inject)wp_title结果进入标题 <title>标记,但使用新函数做同样的事情 wp_get_document_title .

因此,我们可以通过以下方式做同样的事情:

1。直接改标题:

add_filter('pre_get_document_title', 'change_the_title');
function change_the_title() {
return 'The expected title';
}

2。过滤标题部分:

add_filter('document_title_parts', 'filter_title_part');
function filter_title_part($title) {
return array('a', 'b', 'c');
}

有关更多信息,请在此处查看详细信息:https://developer.wordpress.org/reference/functions/wp_get_document_title/

PS: Looking into the source of function wp_get_document_title is a good idea, the hooks inside which tells a lot.

关于php - wp_title 过滤器对 &lt;title&gt; 标签没有影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34266520/

26 4 0
文章推荐: linux - IPC ://and concurrency 上的 ZeroMQ REQ/REP
文章推荐: css - 无法将
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com