cpt יצירת סוג תוכן מותאם לאתר

חבר מביא חבר
ומקבל 10% החזר!

הפנו אלינו חבר שמעוניין בשירות שלנו
וקבלו 10% מהעסקה אליכם.

פשוט אמרו לחבר להגיד שאתם שלחתם אותו 😉

מדריך יצירת סוג תוכן מותאם לוורדפרס (Custom Post Types) CPT

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

המאמר פונה לבוני אתרים ע״ב מערכת ניהול התוכן וורדפרס (WordPress).

מה זה CPT?

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

יצירת CPT סוג תוכן מותאם בעזרת קוד

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

כאשר אני רוצה להוסיף קוד לאתר שלי, אני ניגש לקובץ functions.php של התבנית.
ככה יראה הקוד הבסיסי להוספת סוג תוכן מתאם לאתר.

				
					function digitalcobwebs_lecturer_post_type() {

	$args = array();
	register_post_type( 'lecturer', $args );

}
add_action( 'init', 'digitalcobwebs_lecturer_post_type', 0 );
				
			

הקוד שהוספתי יצר סוג תוכן מותאם בשם lecturer והוא נוסף תחת השדה post_type,  שמחזיק את סוגי התכנים שיש לנו באתר.
סוג התוכן שלנו נמצא תחת הסיווג Private, לכן לא נראה אותו בלוח הבקרה של וורדפרס או בכל מקום אחר.

עיצוב CPT סוג התוכן מותאם

ע״מ להתאים את סוג התוכן החדש שייצרנו לצרכים שלנו, נוסיף לו מספר שדות תחת המערך args$.
לאחר הוספת השדות, הקוד שלנו יראה כך.

				
					function digitalcobwebs_lecturer_post_type() {
	$args = array(
		'label'                 => __( 'Lecturer', 'text_domain' ),
		'description'           => __( 'Lecturer Description', 'text_domain' ),
		'supports'              => array( 'title', 'editor', 'thumbnail', 'page-attributes' ),
		'taxonomies'            => array( 'category', 'post_tag' ),
		'hierarchical'          => false,
		'public'                => true, // שינוי הסיווג של סוג התוכן לפומבי
		'show_ui'               => true,
		'show_in_menu'          => true, // הצגת סוג התוכן בתפריט של לוח הבקרה
		'menu_position'         => 5, // מיקום בתפריט של לוח הבקרה
		'show_in_admin_bar'     => true,
		'show_in_nav_menus'     => true,
		'can_export'            => true,
		'has_archive'           => true, // לאפשר הצגת ארכיון כמו בלוג של פוסטים
		'exclude_from_search'   => false,
		'publicly_queryable'    => true,
		'capability_type'       => 'post',
	);
	register_post_type( 'lecturer', $args );

}
add_action( 'init', 'digitalcobwebs_lecturer_post_type', 0 );
				
			

ציינתי בהערות את המאפיינים העיקריים.

השדות supports ו-taxonomies מגדירים את המאפיינים בדף העריכה של cpt סוג התוכן המותאם.

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

אבל לזה נגיע בהמשך המאמר.

תרגום הממשק של CPT סוג תוכן מותאם

כל הממשק של התוכן שלנו רשום בהתאם לסוג התוכן "פוסט", כמו שציינתי קודם.
ז״א שאם נרצה להוסיף Lecturer נראה את התגית ״הוסף פוסט״.
ועכשיו כשאני חושב על זה… למה עדיין קוראים לסוג התוכן המותאם שלנו Lecturer?

בואו נוסיף קצת תרגום לממשק של סוג התוכן המותאם שלנו.

