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

לשנות את שם הכותב בעזרת שדות מיוחדים

26 בפברואר 2011 | מאת רמי | 4 תגובות | תגיות: , , ,

לפני קצת יותר משנה כתבתי פוסט בנושא שיכתוב שם הכותב בעזרת שדות מיוחדים הבעיה היא שהפתרון שנתתי שם הצריך שינוי של קבצי התבנית (קבצים כמו single.php, page.php, archive.php, home.php, index.php ואחרים). היום נלמד איך לשנות את שם הכותב בעזרת שדות מיוחדים ללא שינוי קבצי התבנית.

משתמש אורח

משתמש אורח

הבעיה

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

הפתרון

הפתרון לבעיה הוא שימוש בשדות מיוחדים.ניתן ליצור שדה מיוחד בשם author או guest-author או כל שם אחר שתבחרו, ולהזין לתוכו את השם של הכותב.

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

function custom_author_name( $name ) {
    global $post;
    $author = get_post_meta( $post->ID, 'guest-author', true );
    if ( $author )
        $name = $author;
    return $name;
}
add_filter( 'the_author', 'custom_author_name' );

כל פעם שעושים שימוש בפונקציה the_author() המחזירה את כותב הפוסט, מופעל פילטר שבודק האם הוגדר לפוסט שדה מיוחד בשם guest-author, אם קיים שדה מיוחד אז הוא מחליף את שם משתמש.

מאת רמי

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

4 תגובות »

  • Ariel כותב :

    תודה רבה
    שימושי להפליא

  • חתול כותב :

    כדאי גם להכיל את המסנן על get_the_author כדי לטפל בתבניות שעושות בפונקציה הזו שימוש.

  • רמי כותב :

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

  • שלומי כותב :

    אהלן רמי,
    רציתי לדעת האם אפשרי לגרום לשדות מותאמים אישית להיות מוצגים תמיד בעת כתיבת פוסט חדש? ז"א שלא אצטרך לבחור מתוך הרשימה, כמו בתמונה:
    http://sdesigner.co.il/projects/simple.png

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

    תודה מראש.

הוסף תגובה !

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

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