حسين محمد الباز نشر 11 مارس 2021 أرسل تقرير نشر 11 مارس 2021 ما هو admin-post.php و admin-ajax.php اقتباس
0 إسلام عبدالعزيز نشر 11 مارس 2021 أرسل تقرير نشر 11 مارس 2021 (معدل) هذه ملفات أساسية في شفرة مصدر WordPress الأصلية. يتم استخدامها في النماذج (forms) لتقديم طلبات نشر (POST requests) مصدق عليها (authenticated). إذا كنت تقوم بإنشاء Theme أو Plugin، فستحتاج بالتأكيد إلى حفظ شيء ما على الخادم. يجب أن تتم عمليات الكتابة هذه بأمان باستخدام admin-post.php و admin-ajax.php. عند إجراء طلب نشر إلى خادم، يمكن أن يؤدي الطلب إلى إعادة تحميل الصفحة، أو يمكنك البقاء على نفس الصفحة، والحصول على ردك باستخدام JavaScript. لبدء تنفيذ طلب نشر أساسي، أنشئ نموذجًا باستخدام HTML، وعيِّن الـ action attribute على النحو التالي: <form method="post" action="<?php echo admin_url( 'admin-post.php' ); ?>"> <input type="text" name="theme_color" id="theme_color" required /> <button type="submit" class="button-primary">Save</button> </form> <?php add_action( 'admin_post_theme_color', 'wp_theme_color' ); function wp_theme_color() { // سيكون متاحاً لك هنا كل المعلومات من النموذج // مثلاً: يمكنك الحصول على لون الثيم وعرضه للمستخدم $theme_color = $_REQUEST['theme_color']; } بالنسبة إلى admin-ajax.php، أو طلبات الـ AJAX عموماً، فيجب عليك استخدام JavaScript + jQuery. الفكرة نفسها هي admin-post.php، ولكن مع بعض التغيرات البسيطة وهي أننا لا نريد عمل reload للصفحة عند عمل submit لنموذج الـ HTML. أولاً، يجب عليك عمل تسجيل ملف الـ JavaScript الذي سيحتوي على كود الـ AJAX. <?php add_action( 'admin_enqueue_scripts', 'mywp_enqueue_scripts' ); function mywp_enqueue_scripts() { wp_enqueue_script( // هذا هو اسم الملف لنتمكن من ادخاله في الصفحات 'my-ajax-script', // هذا هو مكان الملف بداخل مجلد البلجن plugins_url( '/js/query.js' ), // هنا نحن نطلب من ووردبريس ان يقوم بتحميل مكتبة // jQuery قبل الملف array( 'jquery' ) ); // تحميل متغيرات بداخل الجافاسكريبت wp_localize_script( // هذا اسم الملف الذي قمنا بتسجيلة فوق 'my-ajax-script', // ذلك سيكون الكائن الذي سيحتوي على المتغيرات 'ajax_object', array( // Access like: ajax_object.ajax_url 'ajax_url' => admin_url( 'admin-ajax.php' ), // Access like: ajax_object.theme_color 'theme_color' => 'Red' ) ); } وطبعاً، لا تنسى أن تمنع السلوك الإفتراضي للنموذج من داخل ملف الجافاسكريبت. ستؤدي جميع نماذج HTML إلى إعادة تحميل الصفحة ما لم يتم منعها على النحو التالي: // File: query.js (function( $ ) { $( '#form' ).submit( function(event) { // إمنع النموذج من القيام بعمل إعادة تحميل للصفحة event.preventDefault(); // // أكتب باقي الكود هنا // } ); })( jQuery ); تم التعديل في 11 مارس 2021 بواسطة إسلام عبدالعزيز تعديل كلمة اقتباس
السؤال
حسين محمد الباز
ما هو admin-post.php و admin-ajax.php
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.