为什么wp_title过滤器根本不起作用?

我知道还有其他类似问题, 但找不到可靠的答案。所以:

首先激活事物(简化代码):

add_action( 'after_setup_theme', 'theme_setup' );

function theme_setup() {

add_theme_support('title-tag');

}

其次, 从header.php中删除标题标签。

第三, 在页面模板上, 在调用get_header()之前, 添加如下内容:

  add_filter('wp_title', 'set_custom_title', 10, 3);

function set_custom_title($title, $sep, $seplocation){

return 'test';

}

嗯, 在任何模板(页面, 档案, 自定义分类法或帖子类型档案)中, 这根本都不起作用。没什么。 WordPress本身会生成标题。

为什么?难道我做错了什么?请注意, 这段代码曾经可以使用:在其他站点/主题中使用。

这可能是wp5.2.0的问题吗?

#1

对于仍然存在wp_title过滤器问题的任何人, 我建议添加更高的优先级值。较高的优先级值将确保你的过滤器已执行, 不会被主题或安装的插件中​​的其他过滤器覆盖。请参见以下内容:(参考:https://developer.wordpress.org/reference/functions/add_filter/)

  // the 9999999 priority value will force this filter to be executed closer to the end.  A lower number corresponds with earlier execution

add_filter('wp_title', 'set_custom_title', 9999999, 3);

function set_custom_title($title, $sep, $seplocation){

return 'test';

}

#2

因此, 感谢@Vel, 答案是重新添加了标题标签(即使在以前的wp版本中>直到知道你必须从头删除它的哪个版本为止)。

目前适用于我的工作代码:

//functions.php

add_action( 'after_setup_theme', 'theme_setup' );

function theme_setup() {

add_theme_support('title-tag');

}

//header.php

<title><?php wp_title('|', true, 'right'); ?> | <?php echo get_bloginfo('name') ?></title>

//page templates

$window_title = // do something

add_filter('wp_title', function($title, $sep, $seplocation) use($window_title){ return $window_title; }, 10, 3);

#3

尝试使用以下代码-

add_filter('document_title_parts', function($titles){

return array('title' => 'Custom Title');

});

以上是 为什么wp_title过滤器根本不起作用? 的全部内容, 来源链接: www.h5w3.com/200947.html

回到顶部