簡體   English   中英

WordPress插件管理頁面-在鏈接的php文件中使用WordPress函數

[英]WordPress plugin admin page - using WordPress function in linked php file

我一直在開發一個非常簡單的WordPress插件,並想對頁面上的某些字段進行實時驗證,這就是我遇到的問題。 我一直在到處尋找有效的方法,而我根本無法使其正常工作。

我一直在嘗試使Ajax正常運行,並且我知道我缺少明顯的東西,但我無法弄清楚。

主要功能文件包括用於注冊我的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';
   }
}

顯然,我現在只是使用警報來確保已正確檢查數據。

如果我取出WordPress username_exists函數,然后回顯一個字符串,它就可以正常工作。 但是,如果使用username_exists,它將創建500個內部服務器錯誤。 我需要知道如何獲取此外部validation.php文件來識別WordPress功能(我認為),到目前為止,我所發現的任何方法都無法正常工作。

感謝您的閱讀...很抱歉為您提供冗長的解釋,我只是想確保所有上下文都在這里,所以才有意義(我希望!)!

干杯,馬特

我在Wordpress Answers上問了同樣的問題-https: //wordpress.stackexchange.com/questions/20915/wordpress-plugin-admin-page-using-wordpress-function-in-linked-php-file

我認為最好只鏈接到對我有幫助的答案=)謝謝。

您在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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM