הוספת אגקס בוורדפרס
אג'קס בוורדפרס wordpress ajax
השיטה פועלת רק בבאק אופיס ובפלאגינים בפרונט הוא תמיד מחזיר 0, לכן אם צריך משהו לפרונט הייתי מציע דווקא להשתמש באגקס רגיל וכדי לאפשר את הפקודות של וורדפרס להשתמש במדריך הזה שימוש בפקודות וורדפרס בקובץ אגקס
זהו מדריך ייחודי המלמד להוסיף אגקס בוורדפרס ע"י טריק, וכך למעשה אפשר להשתמש בדף האגקס גם בפונקציות הרגילות של וורדפרס דבר שבלתי אפשרי אם מכינים דף נפרד ל ajax.
אני יוצא מנקודת הנחה שאתם יודעים לכתוב פלגאין לוורדפרס
אם כי אפשר גם להשתמש בשיטה זו של שליחת אג'קס לא רק בפלאגין אבל בדר"כ משתמשים בפלאגין.
עכשיו אתם בוודאי תרצו להוסיף אגאקס ajax לפלאגין שלכם ב jquery ולשדרג אותו.
אפשר כמובן לעשות את זה בדרך הסטנדרטית של להכין עמוד ולשלוח לשם אגקס.
ניתן לעשות את זה באמצעות דברים שכבר בנויים בוורדפרס עם הפונקציות של וורדפרס המובנות, בצורה קצת טריקית אבל מאוד נחמד.
וזה מאפשר להשתמש בעמוד האגקס בפונקציות הרגילות של וורדפרס שאנחנו מכירים שזה בעצם הפלוס הגדול ולכן אני מדגיש שורה זו
טוב אז איך עושים את זה :
השיטה היא לשלוח את הבקשה של האגקס לעמוד admin-ajax.php ולהשתמש בהוק wp_ajax_
ובהמשך משרשרים את המחרוזת ששולחים ב action נשמע קצת מסובך אבל נראה דוגמא
- שליחת בקשת אגקס לעמוד admin-ajax
<script>
$.post(siteurl+"/wp-admin/admin-ajax.php", {action:"ak_attach", 'cookie': encodeURIComponent(document.cookie)},
function(str)
{
alert(str);
});
</script>
שימו לב שאני שולח action שבתוכו יש מחרוזת ak_attach ניתן לשלוח כל מחרוזת שרוצים ב action רק יש צורך גם בהוק לשנות לפי מה ששלחתם במחרוזת
למשל אם נשלח some_action אז ההוק שלנו יהיה
wp_ajax_some_action
2. יצירת פונקציה שמגיבה לאגקס בתוך הפלאגין ( או טמפלט) שלנו כמובן.
<?php
function ajaxResponse(){
global $wpdb; global $userdata;
get_currentuserinfo();
echo "Hello ". $userdata->user_login;
exit;
}
3. הוק שמאזין לפונקציה שמגיבה ומפעיל אותה
add_action('wp_ajax_ak_attach', 'ajaxResponse');
למי שלא יודע מזה הוק יכול לקרא עוד על מערכת ההוקים של וורדפרס פה
מגניב נחמד וקליל בהצלחה.
ניתן גם לקרא עוד בקודקס על שליחת אגקס בוורדפרס
https://codex.wordpress.org/AJAX_in_Plugins