我有一个自定义的注册表单, 该表单利用admin_post_ {action}钩子调用一个函数, 该函数对表单进行所有处理。 functions.php文件包含与此类似的功能。
<
?php$example = 'test';
function create_client_account(){
//check username isn't a duplicate
//check email isn't a duplicate
//scrub all data
//create an array of errorsif($errors){
global $exampleecho $example //outputs 'test'$example = new WP_Error();
$example->
add('test', $errors);
var_dump($example) //outputs WP_Error object
}}add_action( 'admin_post_create_account', 'create_client_account' );
add_action( 'admin_post_nopriv_create_account', 'create_client_account' );
?>
然后我有一个模板文件page-register.php, 我尝试在其中访问全局变量, 但是它不起作用。所有处理都是正确的, 如果我在函数中执行var_dump($ example), 则所有输出都在那里。但是, 如果我在模板文件中执行此操作, 则输出为NULL。
<
?php
global $example;
var_dump($example);
//outputs 'test'
?>
【admin_post_ {action}调用的函数中全局变量的范围】我已将问题精确定位到范围问题, 该范围问题在执行功能后不再可用, 我相信这是由于操作钩子引起的, 但我不确定。
我的问题是我该如何进行这项工作?我如何使该全局在函数外部可用。
#1首先, 你需要在函数范围之外定义变量:
<
?php
$example = 0;
function create_client_account(){
//check username isn't a duplicate
//check email isn't a duplicate
//scrub all data
//create an array of errorsif($errors){//you should set and assign this $errors somewhere too
$GLOBALS['example'] = new WP_Error();
$GLOBALS['example']->
add('test', $errors);
}
}
然后像以前一样尝试访问它
<
?php
global $example;
var_dump($example);
?>
推荐阅读
- 屏幕宽度不正确。如果删除滚动条,则变得准确
- WordPress博客中的Rogue&nbsp
- 保存WordPress主题选项输入值
- 以缓慢的顺序返回自定义分类法
- WP自适应背景缩略图
- 使用摘要[wp_trim_words()]时保留格式
- Rest API不适用于WP中帖子类型的实时状态属性
- PowerShell Get-Member 查看对象的成员列表
- PowerShell Get-Module 查看PSModulePath路径中的模块