在Wordpress中,我有一个名为的页面模板designers.php。
加载时,它读取slug以获得唯一的ID,然后调用DB检索设计者信息。
我想使用此信息来更改页面标题,方法是使用标题标签中的设计器名称。
我已尝试add_filter在designers.php文件中使用,但无法正常工作:
add_filter('wp_title', 'set_page_title');
function set_page_title($title) {
global $brand;
return 'Designer '.$brand['name'].' - '.get_bloginfo('name');
}
Run Code Online (Sandbox Code Playgroud)
我正在猜测add_filter必须位于插件内部或functions.php文件中。
我如何才能实现自己的目标?
更新
该函数从不触发,只要我使用即可wp_title。如果将其更改为init(用于测试),则会触发该功能。
那么为什么add_filternor也不适合wp_title呢?
你几乎是对的。过滤器必须驻留在 function.php 中,并被调用以修改标题。您可以有条件地添加过滤器。使用此函数is_page_template()来确定 WordPress 是否正在渲染您的模板
尝试像这样修改你的函数:
add_filter('wp_title', 'set_page_title');
function set_page_title($title) {
global $brand;
if (is_page_template('designer.php'))
return 'Designer '.$brand['name'].' - '.get_bloginfo('name');
else
return $title;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12921 次 |
| 最近记录: |