"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > لماذا تعود مكالمة WordPress AJAX الخاصة بي إلى 0؟

لماذا تعود مكالمة WordPress AJAX الخاصة بي إلى 0؟

تم النشر بتاريخ 2024-11-08
تصفح:525

Why is my WordPress AJAX call returning 0?

مكالمات Ajax في WordPress: استكشاف مشكلات الإخراج وإصلاحها

دائمًا ما تُرجع مكالمة ajax 0 كإخراج، مما يجعلك في حيرة من أمرك بشأن السبب. لتصحيح هذه المشكلة، ضع في اعتبارك ما يلي:

متغير ajaxurl العام في WordPress:

يحدد WordPress متغير ajaxurl العام في الواجهة الخلفية، مما يسهل مكالمات AJAX. ومع ذلك، هذا المتغير غير متوفر في الواجهة الأمامية.

تعريف ajaxurl في الواجهة الأمامية:

لاستخدام استدعاءات AJAX في الواجهة الأمامية، تحتاج إلى تعريف متغير ajaxurl يدويًا . إحدى الطرق الفعالة هي من خلال wp_localize_script.

استخدام wp_localize_script:

بافتراض أن مكالمات AJAX موجودة في my-ajax-script.js، استخدم wp_localize_script كما يلي:

الدالة my_enqueue() { wp_enqueue_script( 'ajax-script', get_template_directory_uri() . '/js/my-ajax-script.js', array('jquery') ); wp_localize_script( 'ajax-script', 'my_ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) )); } add_action( 'wp_enqueue_scripts', 'my_enqueue' );
function my_enqueue() {
    wp_enqueue_script( 'ajax-script', get_template_directory_uri() . '/js/my-ajax-script.js', array('jquery') );
    wp_localize_script( 'ajax-script', 'my_ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
}
add_action( 'wp_enqueue_scripts', 'my_enqueue' );
يؤدي هذا إلى إنشاء كائن my_ajax_object في ملف JS الخاص بك، والذي يحتوي على ajax_url.

استخدم my_ajax_object في Javascript:

بعد ترجمة البرنامج النصي الخاص بك، استخدم ملف كائن my_ajax_object في ملف JS الخاص بك:

jQuery.ajax({
    النوع: "منشور"،
    نوع البيانات: "جسون"،
    عنوان URL: my_ajax_object.ajax_url،
    البيانات: بيانات النموذج،
    النجاح: وظيفة (رسالة) {
        console.log(msg);
    }
});
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3