דף הבית » טריקים וטיפים

תמונה מוקטנת בתצוגת הפוסטים במערכת הניהול

26 בפברואר 2010 | מאת רמי | 5 תגובות | תגיות: , , ,

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

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

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

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

צילום מסך

תמונות ממוזערות בעמוד תצוגת הפוסטים

תמונות ממוזערות בעמוד תצוגת הפוסטים - לחצו על התמונה להגדלה

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

הערה: אפשר להגדיר ב"אפשרויות עמוד" שלא להציג את התמונות המוקטנות.

הקוד

if ( !function_exists('admin_thumb_column') ) {

    function admin_thumb_column($cols) {
        $cols['thumbnail'] = __('Thumbnail');
        return $cols;
    }

    function admin_thumb_value($column_name, $post_id) {
        $width = (int) 50;
        $height = (int) 50;

        if ( 'thumbnail' == $column_name ) {
            // thumbnail of WP 2.9
            $thumbnail_id = get_post_meta( $post_id, '_thumbnail_id', true );
            // image from gallery
            $attachments = get_children( array('post_parent' => $post_id, 'post_type' => 'attachment', 'post_mime_type' => 'image') );
            if ($thumbnail_id)
                $thumb = wp_get_attachment_image( $thumbnail_id, array($width, $height), true );
            elseif ($attachments) {
                foreach ( $attachments as $attachment_id => $attachment ) {
                    $thumb = wp_get_attachment_image( $attachment_id, array($width, $height), true );
                }
            }

            if ( isset($thumb) && $thumb ) {
                echo $thumb;
            } else {
                echo __('None');
            }
        }
    }

    // for posts
    add_filter( 'manage_posts_columns', 'admin_thumb_column' );
    add_action( 'manage_posts_custom_column', 'admin_thumb_value', 10, 2 );

    // for pages
    add_filter( 'manage_pages_columns', 'admin_thumb_column' );
    add_action( 'manage_pages_custom_column', 'admin_thumb_value', 10, 2 );
}

מספר מילים לסיום

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

מאת רמי

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

5 תגובות »

  • יאיר כותב :

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

  • רמי כותב :

    הקרדיט שייך למישהו אחר (ראה לינק), אבל תודה.
    לעניין השאלה, תוכל להבהיר את כוונתך? לא בדיוק הבנתי.

  • אבי כותב :

    רמי שלום.
    כל הכבוד פשוט תענוג להיכנס לאתר שלך כל פעם מחדש ולהנות לקבל שיפורים.
    האם אפשרי באותה תצורה של הקוד להוסיף כמות צופים על כל פוסט ופוסט ? יש את הפלאג-אין הזה http://lesterchan.net/wordpress/readme/wp-postviews.html אולי אפשר להעזר בו.

    תודה לך

  • רמי כותב :

    היי אבי,
    בהחלט ניתן להוסיף את כמות הפוסטים הנצפים.

    בתחתית הקוד יש פילטר (manage_posts_columns) ואקשן (manage_posts_custom_column) שמוסיפים את התמונות.

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

  • אבי כותב :

    רמי שלום.

    אשמח לקבל את הקוד המוכן, אני בכלל לא מתכנת וזה נראה לי שימושי לכלל משתמשי וורדפרס

הוסף תגובה !

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

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