07
בספט
2011

טיפ וורדפרס: הוספת היררכיה בסוג תוכן פוסטים

מאת: מאור ברזני | תגובות: 4 | נושאים: וורדפרס
תגיות: , , , , , |

cc by Flavio Takemotoכברירת המחדל, וורדפרס מגדירה עמודים כבעלי אפשרות למבנה היררכי אחד לשני (עמוד יכול להיות הורה של עמוד אחר), ופוסטים אינם היררכיים. לעתים עולה הצורך לאפשר מבנה היררכי גם בפוסטים, בטיפ קצר ופשוט זה נלמד איך לעשות את זה ע"י הוספת מספר שורות קוד בודדות בערכת העיצוב שלנו, ללא צורך בתוספים

מעט רקע קצר

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

בסוגי תכנים מותאמים אישית (CPT) שניתן לרשום במערכת, אפשר ללא בעיה להוסיף תמיכה בהיררכיה של מבנה עץ הורה/בן לסוג התוכן החדש, פשוט ע"י הוספת שורה למערך בעת רישום סוג התוכן (ובשימוש בפונקציה register_post_type). שם זה נעשה בצורה פשוטה, למשל –

[ccwn_php]'hierarchical' => true,[/ccwn_php]

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

אז איך עושים את זה?

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

[ccwn_php]
add_filter('init', 'tc_post_hierarchical_support');
function tc_post_hierarchical_support() {
global $wp_post_types;
$h = &$wp_post_types['post']->hierarchical;
$h = true;

add_post_type_support('post', 'page-attributes');
return;
}
[/ccwn_php]

הפונקציה תשנה את הערך hierarchical של מאפיין הפוסט כך שיהיה true (שכאמור הוא כבר מובנה ומוגדר במערכת, וערכו false).

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


שתפו גם אחרים:
  • email
  • Print
  • RSS
  • Facebook
  • Twitter
  • LinkedIn
  • Google Bookmarks
  • Live
  • PDF
  • MySpace
  • del.icio.us
  • Digg
  • Technorati
  • Yahoo! Bookmarks
  • Yahoo! Buzz
  • Add to favorites

4 תגובות »

פיד RSS לתגובות בפוסט | טראקבק


הוסף תגובה ל ניר

CommentLuv badge

TechnoCraft - פתרונות אינטרנט


אֶקְסְפֶּרִימֶנְט דוֹט אֶפֶס - וורדפרס, תוכן, טכנולוגיה ועוד כמה דברים - מופעל באמצעות WordPress | פתרונות אינטרנט