当数据库查询在我的网站上失败时,我想向用户显示一条通用错误消息。我是wordpress的新手,不知道该怎么做。我的函数中有以下函数。当用户提交表单时调用的php:
function mytheme_insert_new_team() {
$name = $_POST[\'team_name\'];
$type = $_POST[\'team_type\'];
global $wpdb;
$table_name = "teams";
$response = $wpdb->insert($table_name, array(
\'team_name\' => $name,
\'team_type\' => $type
),array(
\'%s\',
\'%s\'));
if(!$response){
//an error has occured
}else{
//success, redirect user to the next step.
mytheme_redirect_invite_others($name);
}
}
我想回应一下
"<p class=\'error\'>An error occured.</p>"
但它没有起作用。我也尝试过使用$errors global,但我似乎也无法做到这一点。我想将错误发送回表单所在的页面,并将其显示在表单上方。我该怎么做?
如果需要,很乐意提供更多信息。
提前感谢您的帮助!
SO网友:Breus
您不应该使用$errors
在全球范围内,但在WordPress开发中使用挂钩。由于您是WP开发的新手,我将简要解释它是如何工作的。
您应该做什么:
创建一个新的钩子,或使用一个现有的钩子,该钩子位于希望此错误出现在模板文件中的位置添加mytheme_insert_new_team
此挂钩的函数add_action
函数可在此处找到其语法:https://code.tutsplus.com/tutorials/adding-custom-hooks-in-wordpress-custom-actions--cms-26454
在该页的以下部分中,也可以找到关于其具体工作原理的良好解释:Understanding WordPress Actions
然后是小节:Defining Custom Actions
.
以下是我从该特定网页借用的相应代码:
<?php
/**
* Define the action and give functionality to the action.
*/
function tutsplus_action() {
do_action( \'tutsplus_action\' );
}
/**
* Register the action with WordPress.
*/
add_action( \'tutsplus_action\', \'tutsplus_action_example\' );
function tutsplus_action_example() {
echo \'This is a custom action hook.\';
}
现在,您已经定义了操作(挂钩),并使用代码的第二部分将功能注册到此挂钩。
接下来,您要在正确的位置调用此挂钩,如下所示:
tutsplus_action()