דף הבית » טריקים וטיפים, מומלצים

להציג פוסטים מותאמים אישית באתר כולו

2 בינואר 2011 | מאת רמי | 9 תגובות | תגיות: ,

כאשר אנו יוצרים פוסטים מותאמים אישית (Custom Post Types) אנו לא רואים אותם בעמוד הראשי, לא בעמודי הקטגוריות, לא עמודי התגיות ובעצם באף מקום באתר. כדי להציג פוסטים מותאמים אישית אנחנו יוצרים תבניות עמוד מיוחדות שם אנו יוצרים שאילתת וורדפרס מותאמת אישית. היום נלמד איך להציג פוסטים מותאמים אישית בכל עמודי האתר בעזרת פילטר פשוט.

קוד וורדפרס

קוד וורדפרס

רקע

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

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

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

הקוד

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

function custom_get_posts( $query ) {
    if ( !is_admin() && false == $query->query_vars['suppress_filters'] )
        $query->set( 'post_type', array( 'post', 'page', 'books', 'movies', 'people' ) );
    return $query;
}
add_filter( 'pre_get_posts', 'custom_get_posts' );

התוצאה

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

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

מאת רמי

אחראי על אתר וורדפרס בעברית ועל תרגום ושחרור גרסאות וורדפרס בעברית. מפתח ליבה, בכל גרסה החל מגרסה 2.8, מפתח מוביל בגרסה 4.4 ובגרסה 4.6. מספק שירותי פיתוח אתרים, פיתוח תוספי וורדפרס לסטרטאפים ופיתוח כלים למפתחי וורדפרס - GenerateWP.com.

9 תגובות »

  • גיא הרדוף כותב :

    רמי,

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

    תודה על כל המידע הנפלא.

    גיא הרדוף

  • רמי כותב :

    כיף לקבל תגובות כאלה. אני שמח שעזרתי לך!

  • נעמה כותב :

    העתקתי, הדבקתי. עובד מצויין.

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

  • בת אל כותב :

    העתקתי וקיבלתי את האזהרה הבאה:
    Warning: Cannot modify header information – headers already sent by (output started at /home/dhbatels/public_html/wp-content/themes/marketing-tek/functions.php:2) in /home/dhbatels/public_html/wp-admin/theme-editor.php on line 99

    איך מתגברים על זה?

  • רמי כותב :

    בת אל, את צריכה לשנות את הסוגי הפוסטים. בדוגמא השתמשתי בסוגים הבאים – 'post', 'page', 'books', 'movies', 'people'.

    אבל את צריכה להתאים לסוגי הפוסטים שיש באתר שלך.

  • פיימן כותב :

    אדיר

  • נחומי אליהו כותב :

    ישתבח שמו! 🙂 עובד בצורה הכי טובה שיש! תודה רבה על הפילטר השימושי!

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

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

    תמונה:
    http://i.imgur.com/UmAK7.png

    יש איזה פונקציה שזה יופיע בפוסט מותאם אישית?

    תודה רמי!

  • רמי כותב :

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

  • ישראל כותב :

    עשיתי את זה עבל זה לא עובד
    function custom_get_posts( $query ) {
    if ( !is_admin() && false == $query->query_vars['suppress_filters'] )
    $query->set( 'post_type', array( 'post', 'deceased_card' ) );
    return $query;
    }
    add_filter( 'pre_get_posts', 'custom_get_posts' );

    זה הקוד שלי השם של הסוג פוסט deceased_card

הוסף תגובה !

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

תגיות HTML מורשות לשימוש:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>