php - 在链接的php文件中,WordPress插件管理页面使用WordPress函数

  显示原文与译文双语对照的内容
0 0

我一直在开发一个非常简单的WordPress插件,并想对页面上的某些字段进行实时验证。 我一直在寻找一些有效的东西,而且我只是无法使用它。

我试图让ajax正常工作,我知道我丢失了一些明显的东西,我只是不能解决。

main函数文件包含了 register 我的js文件。

function on_screen_validation() {
 wp_enqueue_script("field_validation", path_join(WP_PLUGIN_URL, basename( dirname( __FILE__ ) )."/field-validation.js"), array( 'jquery' ) );
}
add_action( 'admin_print_scripts', 'on_screen_validation' );

js运行这里代码来捕获onblur命令并将值传递给php验证文件。

jQuery(document).ready(function() {
//run field validation on username on blur
 jQuery('.valusername').blur(function() {
 var usernameID = jQuery(this).attr('id');
 var usernameVal = jQuery('#'+usernameID).val();
 var thisFunction = 'validateUserName';
 jQuery.post("mywebaddress...validation.php",{Function: thisFunction, thevars: usernameVal}, function(data) {
 alert(data);//would update validation message here
 });
 });
});

validation.php 脚本如下所示:

if(isset($_POST['Function'])){
 call_user_func($_POST['Function'], $_POST['thevars']);
}
function validateUserName($username){ 
 if ( username_exists($username) ) {
 echo $username.' does exist'; 
 } else {
 echo $username.' doesnt exist';
 }
}

显然,我现在只是使用警报来确保正确地检查数据。

如果我取出username_exists函数,只返回一个字符串,它就能正常工作。 但使用 username_exists,它创建了 500个内部服务器错误。 我需要知道如何将这个外部 validation.php 文件设置为 recongnise WordPress函数( 我觉得),目前没有找到任何东西。

感谢读取。"。"。很抱歉,我只是想确保上下文所有的内容都有意义。

,Matt

时间:原作者:4个回答

0 0

你的validateUserName 函数中缺少一个右大括号:

function validateUserName($username) { 
 if ( username_exists($username) ) {
 echo $username.' does exist'; 
 } else {
 echo $username.' doesn't exist';
 }
}

应该工作。

但是,作为函数,最好返回一个值,并自己返回结果:

function validateUserName($username) { 
 if ( username_exists($username) ) {
 return $username.' does exist'; 
 } else {
 return $username.' doesn't exist';
 }
}
echo validateUserName($someUsername);
原作者:
...