קודקודייל
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
קודקודייל
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
ראשי ♦ בניית אתרים ♦ וורדפרס ופלאגינים – איך לכתוב לתוך פלאגין polylang

וורדפרס ופלאגינים – איך לכתוב לתוך פלאגין polylang

וינר יאיר 19 ביוני 2021 אין תגובות

מי שמכיר וורדפרס ויצא לו לעבוד עם ריבוי שפות ועדיין לא הכיר את wpml. אז בוודאי בחר להשתמש בפלאגין polylang.
זהו פלאגין שמאפשר לנו לייצר אתר במגוון שפות, אפילו המנוי החינמי עושה את כל האפשרויות בצורה טובה ולכן פלאגין זה קיים זמן רב ויש לו הרבה אוהדים. אישית אני גם אוהב אותו ויצא לי לאחרונה לעשות כמה שדברים מעניינים

זהו אומנם משהו שככל הנראה לא הרבה יתקלו בו אבל זהו המקרה שהיה לי:

ריבוי גדול של פוסטים בשפות שונות ויש לשייך בין הפוסטים בשפות השונות

  1. משימה לא פשוטה כי יש להכיר את האובייקט הגלובלי global  $polylang
  2. לדעת איך נראה הרישום בDB .
  3. בנוסף לזה צריך לעבוד עם wpdb שידע להביא את הפוסטים המתאימים שקשורים רק לשפה הראשית
  4. ואז למצוא על ידי לולאה את הפוסטים שאותם תרצו לקשר לאותו הפוסט.

נתחיל בצעד הראשוון : global  $polylang

global  $polylang;

הרבה פלאגינים בעיקר הפלאגינים האיכותיים מאפשרים לגשת למשתנה גלובלי . במקרה של polylang אפשר להשתמש במשתנה כמו המוצג לעיל.

משתנה זה מאפשר לנו לעשות דברים רבים ושימושים שונים בניהול השפות שלנו. ספציפית למקרה הנקודתי שאני השתמשתי בו היה לייצר שיוך בין כל 3 פוסטים מאותה השפה.

והמימוש יחסית פשוט:

global  $polylang ,  $wpdb;

