我对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'])
的输出?
答案 0 :(得分:1)
$wp_query
是一个全局变量。要访问代码中的全局变量,首先需要使用global $variable;
全局化变量。在您的情况下,这意味着:
function assignPageTitle(){
global $wp_query;
return "Custome Title";
}
add_filter('wp_title', 'assignPageTitle');
有关于全局WordPress变量in the Codex的更多信息。