לפרויקט שלנו אנחנו רוצים לייצר Custom Post type – או בקיצור cpt . אבל לפני שנבנה אחד, בואו נבין מהם ה Custom Post types,
מה זה Custom Post type
בוורדפרס כל סוגי העמודים הם למעשה post types , בין אם זה עמודים, פוסטים, מדיה ואפילו תפריטים . סוגי הפוסטים השונים יכולים להיות בעלי אופי שונה למשל static post type או post post type . את ההגדרות הללו נראה בהמשך כשנבנה את הפלאגין שיספק לנו את הCPT שאנחנו צריכים לטובת הפרויקט.
בניית ה Custom Post types כפלאגין
אז בפרויקט שלנו נבנה CPT של לוקיישנים מומלצים לפיקניק ונשייך אותם לקטגוריות שישמשו כ"עיר". בשביל כך נתחיל עם ההגדרות הבסיסיות ליצירת הפלאגין:
<?php /* Plugin Name: Picnic Locations Description: Picnic Locations */ /* Start Adding Functions Below this Line */ /* Stop Adding Functions Below this Line */ ?>
עכשיו שיש לכם קובץ כזה,נמשיך לשלב הבא, כל מה שצריך זה לשמור אותו במקום הנכון. ניגש לפרוקייט שלנו ונמצא את התיקיה של plugins . למעשה נצטרך לייצר תיקיה חדשה בשם הפלאגין ושמה לשים את הקובץ הזה.
ואז אתם יכולים לגשת לWP ADMIN ולראות תחת פלאגינים את הפלאגין שלכם. תוכלו כמובן לעשות לו אקטיב , אבל בואו נמשיך לקוד . להלן הקוד של יצירת הCPT שאנחנו צריכים .
<?php /* Plugin Name: Picnic Locations Description: Picnic Locations */ /* Start Adding Functions Below this Line */ // Our custom post type function function Picnic_Locations() { $supports = array( 'title', 'editor', 'excerpt', 'custom-fields', 'thumbnail', 'page-attributes' ); $labels = array( 'name' => __('Picnic Locations', 'codcodile' ), 'singular_name' => __( 'Picnic locations', 'codcodile' ), 'add_new' => __( 'New Picnic location', 'codcodile' ), 'add_new_item' => __( 'Add New Picnic location', 'codcodile' ), 'edit_item' => __( 'Edit Picnic location', 'codcodile' ), 'new_item' => __( 'New Picnic location', 'codcodile' ), 'view_item' => __( 'View Picnic locations', 'codcodile' ), 'search_items' => __( 'Search Picnic locations', 'codcodile' ), 'not_found' => __( 'No Picnic locations Found', 'codcodile' ), 'not_found_in_trash' => __( 'No Picnic locations found in Trash', 'codcodile' ), ); $args = array( 'labels' => $labels, 'has_archive' => true, 'public' => true, 'hierarchical' => true, 'supports' => $supports, 'taxonomies' => array('category'), 'rewrite' => array( 'slug' => 'picnic_locations' ), 'show_in_rest' => true ); register_post_type( 'Picnic_Locations', $args ); } // Hooking up our function to theme setup add_action( 'init', 'Picnic_Locations', 0 ); /* Stop Adding Functions Below this Line */ ?>
בגדול ככה נראה האובייקט ההגדרות של CPT שכמובן צריך לעבור דרך register_post_type . שרושם את הCPT לוורדפרס . ואם נעבור על ההגדרות של args אז נראה שזה לא כזה מורכב כמו שזה נראה.
labels – כל מה שמגדיר את התוכן של אזור הפוסט החדש:
למעשה אתם יכולים להגדיר את כל הטקסטים הנל:

Supports – מאפשר לכם להגדיר בשדות מובנים של פוסט להשתמש\להשמיט.
כל השאר אפשר לראות את ההגדרה שלהם יותר קלות אם כי יש עוד הגדרות שאפשר לשים כמו הרשאות לפני יוזרים בעזרת capability _type וישנם עוד אפשרויות נוספות, אך מה שמוצג פה זה בערך המינימום הנדרש ומה שישרת אותנו להמשך הפרויקט (אפשר להוריד את show_in_rest , hierarchical וגם יעבוד לכם).
הסופו של דבר נדרש להוסיף את ההוק add_action init על מנת שיהיה לנו אותו זמין בCMS. הערך האחרון המספרי (0) הוא אופציונאלי שמציין priority.
סיכום
פוסט קצר זה הינו התחלה מעולה בשביל מי שרוצה להיות מתכנת וורדפרס אמיתי. יש שימושים רבים ביצירת פוסטים ייחודיים עם הגדרות משלהם . ההפרדות הללו בין סוגי התכנים חוזרת על עצמה פעמים רבות וכן בהמשך נראה איך לשלב אותה עם רכיבים מובנים נפוצים כמו ACF ואפילו אלמנטור.