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

טקסט ברירת מחדל לפוסטים חדשים

9 בפברואר 2010 | מאת רמי | 10 תגובות | תגיות: , , ,

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

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

הקוד

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

function default_post_content() {
    $content = "This is the default content.";
    return $content;
}
add_filter( 'default_content', 'default_post_content' );

התוצאה

טקסט ברירת מחדל בפוסטים חדשים

טקסט ברירת מחדל בפוסטים חדשים

פילטרים נוספים

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

סיכום

שימוש בפילטרים אלה מאפשרת לנו להגדיר מראש את התוכן התקציר והכותרת ההתחלתי של הפוסט. כך למשל אפשר להגדיר מראש את מבנה של התוכן עם תגיות H2 ותגיות H3 תוך הזנת שמות רצויים כך שהעורך יצטרך רק להכניס את הטקסטים לפוסט. הדבר תורם לחסכון בזמן בכתיבת הפוסטים ולהגדרת מבנה קבוע לתכני האתר. כאמור, השימוש בפילטר אפשרי גם לגבי כותרת ברירת מחדל של הפוסט עצמו, לדוגמא "פריט מסוג X, משפחה Y, איכות Z" תשמש כברירת מחדל והעורך שמתחיל לכתוב פוסט חדש מחליך את המשתנים בהתאם לסוג הפריט עליו הוא כותב.

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

מאת רמי

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

10 תגובות »

  • ארז כותב :

    אבל למה אין בשום מקום באתר פרטי צור קשר או דרך ליצור קשר איתך…

  • רמי כותב :

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

  • ירון כותב :

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

  • רמי כותב :

    ירון, אינני מכיר דרך, אבל אני בטוח שאפשר.

  • נחומי כותב :

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

    תודה רבה.

  • רמי כותב :

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

    function default_post_content() {
        if ( 'guide' == get_post_type() ) {
            $content = "This is the default content.";
            return $content;
        }
    }
    add_filter('default_content', 'default_post_content');

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

  • ראובן קרסיק כותב :

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

    function default_post_content() {
        if ( 'guide' == get_post_type() ) {
            $content = "This is the default for guides.";
        } else {
            $content = "This is deafult for posts." . get_post_type();
        }
        return $content;
    }
    add_filter( 'default_content', 'default_post_content' );

    והוא פשוט לא הדפיס כלום אחרי המחרוזת("This is the deafult for posts. ")

    יש לך רעיון?

  • רמי כותב :

    ראובן, אם יש סוגי תכנים מרובים הייתי משתמש בקוד הבא:

    function default_post_content() {
        switch ( get_post_type() ) {
            case 'movie':
                $content = "This is a movie.";
                break;
            case 'song':
                $content = "This is a song.";
                break;
            case 'page':
                $content = "This is a page.";
                break;
            default:
                $content = "This is a post.";
        }
        return $content;
    }
    add_filter( 'default_content', 'default_post_content' );

    ככה רואים בצורה ברורה איזה תוכן יוצג לסוגים השונים.

  • רמי כותב :

    אני רואה שלא עניתי לך על השאלה שלך, תנסה את הקוד הבא:

    function default_post_content() {
        global $post_type;
        if ( 'guide' == $post_type ) {
            $content = "This is the default for guides.";
        } else {
            $content = "This is deafult for " . $post_type;
        }
        return $content;
    }
    add_filter( 'default_content', 'default_post_content' );
  • ליאור כותב :

    היי

    יש פילטר שכן ניתן להוסיף כיתוב לפוסט קיים ולא רק לחדש?

    תודה מראש

הוסף תגובה !

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

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