לא פעם רציתי להציג באתר מספר רץ: מספר הפוסטים הנוכחי, מספר הקטגורית, מספר המוצרים, או כל ספירה אחרת שמתעדכנת לבד.
אחרי שחפרתי וחפרתי (יותר מדי!), סוף-סוף הגעתי לשיטה הכי פשוטה, ברורה ואלגנטית – והיא עובדת נהדר עם Bricks.
אז הנה כל התהליך, צעד-אחר-צעד, בלי כאבי ראש.
שלב 1: מוסיפים פונקציה שמחזירה את המספר הדינאמי
נכנסים לקובץ functions.php של התבנית-הבת ומגדירים פונקציה שמחזירה את מספר הפריטים שרוצים להציג.
למשל – מספר הפוסטים באתר:
/**
* Return total published posts count.
*/
function count_articles() {
$count = wp_count_posts('post');
return $count->publish;
}
שלב 2: מאפשרים ל-Bricks לגשת לפונקציה (חדש מגירסה 1.9.7)
החל מ-Bricks 1.9.7 חייבים לאשר במפורש אילו פונקציות ניתן לקרוא מתוך Dynamic Data באמצעות תג ה-echo.
לכן מוסיפים ל־functions.php את הפילטר הבא:
add_filter( 'bricks/code/echo_function_names', function() {
return [
'count_articles', // הפונקציה שלכם
'another_custom_function',
];
} );
וזה לפי ההנחיה הרשמית של Bricks:
"Starting at Bricks 1.9.7, you must explicitly allow any function names you want to call via Bricks’ dynamic data echo tag using the new bricks/code/echo_function_names filter."
שלב 3: מוסיפים וידג'ט Counter בדף
עכשיו החלק הכיפי.
- פותחים את הדף בעורך Bricks.
- מוסיפים וידג'ט מסוג Counter.
- בשדה Start מכניסים:
0 - בשדה End כותבים את ה-Dynamic Data הבא:
{echo:count_articles}
(כמובן עם שם הפונקציה שלכם).
וברגע שמעדכנים – המספר רץ ומתעדכן אוטומטית לפי כמות הפוסטים באתר.
לסיכום
אחרי מסע ארוך ומלא ניסויים, זאת הדרך הנקייה והפשוטה ביותר להציג מספרים דינאמיים באתר Bricks.
הכל קורה בצד השרת, הכל מתעדכן לבד, ואין צורך להסתבך עם JS, שאילתות או תוספים מיותרים.