Gần đây tôi đã làm việc trên ajax. Các hướng dẫn bạn tìm thấy trên mạng đều rất giống nhau và khá dễ thực hiện. Nhưng tôi luôn nhận được một yêu cầu xấu 400 trong ajax-admin.phphồ sơ của mình .
Sau một thời gian dài tìm kiếm và chuyên sâu, tôi đã phát hiện ra rằng đó là do thời gian tích hợp.
Nếu tôi sử dụng inithook hành động để khởi tạo script và wp_localize_scriptmọi thứ sẽ hoạt động tốt. Vì vậy, mã phải chính xác.
my-page-test-tests.php
function ajax_login_init(){
wp_register_script('ajax-login-script',get_stylesheet_directory_uri().'/js/ajax-login-script.js',array('jquery'));
wp_enqueue_script('ajax-login-script');
wp_localize_script('ajax-login-script','ajax_login_object',array('ajaxurl' => admin_url('admin-ajax.php'),'redirecturl' => 'REDIRECT_URL_HERE','loadingmessage' => __('Sending user info, please wait...')));
add_action('wp_ajax_nopriv_ajaxlogin','ajax_login');
}
if(!is_user_logged_in()){
add_action('init','ajax_login_init');
}
function ajax_login(){
//nonce-field is created on page
check_ajax_referer('ajax-login-nonce','security');
//CODE
die();
}
Nhưng nếu tôi sử dụng ví dụ wp_enqeue_scriptshook hành động, tôi luôn nhận được yêu cầu xấu.
if(!is_user_logged_in()){
add_action('wp_enqueue_scripts','ajax_login_init');
}
Vấn đề với điều này là:
Tôi muốn có các chức năng trong một tệp php bổ sung và chỉ tải chúng nếu chúng cần thiết trên một trang cụ thể. Đối với điều này tôi cần, ví dụ is_page(). Nhưng is_page()hoạt động sớm nhất khi tôi móc hàm với hàm bao gồm vào parse_querymóc hành động:
Hàm.php
function sw18_page_specific_functions(){
if(is_page('page-test')){
include_once dirname(__FILE__).'/includes/my-page-test-functions.php';
}
}
add_action('parse_query','sw18_page_specific_functions');
Vì vậy, các chức năng được nối để inithook trong my-page-test-functions.phptập tin không được kích hoạt, tôi cho rằng, bởi vì initđến trước parse_query.
Có một thực tiễn tốt nhất để tổ chức này, vì vậy nó hoạt động? Hoặc làm thế nào tôi có thể sửa admin-ajax.phpyêu cầu xấu khi sử dụng wp_enqeue_scriptshook hành động?
