Страница администратора плагина WordPress - использование функции WordPress в связанном php-файле - PullRequest
0 голосов
/ 24 июня 2011

Я разрабатывал довольно простой плагин для 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 (я думаю), и ничего из того, что я нашел до сих пор, не будет работать.

Спасибо за чтение ... извините за длинное объяснение, я просто хотел убедиться, что весь контекст был там, так что это имело смысл (я надеюсь!)!

Ура, Мэтт

Ответы [ 2 ]

1 голос
/ 26 июня 2011

Я задал тот же вопрос на Wordpress Ответы - https://wordpress.stackexchange.com/questions/20915/wordpress-plugin-admin-page-using-wordpress-function-in-linked-php-file

Я подумал, что лучше всего просто дать ссылку на ответ, который мне помог =) Спасибо всем.

0 голосов
/ 24 июня 2011

Вам не хватает закрывающей скобки в функции 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...