如何设置模板wordpress页面的页面标题?

时间:2015-08-01 12:48:45

标签: php wordpress templates

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

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

但我需要从query_vars assignPageTitle传递我的$wp_query->query_vars['claim_id']函数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->query_vars['claim_id']null

我必须完全不了解这些过滤器,如何才能将标题设置为getTitle($wp_query->query_vars['claim_id'])的输出?

1 个答案:

答案 0 :(得分:1)

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

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

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