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

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

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

ניקח את הפונקציה שמאור יצר:

function replace_title() {
$replacethese = '##';
$replacewith = '';
echo str_replace($replacethese, $replacewith, get_the_title());
}

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

function replace_title() {
$replacethese = '##';
$replacewith = '';
return str_replace($replacethese, $replacewith, get_the_title());
}

נוסיף מתחת לפונקציה פקודה להוספת פילטר לפונקציה ‪the_title()‬:

add_filter('the_title','replace_title');

עכשיו the_title תחזיר את replace_title בלי שנצטרך לשנות את התבנית.

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

3 מחשבות על “משחקים עם כותרת הפוסט בוורדפרס

  1. מאור says:

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

  2. חתול says:

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

    התוסף לעריכת התגובות הוא Edit Comments XT. תוסף לא נוח שמחייב עריכה רצינית של התבנית כדי שיפעל.

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *