【问题标题】:how do I set the page title for a template wordpress page?如何设置模板 wordpress 页面的页面标题?
【发布时间】:2015-08-01 21:17:26
【问题描述】:

我对 wp 还很陌生。我发现其他人在模板顶部使用此过滤器代码来设置该页面的标题:

function assignPageTitle(){
  return "Custome Title";
}
add_filter('wp_title', 'assignPageTitle');

但我需要从query_vars $wp_query->query_vars['claim_id'] 传递我的assignPageTitle 函数1 参数,而我的getTitle 函数会根据内容的ID 构建标题。我想这样的事情,但它不起作用。 $wp_query->query_vars['claim_id'] 在此函数内部调用时为 null:

function assignPageTitle(){
  return getTitle($wp_query->query_vars['claim_id']);
}
add_filter('wp_title', 'assignPageTitle'); 

我看到有些人使用带有这些过滤器的参数,如下所示:

function assignPageTitle($claim_id){
  return getTitle($claim_id);
}
add_filter('wp_title', 'assignPageTitle',10,1); 

但这是我非常困惑的地方。我可以在哪里将 claim_id 变量传递给assignPageTitle($claim_id) 函数?将assignPageTitle(312) 放在该过滤器代码下没有任何作用,而wp_title(234) 只是在模板页面上的任何位置回显类似字符串的标题。

我也尝试只编辑标题所在的 functions.php:

<title><?php getTitle($wp_query->query_vars['claim_id']);?></title>

但是$wp_query-&gt;query_vars['claim_id'] 在函数中被调用时是null。

我一定完全不了解这些过滤器,我怎样才能将标题设置为getTitle($wp_query-&gt;query_vars['claim_id']) 的输出?

【问题讨论】:

  • 尝试在assignPageTitle() 函数中添加global $wp_query; 作为第一行。
  • 是的,就是这么简单

标签: php wordpress templates


【解决方案1】:

$wp_query 是一个全局变量。要访问代码中的全局变量,首先需要使用global $variable; 将变量全局化。在您的情况下,这意味着:

function assignPageTitle(){
    global $wp_query;
    return "Custome Title";
}
add_filter('wp_title', 'assignPageTitle');

关于全局 WordPress 变量 in the Codex 的更多信息。

【讨论】:

    猜你喜欢
    • 2022-10-06
    • 1970-01-01
    • 1970-01-01
    • 2013-03-20
    • 2010-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多