我尝试创建一个年份数组,它可以在我的模板文件中使用,也可以在函数中的至少一个其他函数中使用。php。
function get_the_years()
{
global $year_arr = range(2001, date(\'Y\'));
return $year_arr;
}
然后我想在一个函数中使用它,该函数在自定义分类法“year”中为每年创建一个术语。
function create_year_terms() {
foreach($year_arr as $value){
$term = term_exists($value, \'year\');
if ($term !== 0 && $term !== null) {
echo $value . \' category exists!\';
}
else { wp_insert_term(
$value, // the term
\'year\', // the taxonomy
array(
\'description\'=> \'The name of a year\',
\'slug\' => $value )
);
echo\'term \'. $value . \' created\';
}
}
}
并尝试将此函数附加到wp\\u登录挂钩
add_action(\'wp_login\', \'create_year_terms\');
我试着让我的hoeworks工作,我想我理解“某物”,但我有点害怕通过在我的函数中放入错误的东西来杀死某些东西。php,请原谅我的问题。
最合适的回答,由SO网友:Sunyatasattva 整理而成
为了访问中定义的变量global
范围,您必须使用global
关键字,无论您想在哪里再次调用它。
在您的情况下,函数create_year_terms()
必须调用global $year_arr
在其范围内。
此外,您始终可以在global
通过使用$GLOBALS
将变量名称作为key
, 因此:
$GLOBALS["year_arr"]
更新挂钩决策:首先,最好将此类代码放在插件中,而不是放在主题函数中。其次,把它挂上
init
; 或者为你的插件注册一个激活挂钩,然后可能使用
wp_schedule_event 自定义间隔为一年。
……但话说回来,这真的有必要吗?
SO网友:tfrommen
首先,你必须在你想要访问它的范围内定义一个全局变量,这意味着在你的函数之外(甚至在类之外——如果你有一个的话)。
其次,据我所知,您必须首先“呈现”一个全局变量,然后在新行中设置其值:
global $myvar;
$myvar = "whatever";
在函数中,在使用变量之前,必须将其再次声明为全局变量。否则,它将只是一个局部变量,与来自“外部”的全局(但尚未可知)变量同名。
你到底想用这个函数做什么?你知道那个钩子吗?
wp_login
已弃用-使用wp_signon
. 但我不明白你想做什么。。。