אקורדיון מבוסס ACF עם שורטקוד

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

מבוא

בעבר רוב העבודה המתקדמת בתוך הוורדרס הייתה מבוססת שורטקודים ועריכת HTML בלבד. כתבתי על זה בעבר ולא מעט.

בסוף 2011 גיליתי תוסף מאוד מעניין שהפף את העבודה שלי עם וורדרפס להרבה יותר נוחה יעילה ומאוד מתקדמת.
זה הגיע לרמה כזאת שמייד קנהיתי את הרחבות Repeater ולאחר מכן הרחבות נוספות Options ו Gallery. הרכישה השתלמה, לאחר שחרור גרסת פרו קיבלתי אותה ללא תשלום כי היא כללה את כל ההרחבות שרכשתי קודם.

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

נשתמש במאמר הקודם לטובת פיתוח.

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

במערכת הניהול של התוסף אני יוצר רכיב חדש ששמו Accordion Items ומגדיר שדות Title ו Content שישמשו אותי לטובת התוכן.

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

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

הרכיב בתוך ניהול פוסט רו דף

יצירת שורטקוד להטמעת האקורדיון

בסופו של דבר איחדתי את שני תהליכים, שליפת את התוכן מתוך ACF והפיכתו לשורטקוד.

 function acf_accordion_shortcode($atts) {
    ob_start();
    
    if( have_rows('accordion_items') ):
        echo '<div class="accordion">';
        while( have_rows('accordion_items') ): the_row();
            $title = get_sub_field('title');
            $content = get_sub_field('content');

            echo '<div class="accordion-item">';
            echo '<div class="accordion-title">' . esc_html($title) . '</div>';
            echo '<div class="accordion-content">' . wp_kses_post($content) . '</div>';
            echo '</div>';
        endwhile;
        echo '</div>';
    endif;

    return ob_get_clean();
}
add_shortcode('acf_accordion', 'acf_accordion_shortcode'); 

מכאן והלא אפשר להשתמש בשורטקוד [acf_accordion] שאני רוצה.

סיכום

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

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

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

מחפשים פתרונות תכנות מקצועיים?

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