gpt4 book ai didi

php - 设置 wp_title 以更改插件的标题标签?

转载 作者:可可西里 更新时间:2023-11-01 12:51:23 25 4
gpt4 key购买 nike

我创建了一个 WP 插件,它使用查询字符串根据访问者的选择提取页面数据。显然,这会“模拟”其他页面,但页面标题不会从 WP Admin 中设置的标题更改。

我一直在尝试连接到 wp_title 以动态更改标题标签,但无法正常工作。

以下函数有效:

public function custom_title($title) {
return 'new title';
}
add_filter( 'wp_title', array($this, 'custom_title'), 20 );
// changes <title> to 'new title'

一旦我尝试将变量传递给它,它就会失败。

public function custom_title($title, $new_title) {
return $new_title;
}

WordPress 提示它缺少第二个参数,我想这是有道理的,因为该函数是在页面加载时调用的...我希望我可以做类似 $this->custom_title($title, 'new title); 在我的插件中,但它看起来不太可能?

我把它贴在这里是因为我认为这是一个普遍的 PHP 类问题。

我可以全局化一个返回的变量吗?我想从另一个函数的查询中返回“标题”列,例如 $query->title

函数运行时从数据库返回数据

public function view_content()
{
$query = $this->db->get_row('SELECT title FROM ...');
$query->title;
}

我现在需要将 $query->title 设置为页面标题。

public function custom_title()
{
if($query->title)
{
$new_title = $query->title;
}
}

最佳答案

看来您可能误解了过滤器机制的工作原理。 filter 是 WordPress 在特定时间使用特定参数调用并检索结果的函数。这是对 WordPress 过滤器的一个不错的介绍:http://dev.themeblvd.com/tutorial/filters/

您可能还想特别查看 wp_title 过滤器的文档页面,这样您就可以了解您的函数应该期望哪些参数:https://codex.wordpress.org/Plugin_API/Filter_Reference/wp_title

执行您想要的操作的代码如下所示:

public function __construct() {
//...
add_filter( 'wp_title', array($this, 'custom_title'), 20);
}

public function view_content() {

$query = $this->db->get_row('SELECT title FROM ...');
$this->page_title = $query->title;
}

public function custom_title($title) {

if ($this->page_title) {
return $this->page_title;
}

return $title;
}

关于php - 设置 wp_title 以更改插件的标题标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31441802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com