个性化阅读
专注于IT技术分析

为什么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');
});
赞(0)
未经允许不得转载:srcmini » 为什么wp_title过滤器根本不起作用?

评论 抢沙发

评论前必须登录!