למערכת וורדפרס יש key words ששמורים לשפה, לא נוכל לקרוא לסוג התוכן שלנו בשמות השמורים של וורדפרס, הדבר ייצור התנגשות.

				
					function digitalcobwebs_lecturer_post_type() {
    $labels = array(
        'name'                  => _x( 'מרצים', 'Post Type General Name', 'text_domain' ),
        'singular_name'         => _x( 'מרצה', 'Post Type Singular Name', 'text_domain' ),
        'menu_name'             => __( 'מרצים', 'text_domain' ),
        'name_admin_bar'        => __( 'מרצה', 'text_domain' ),
        'archives'              => __( 'ארכיון מרצים', 'text_domain' ),
        'attributes'            => __( 'מאפייני מרצה', 'text_domain' ),
        'all_items'             => __( 'כל מרצים', 'text_domain' ),
        'add_new_item'          => __( 'הוסף מרצה חדש', 'text_domain' ),
        'add_new'               => __( 'הוסף מרצה', 'text_domain' ),
        'new_item'              => __( 'מרצה חדש', 'text_domain' ),
        'edit_item'             => __( 'ערוך מרצה', 'text_domain' ),
        'update_item'           => __( 'עדכן מרצה', 'text_domain' ),
        'view_item'             => __( 'הצג מרצה', 'text_domain' ),
        'view_items'            => __( 'הצג מרצים', 'text_domain' ),
        'search_items'          => __( 'חפש מרצה', 'text_domain' )
    );
	$args = array(
		'label'                 => __( 'Lecturer', 'text_domain' ),
		'description'           => __( 'Lecturer Description', 'text_domain' ),
		'supports'              => array( 'title', 'editor', 'thumbnail', 'page-attributes' ),
		'taxonomies'            => array( 'category', 'post_tag' ),
		'labels'                => $labels,
		'hierarchical'          => false,
		'public'                => true, // שינוי הסיווג של סוג התוכן לפומבי
		'show_ui'               => true,
		'show_in_menu'          => true, // הצגת סוג התוכן בתפריט של לוח הבקרה
		'menu_position'         => 5, // מיקום בתפריט של לוח הבקרה
		'show_in_admin_bar'     => true,
		'show_in_nav_menus'     => true,
		'can_export'            => true,
		'has_archive'           => true, // לאפשר הצגת ארכיון כמו בלוג של פוסטים
		'exclude_from_search'   => false,
		'publicly_queryable'    => true,
		'capability_type'       => 'post',
	);
	register_post_type( 'lecturer', $args );

}
add_action( 'init', 'digitalcobwebs_lecturer_post_type', 0 );
				
			

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

ניתן לראות בנוסף שגם בתפריט של לוח הבקרה הלשונית של סוג התוכן המותאם השתנתה למרצים.

cpt יצירת סוג תוכן חדש מתורגם

רגע… למה לתגיות פוסטים ומרצים יש את אותו אייקון של נעץ?
אם אנחנו רוצים להתאים את סוג התוכן לצרכים שלנו! אז בואו נחליף לו את האייקון.

קיימות 2 דרכים לשנות את האייקון של סוג התוכן:

  1. בחירת אייקון ממאגר האייקונים של וורדפרס – אנחנו יכולים להכנס לכאן ולבחור אייקון חדש לסוג התוכן שייצרנו. זכרו לקחת רק את שם האייקון.
    במקרה של המאמר נראה לי שהאייקון dashicons-businessman הכי מתאים 😁.
    אז בואו נוסיף את השורה הזאת למערך args$ שלנו.
				
					'menu_icon'             => 'dashicons-businessman'
				
			
  1. הגדרת אייקון מהמדיה של האתר  – נוכל להגדיר נתיב לאייקון שנמצא אצלנו באתר.
				
					'menu_icon'           => 'http://www.mydomain.com/wp-content/uploads/2014/11/your-cpt-icon.png',
				
			

וכך יראה התפריט שלנו עכשיו, אחרי ששינינו את האייקון.

הזמן הטוב ביותר לבנות אתר לעסק הוא בפתיחת העסק,
הזמן השני הטוב ביותר הוא עכשיו!

יצירת CPT סוגי תוכן מותאם בעזרת תוסף

כמו שאמרתי, עדיף להמעיט בכמות התוספים באתר שלנו. זכרו, כל תוסף מאט לנו את האתר!

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

לתוסף קוראים Custom Post Type UI וניתן להוריד אותו מכאן.

CPY - Custom Post Type UI