$postYIs =  $wpdb->get_results("SELECT *
							FROM `wp_postmeta`
                             WHERE `meta_key` = 'kodNomen'
                             AND `meta_value`
                             NOT REGEXP '-he|-en'
                             ORDER BY `meta_key`  DESC");


foreach($postYIs as $postYI){
    
    $codeNomanQueryEn = $postYI->meta_value . '-en';
    $codeNomanQueryHe = $postYI->meta_value . '-he';

    $postENId =  $wpdb->get_results(
        "SELECT *
        FROM `wp_postmeta`
        WHERE `meta_key` = 'kodNomen'
        AND `meta_value`
        LIKE '$codeNomanQueryEn'
        ORDER BY `meta_key`  DESC");
    
    $postHEId =  $wpdb->get_results("SELECT *
    FROM `wp_postmeta` WHERE
    `meta_key` = 'kodNomen' AND
    `meta_value` LIKE '$codeNomanQueryHe' ORDER BY
    `meta_key`  DESC");

    if (isset(array_values($postHEId)[0]) && isset(array_values($postENId)[0])) {
        $polylang->model->save_translations('post', $postYI->post_id, array('he' => array_values($postHEId)[0]->post_id, 'en' => array_values($postENId)[0]->post_id));
    }
}

אמנם יש פה הרבה דברים שלא הסברתי עליהם עדיין אבל בוודאי שאגיע עליהם במדריך הוורדפרס שלי שתוכלו לקרוא ולהבין מה זה כל דבר ודבר.
באופן כללי , יש פה קריאה למשתנה גלובלי של וורדפרס שמאפשר לנו לעשות בקשות לSQL . ושמו wpdb .
לאחר שאני מחלץ את כל הפוסטים בשפה אחת, שהיא השפה הראשית של האתר כלומר שמסומנת בכוכב:

ואז אני רץ בפור לופ על כל הפוסטים בשפה הראשית ומוצא את הפוסטים המקבילים מהשפות האחרות ואז מגיע השימוש של polylang : (שמתי שוב את השורה הזו שיהיה יותר קל להתמצות)

 $polylang->model->save_translations('post', $postYI->post_id, array('he' => array_values($postHEId)[0]->post_id, 'en' => array_values($postENId)[0]->post_id));

למעשה אני בוחר להשתמש באחד ההוקים שמיובאים מהמשתנה הגלובלי של פולילנג , שנקרא save_translations.

כל מה שאני צריך להעביר לו זה מיהוא הפוסט הראשי ומה הID שלו ואז מערך של שאר הפוסטים בשפות המקבילות עם האיידי שלהם .. והשיוך מתבצע בהצלחה!

ברור שאפשר לעשות שיוך כזה בקלות באמצעות הוורדפרס עצמו . אבל בשביל זה לא הייתי בוחר לרשום פוסט . הבעיה שלי הייתה שהייתי צריך לשייך יותר מ3000 פוסטים שהועלות באימפורט לDB. אז במקום לשבת ימים ולילות. בניתי את הלולאה שרצה על כל הפוסטים ומשייכת אותם ושומרת בDB . מה שאומר שהלולאה הזו לא תשאר יותר בקוד. היא רצה פעם אחת בלבד ולאחר מכן נמחקה מקובץ functions . כמו כן אספר כי הייתי חייב להריץ זאת לוקאלית וכן לשנות אז זמן הטעינה המקסימלי כי זה לקח הרבה זמן… ולאחר מכן החלפתי את הטבלה בDB באתר עצמו וזהו והכל הסתדר.

מקווה שאולי הקייס הזה יעזור לעוד מישהו, אני ישבתי על זה לא מעט זמן ומקווה שאולי זה יעזור למישהו שיצטרך יום אחד.

בהצלחה

פוסטים קשורים:

מדריך וורדפרס למתכנתים שיעור רביעי- מקורות ללמידת וורדפרסקורס בניית אתרים בוורדפרס – מקורות ללמידת וורדפרס תמונת אווירה של מקשים במקלדתאיך לכתוב string על כמה שורות ב-javascript מותאם ל-IE11 הקמת סביבה מדריך וורדפרס למתכנתים שיעור שישי - לפיתוח בוורדפרס שלב מסד הנתוניםקורס בניית אתרים בוורדפרס – הקמת סביבה לפיתוח בוורדפרס שלב מסד הנתונים קורס בניית אתרים בוורדפרס – Custom Themeקורס בניית אתרים בוורדפרס – Custom Theme
multi-languages וורדפרס לימודי וורדפרס פלאגינים וורדפרס ריבוי שפות

אודות המחבר

יאיר וינר להציג את כל הפוסטים של וינר יאיר


« פוסט קודם
פוסט הבא »

השארת תגובה

ביטול

חיפוש באתר
בחירת העורכים
29 בדצמבר 2023 עידן יצחקי

שדה טקסט עשיר עם תמונות

אתם הולכים להיות מופתעים עד כמה HTML יכול להיות חכם ולבצע משהו כל כך מורכב, שאם אנחנו היינו רוצים ליצור

1 באוקטובר 2021 עידן יצחקי

איך למשוך דינמית favicon של אתרים אחרים ב-JS

בפוסט זה נראה איך אפשר על פי לינקים בדף למשוך את ה-favicon מהדומיין שלהם באופן דינמי, בדיקה של תקינות התמונה

פופולרי
Javascript functions – היכרות עם סוגי פונקציות
Javascript
21 בדצמבר 2024 אין תגובות
Nested routing in angular standalone component
Typescript
15 בנובמבר 2024 אין תגובות
בחרו לפי תגיות
angular blockchain css ethers express front-end fullstack GQL html javascript next js nextjs nodejs react hooks reactjs solidity webgl אנגולר בלוקציין וורדפרס לימודי אנגולר לימודי וורדפרס לימוד ריאקט מדריך front-end מדריך GQL מדריך אנגולר מדריך וורדפרס מדריך חינם react מדריך ריאקט מפתח בלוק מפתח בלוקציין מתכנת front-end מתכנת בלוקציין מתכנת פרונט סולידיטי קורס front end קורס fullstack קורס nextjs קורס אנגולר קורס בלוקציין קורס בלוקציין בחינם קורס סולידיטי קורס ריאקט קורס תכנות קורס תכנות בחינם
סינון על פי קטגוריות
CSS fullstack HTML IIS Javascript nodeJs SEO Typescript אנגולר בלוקציין בניית אתרים וורדפרס חיפוש עבודה כלים נוספים כללי נגישות קורסים ריאקט תלת מימד תקלות ופתרונות
צור קשר
כל הזכויות שמורות לקודקודייל
ליצירת קשר: @ קודקודייל
גלילה לראש העמוד
דילוג לתוכן
פתח סרגל נגישות כלי נגישות

כלי נגישות

  • הגדל טקסטהגדל טקסט
  • הקטן טקסטהקטן טקסט
  • גווני אפורגווני אפור
  • ניגודיות גבוההניגודיות גבוהה
  • ניגודיות הפוכהניגודיות הפוכה
  • רקע בהיררקע בהיר
  • הדגשת קישוריםהדגשת קישורים
  • פונט קריאפונט קריא
  • איפוס איפוס