עמודי כותבים בבלוג מרובה מחברים 23 באפר' 2008

מאת: ~ניצן~ ~ניצן~ | הדפסה |

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

הפניה לעמוד מחבר

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

א. רשימת מחברים בבר הניווט

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

  1. <li>
  2.         <h2>רשימת הכותבים:</h2>
  3.         <ul>
  4.                 < ?php wp_list_authors('show_fullname=1&optioncount=1′); ?>
  5.         </ul>
  6. </li>

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

ב. קישור שם הכותב

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

  1. < ?php the_author_posts_link(); ?>

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

  1. < ?php the_author(); ?>

אם לא, אז יש לשלב את קטע הקוד הרלוונטי תחת אזור ה loop.

יצירת עמוד מחבר

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

  1. author.php
  2. archive.php
  3. index.php

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

ראשית, יש ליצור באמצעות תוכנת העריכה החביבה עליכם קובץ חדש ולשמור אותו תחת השם author.php בספריית השורש של ערכת העיצוב.
בשלב השני, נכניס את הקריאות ההיקפיות של העמוד (הדר, בר ניווט ופוטר)

  1. < ?php get_header(); ?>
  2.     <div id="content" class="narrowcolumn">
  3.     </div>
  4. < ?php get_sidebar(); ?>
  5. < ?php get_footer(); ?>

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

  1. if(isset($_GET['author_name'])) :
  2. $curauth = get_userdatabylogin($author_name);
  3. else :
  4. $curauth = get_userdata(intval($author));
  5. endif;?>

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

  1. $curauth->aim;
  2. $curauth->description;
  3. $curauth->display_name;
  4. $curauth->first_name;
  5. $curauth->ID;
  6. $curauth->jabber;
  7. $curauth->last_name;
  8. $curauth->nickname;
  9. $curauth->user_email;
  10. $curauth->user_login;
  11. $curauth->user_nicename;
  12. $curauth->user_registered;
  13. $curauth->user_url;
  14. $curauth->yim;

כך למשל, על מנת להציג את שם הכותב ניתן להשתמש ב

  1. <p>עמוד הכותב של: < ?php echo $curauth->nickname; ?></p>

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

לבסוף, ניתן גם לשלב קריאה ללופ ולהציג את כל הפוסטים של הכותב בצורה הבאה:

  1. < ?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
  2.   <li>
  3. <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link: < ?php the_title(); ?>">
  4. < ?php the_title(); ?></a>,
  5. < ?php the_time('d M Y'); ?> in < ?php the_category('&');?>
  6.   </li>
  7.  
  8.   < ?php endwhile; else: ?>
  9.      <p>< ?php _e('לכותב זה אין פוסטים.'); ?></p>

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

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

  1. <a href='http://home.n2b.org/?feed=rss2&author=<?php echo $curauth->ID; ?>'>RSS</a>

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

ולסיום - קובץ ה php, ניתן להוריד אותו מפה רק צריך לשנות את הסיומת של הקובץ ל php

  1. < ?php get_header(); ?>
  2.    <div id="content" class="narrowcolumn">
  3.       <!– This sets the $curauth variable –>
  4. < ?php
  5. if(isset($_GET['author_name'])) :
  6. $curauth = get_userdatabylogin($author_name);
  7. else :
  8. $curauth = get_userdata(intval($author));
  9. endif;
  10. ?>
  11. <div id="author" class="post">
  12. <h2>שם הכותב: < ?php echo $curauth->nickname; ?></h2>
  13. <b>דואר אלקטרוני:</b> <a href="<?php echo $curauth->user_url; ?>">< ?php echo $curauth->user_email; ?></a>
  14. <h3>RSS</h3>
  15. ניתן להרשם לפיד ה <a href='http://home.n2b.org/?feed=rss2&author=<?php echo $curauth->ID; ?>'>RSS</a> שלי.
  16. <h3>אודות:</h3>
  17. < ?php echo $curauth->user_description; ?>
  18.  
  19. <h2>הפוסטים של < ?php echo $curauth->nickname; ?>:</h2>
  20.  
  21. <ul>
  22. <!– The Loop –>
  23. < ?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
  24.   <li>
  25. <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link: < ?php the_title(); ?>">
  26. < ?php the_title(); ?></a>,
  27. < ?php the_time('d M Y'); ?> in < ?php the_category('&');?>
  28.   </li>
  29.  
  30.   < ?php endwhile; else: ?>
  31.      <p>< ?php _e('No posts by this author.'); ?></p>
  32.  
  33.         < ?php endif; ?>
  34. <!– End Loop –>
  35. </ul>
  36. </div>
  37. </div>
  38. < ?php get_sidebar(); ?>
  39. < ?php get_footer(); ?>

הערות הארות והסתיגויות

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

Popularity: 22% [?]


הכותבנכתב ע"י ~ניצן~
שלח מייל | כל הפוסטים של ~ניצן~ | קטגוריות: וורדפרס | תגיות: אין

RSSעידכונים ב RSS

תגובות

2 תגובות


  1. 1 רמי יושובייב | 24 באפריל , 2008 | 17:28

    למרות שמרבית המידע לא חדש לי, הצלחת להפתיע אותי בהסבר אודות ה-RSS האישי לכל כותב.

    אני הפכתי את וורדפרס למערכת ניהול תוכן עבור אתר חדשות המדע "הידען" בכתובת http://www.hayadan.org.il. באתר עשרות כותבים (קרוב ל-200) וזה יהיה נחמד ליצור להם קבצי RSS אישיים. תודה.

    [תגובה]

  2. 2 שוקי | 28 באפריל , 2008 | 12:44

    יש עוד אתר מרובה-כותבים הפועל על פלטפורמת וורדפרס: "המאסף", בכתובת: http://www.notimportant.co.il

    [תגובה]

שם (חובה)

Email (חובה)

אתר

משהו להוסיף?

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>



פוסטים קשורים

פוסטים אחרונים

Cancel? לא באמת לוחצים על זה

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


דרימהוסט, Shell we?‏

~ניצן~
דרימהוסט, Shell we?‏ ב 1 לאוגוסט אמור לפוג תוקפה של חבילת האיכסון שלי אצל גו דאדי. על מנת לחדש את החבילה רוצים שם ...
רגע, יש עוד ←


ודילוג נוסף

~ניצן~
ודילוג נוסף והפעם לדרימהוסט - ואם רואים את ההודעה הזו - סימן שהצליח והכל עובד
רגע, יש עוד ←


קטעי ווידאו נבחרים

  • Click to play video

קטגוריות

הרשמה במייל

כתובת דואר אלקטרוני:

FireStats icon ‏מריץ FireStats‏