הוספת CPT סוג תוכן חדש בעזרת תוסף

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

cpt ui הוספת סוג תוכן חדש

התאמה/תרגום ממשק CPT סוג תוכן חדש

מתחת לחלון הזה נראה את כל התגיות שניתן לתרגם/להתאים לסוג התוכן המותאם שייצרנו.

cpt ui תרגום סוג תוכן חדש

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

הגדרת CPT סוג תוכן מותאם

החלון הבא בממשק של התוסף CPU UI הוא חלון ההגדרות. רוב ההגדרות שאנו צריכים כבר מופעלות.
בואו נעבור על ההגדרות הכלליות מכיוון שיש הרבה.

  1. Public -הגדרת הסיווג של סוג התוכן לפומבי (גלוי).
  2. Show in Nav Menus – הצגת סוג התוכן החדש בתפריט של לוח הבקרה.
  3. Has Archive – אפשרות להציג ארכיון של סוג התוכן החדש כמו בלוג של פוסטים.
  4. Menu Position – מיקום בתפריט של לוח הבקרה.
  5. Menu Icon – האייקון שיוצק בתפריט של לוח הבקרה.
  6. Supports – המאפיינים שיהיו בדף העריכה של סוג התוכן החדש.
25% הנחה!
על הקורסים הדיגיטליים המובילים בעולם הפיננסי!

התאמת השדות של CPT סוג תוכן חדש

במידה והשדות בממשק העריכה של סוג התוכן שלנו, לא תואמים את הצרכים שלנו. נוכל להתאים גם אותם ע״י שימוש בתוסף ACF (Advanced Custom Fields), על זה כתבתי כאן 😃.

לסיכום

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

Digital Cobwebs מתמחים בבנייה וניהול נכסים דיגיטליים, קהילות ואתרים. בנוסף, אנחנו מתמחים בגיבוש ובניית מודל עיסקי שמתאים לך ולעסק שלך.

מוזמנים לשאול שאלות בתגובה או סתם לפרגן!

8 מחשבות על “מדריך יצירת סוג תוכן מותאם לוורדפרס (Custom Post Types) CPT”

  1. תודה רבה על מאמר מורחב ומפורט (לא ראיתי הרבה כאלו בעברית,למען האמת) – שאלה ובקשה :

    1. אשמח לקבל הסבר (במידת האפשר גם מפורט) מה זה בדיוק ה text-domain ? מה אני אמור לרשום במקום טקסט זה כאשר אני יוצר בקוד CPT חדש?

    2. בקשה : אשמח לקרוא (וללמוד) מדריך שכזה מפורט אודות חיבור/קישור טקסונומיה ל CPT , והסבר מה תהה היררכית הקבצים הנכונה (מהטקסונומיה אל הפוסט היחיד)

    ושוב,תודה בכללי וגם תודה על מאמר נפלא…

    1. היי גרשון,
      ממש שמח לראות שאהבת את המאמר שלי 😊

      1. לגבי ה-text-domain הוא מיועד כדי לתרגם את הטקסט במידה והאתר הוא דו לשוני. אני לא ארחיב על זה במדריך, אבל אתה מוזמן לקרוא על זה כאן.
      תוכל לרשום בצורה הזאת 'name' => ‘מרצים’, אם האתר שלך בשפה אחת.

      2. מוסיף לי לרשימת המאמרים לכתיבה 😊
      מוזמן לסמן לייק לעמוד הפייסבוק ולהרשם לרשימת הדיוור בתחתית העמוד באתר כדי להיות מעודכן.

  2. מדריך מדהים אחי, רק יש לי שאלה.

    שמתי-לב שאחרי שהתקנתי את התוסף והגדרתי את האזור החדש.

    כשפותחים פוסט חדש הוא לא תומך באלמנטור, איך פותרים את זה?

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

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

קטגוריות

לנהל עסק זה להיות חדשני

החברים שלנו מקבלים הטבות בלעדיות ועדכונים על חדשנות לעסק ישירות לתיבת המייל שלהם.

אהבתם? תנו לנו לייק!

פוסטים נוספים שיעניינו אותך