טיפ וורדפרס: הוספת תמיכה בתגיות גם לעמודים וכדו'
כברירת המחדל לא ניתן להוסיף תגיות (או קטגוריות) לעמודים בוורדפרס. בטיפ קצר מאוד זה, נלמד איך לעשות את זה בלי צורך בתוספים מיותרים, ע"י הוספת מספר שורות קוד בודדות בערכת העיצוב שלנו
מעט רקע תיאורטי קצר ביותר
עמודים בוורפדרס, כמו פוסטים, הם סוג תוכן (post type). החל מגרסה וורדפרס 3, ניתן לרשום במערכת גם סוגי תכנים מותאמים אישית (CPT – Custom Post Types) ולאפיין אותם בכל דרך ושדות שנרצה בצורה לא מסובכת. זאת ועוד – קטגוריות ותגיות, הינם טקסונומיות, היינו "מגדירי מיון". הם אמנם הטקסונומיות שקיימות במערכת כברירת מחדל (תגיות – טקסונומיה שטוחה, קטגוריות – טקסונומיה היררכית), אך כמובן שניתן לרשום עוד טקסונומיות מותאמות אישית במערכת לפי הצורך (למשל, באתר של ספריית וידאו, אפשר ל הוסיף טקסונומיה של ז'אנר, בימאי וכדו').
כל טקסונומיה (בין אם היא מובנית במערכת, קרי תגיות וקטגוריות, ובין אם היא מותאמת אישית שיצרנו) אפשר לשייך או לא לשייך לכל סוג תוכן במערכת (שוב – בין אם הוא סוג תוכן מובנה – קרי עמודים ופוסטים, ובין אם סוגי תוכן מותאמים אישית שיצרנו).
אז איך עושים את זה?
לכן – באותו אופן בדיוק וללא יוצא מהכלל , ניתן לשייך את טקסונומיית התגיות לסוג תוכן עמודים. כל מה שנצטרך זה להוסיף לקובץ הפונקציות בערכת העיצוב שלנו, או לקובץ פונקציות מותאם אישית, את השורות הבאות, לשמור, ויש לנו תגיות בעמודים:
[ccwn_php]
add_action('init', 'tc_add_tax_to_cpt');
function tc_add_tax_to_cpt() {
register_taxonomy_for_object_type( 'post_tag', 'page' );
}
[/ccwn_php]
post_tag היא הטקסונומיה אותה רוצים לרשום, במקרה הזה כאמור מדובר בתגיות.
page הוא סוג התוכן אליו רוצים לשייך את הטקסונומיה, במקרה הזה העמודים.
כאמור, בדרך זו נוכל לשייך גם כל טקסונומיה אחרת שהוגדרה במערכת לכל סוג תוכן.
בקודקס ניתן לקרוא מידע נוסף על הפונקציה register_taxonomy_for_object_type.
כמובן הרישום הזה אפשרי עבור טקסונומיות שקיימות כבר במערכת, ואותן הוא משייך לסוג התוכן. הפונקציה הזו לא תרשום עבורכם טקסונומיה חדשה, בשביל זה יש את הפונקציה register_taxonomy. עקרונית, בעת רישום טקסונומיה חדשה כבר נוסיף שם מערך של סוגי התכנים שאליהם נרצה לשייך את הטקסונומיה, כך שהפונקציה הנ"ל שהזכרתי יעילה בעיקר בשימוש על הוספת קטגוריות ו/או תגיות לעמודים, שהם רכיבים מובנים במערכת, שכברירת מחדל אין ביניהם קשרים.
7 תגובות »
פיד RSS לתגובות בפוסט | טראקבק
טוב שעשית מזה פוסט.
אבל לא admin_init לדעתי – אחרת זה מאותחל רק בניהול ועלולות לצוץ בעיות באתר עצמו.
עדיף סתם init
.-= פורסם לאחרונה אצל יואב.. וורדקמפ ירושלים, ב-12 לספטמבר =-.
תודה יואב. אני מניח שאתה צודק ולא חשבתי על זה (למרות שייתכן שזה יעבוד, אבל לא בדקתי.)
שיניתי בפוסט את האקשן להתחבר ל-init.
האם באותה דרך אפשר להכניס היררכיה לפוסטים רגילים כמו שיש ב Page?
לדוגמא:
add_action('init', 'tc_add_tax_to_cpt');
function tc_add_tax_to_cpt() {
register_taxonomy_for_object_type( 'post_tag', 'page' );
}
תיקון טעות מהתגובה הקודמת (אתה יכול לערוך):
האם באותה דרך אפשר להכניס היררכיה לפוסטים רגילים כמו שיש ב Page?
לדוגמא:
add_action('init', 'tc_add_tax_to_cpt');
function tc_add_tax_to_cpt() {
register_taxonomy_for_object_type( 'hierarchical', 'post' );
}
אריאל,
זה לא אפשרי כמו שכתבת, כי הפונקציה הנ"ל משמשת להוספת שיוך של טקסונומיה לסוג תוכן, והיררכיה היא לא טקסונומיה, אלא מאפיין.
עם זאת אפשר לעשות גם את מה ששאלת בצורה פשוטה , כתבתי עכשיו פוסט קצר בנושא –
https://maorb.info/wordpress/2011-09/make-post-hierarchical
תודה רבה 🙂
אכן רק עכשיו נפל לי האסימון בעניין הטקסנומיה…
ושוב תודה על הפוסט שכתבת. שימושי להפליא.
הצלחתי להוסיף תגיות לעמודים.
אבל זה עדיין לא שולף לי את העמודים לפי תגיות מתאימות, אלא שולף רק פוסטים, למרות שיצרתי גם עמודים עם אותה תגית.