
סוגי תוכן בוורדפרס (Custom Post Types) הם דרך להגדיר סוגי תוכן משלכם מעבר ל"פוסטים" ו"עמודים" — למשל שירותים, פרויקטים, נכסים, מוצרים או כרטיסי עסק. לכל סוג יש מסך ניהול משלו, כתובות משלו, עמוד ארכיון משלו ותבנית תצוגה משלו. יחד עם טקסונומיות (קטגוריות מותאמות) ושדות מותאמים, זה מה שהופך את וורדפרס ממערכת בלוגים למערכת ניהול תוכן לאתר עסקי מורכב.
למה לא פשוט להשתמש בעמודים?
אפשר לבנות עמוד לכל שירות, אבל אז כל עמוד הוא "חופשי": מבנה שונה, שדות חסרים, ואין דרך מסודרת להציג את כל השירותים ברשימה, לסנן או לקשר ביניהם. כשכל השירותים הם סוג תוכן אחד, יש להם מבנה אחיד, ארכיון אוטומטי, ונתונים מובנים שנוצרים מאותה תבנית. באתר הזה, למשל, השירותים והפרויקטים הם סוגי תוכן נפרדים — כך עמוד השירותים נבנה מהם אוטומטית, וכל שירות מוצג באותה תבנית.
שלושת הרכיבים
| רכיב | מה הוא | דוגמה באתר נדל"ן |
|---|---|---|
| סוג תוכן | היחידה הבסיסית, עם מסך ניהול וכתובת | נכס |
| טקסונומיה | דרך לקבץ ולסנן את הפריטים | עיר, סוג נכס |
| שדות מותאמים | הנתונים המובנים של כל פריט | מחיר, חדרים, שטח, קומה |
לשדות המותאמים משתמשים בדרך כלל ב-ACF — הרחבתי עליו במאמר ACF: שדות מותאמים בוורדפרס.
איך מגדירים סוג תוכן
סוג תוכן נרשם בקוד עם הפונקציה register_post_type. לפי התיעוד הרשמי, כמה פרמטרים קובעים כמעט הכל:
- public — האם הסוג גלוי לגולשים ולמנועי חיפוש. ברירת המחדל היא לא.
- has_archive — האם יש עמוד ארכיון שמציג את כל הפריטים.
- rewrite — מבנה הכתובת, למשל
/services/. - show_in_rest — חייב להיות פעיל כדי שעורך הבלוקים יעבוד עם הסוג, ושהוא יהיה זמין ב-REST API.
- supports — אילו שדות בסיס יהיו: כותרת, עורך, תמונה ראשית, תקציר.
שתי הערות מהתיעוד שחוסכות תקלות: מזהה הסוג מוגבל ל-20 תווים, באותיות קטנות, ספרות, מקפים וקווים תחתונים; והרישום צריך לקרות על הוק init. אחרי רישום של סוג חדש צריך לרענן את כללי הכתובות — אחרת העמודים יחזירו 404 עד שמישהו ישמור מחדש את הגדרות הקישורים הקבועים.
register_post_type( 'service', array( 'label' => 'Services', 'public' => true, 'has_archive' => true, 'rewrite' => array( 'slug' => 'services' ), 'show_in_rest' => true, 'supports' => array( 'title', 'editor', 'thumbnail', 'excerpt' ), ) );
תבנית או תוסף — איפה לרשום?
אם סוגי התוכן רשומים בתבנית, החלפת תבנית "מעלימה" אותם — התוכן נשאר במסד הנתונים, אבל אין מסך לנהל אותו ואין כתובות. לכן ההמלצה המקובלת היא לרשום סוגי תוכן בתוסף ייעודי, והתבנית אחראית רק על התצוגה. יש גם תוספים שמאפשרים להגדיר סוגי תוכן מתוך הממשק, בלי קוד.
מתכננים לפני שבונים
סוגי התוכן קובעים את מבנה הכתובות, את התפריטים, את מפת האתר ואת הנתונים המובנים — ולכן כדאי להחליט עליהם בשלב האפיון, לא תוך כדי הבנייה. שינוי של מבנה כתובות אחרי ההשקה דורש הפניות. ראו אפיון אתר ומבנה URL לאתר גדול.
באינדקסים זה בולט במיוחד: כרטיס עסק, קטגוריה ועיר הם שלושה סוגי מידע שונים, והחיבור ביניהם הוא כל האתר. כך בניתי את yafa, אינדקס עם יותר מ-1,000 בעלי מקצוע.
סוגי תוכן ונתונים מובנים
יתרון שקל לפספס: כשכל השירותים, הנכסים או כרטיסי העסק הם סוג תוכן אחד עם שדות קבועים, אפשר לייצר עבורם נתונים מובנים מתבנית אחת. כרטיס עסק מקבל LocalBusiness עם כתובת וטלפון, שירות מקבל Service — אוטומטית, בכל פריט, בלי שמישהו יצטרך לזכור להוסיף קוד.
באתר הזה, כל עמוד שירות מייצר ישות Service שמחוברת לארגון, וכל מאמר מייצר Article שהכותב שלו הוא המייסד — כי השירותים והמאמרים מוצגים בתבנית קבועה. בעמודים חופשיים, כל עמוד היה צריך סימון ידני, והטעויות היו מצטברות. ההסבר המלא נמצא במאמר נתונים מובנים.
אותו היגיון חל על מפת האתר: Yoast יוצר מפת אתר נפרדת לכל סוג תוכן ציבורי, כך שקל לראות ב-Search Console כמה שירותים, פרויקטים או כרטיסים נכנסו לאינדקס — ולזהות בעיה בסוג מסוים בלי לחפש אותה בין כל העמודים.
שאלות נפוצות
האם סוגי תוכן מאטים את האתר?
לא. הם נשמרים באותה טבלה כמו פוסטים רגילים. מה שמשפיע על המהירות הוא איך שולפים ומציגים אותם.
מה ההבדל בין קטגוריה לטקסונומיה מותאמת?
קטגוריה היא טקסונומיה מובנית של פוסטים. טקסונומיה מותאמת היא אותו רעיון, לסוג תוכן שלכם — למשל "עיר" לנכסים.
אפשר להעביר עמודים קיימים לסוג תוכן חדש?
כן, אבל הכתובות משתנות — ולכן צריך הפניות 301 מכל כתובת ישנה. ראו הפניה 301.
תכנון סוגי תוכן, טקסונומיות ושדות הוא חלק מכל אתר שאני בונה — מאתר תדמית ועד פורטל. פרטים בעמוד בניית אתרי וורדפרס, או ספרו לי איזה תוכן האתר צריך לנהל.
אהבתם את המאמר?


