דילוג לתוכן
תבניות

ערכת בלוקים מול ערכה קלאסית בוורדפרס: ההשוואה הכנה

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

פורסם

פתחו את תיקיית הערכה שלכם. אם יש בה תיקיית templates עם index.html בפנים, ובנוסף theme.json בשורש — יש לכם ערכת בלוקים. אם יש בה index.php לצד קבצים כמו header.php ו-footer.php, וסרגל הניהול מציג מראה ואז התאמה אישית — יש לכם ערכה קלאסית.

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

הזיהוי של 30 השניות

סימןערכה קלאסיתערכת בלוקים
קובץ התבנית הראשיindex.phptemplates/index.html
כותרת עליונה ותחתונהheader.php, footer.phpparts/header.html, parts/footer.html
הגדרות גלובליותfunctions.phptheme.json (ובנוסף functions.php אופציונלי)
תפריט הניהולמראה > התאמה אישיתמראה > עורך
איפה השינויים נשמריםקבצים בדיסקבסיס הנתונים, כרשומות wp_template
מסך הווידג’טיםקייםלא קיים

WordPress מכריע לפי חיפוש הקובץ templates/index.html. ערכה שנשלחת עם theme.json אבל שומרת על תבניות ה-PHP שלה עדיין נחשבת קלאסית — המצב האמצעי הזה נפוץ ויש לו שם, ונגיע אליו בהמשך.

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

wp eval 'var_dump( wp_is_block_theme() );'

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

מה משתנה בשביל מי שעורך את האתר

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

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

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

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

מה משתנה בשביל המפתח

ערכות קלאסיות משתמשות בהיררכיית התבניות של PHP. WordPress פותר בקשה לאורך שרשרת ידועה — single-{post-type}.php, אחר כך single.php, אחר כך singular.php, אחר כך index.php — והקובץ שלכם רץ, קורא ל-get_header(), מריץ את הלולאה, ומדפיס תגיות שאתם שולטים בהן תו אחר תו.

<?php get_header(); ?>
<main class="site-main">
  <?php while ( have_posts() ) : the_post(); ?>
    <h1><?php the_title(); ?></h1>
    <?php the_content(); ?>
  <?php endwhile; ?>
</main>
<?php get_footer(); ?>

ערכות בלוקים משתמשות באותם שמות היררכיה עם סיומת .html, אבל הקובץ מכיל תגיות בלוקים — HTML עם מפרידי בלוקים בתוך הערות — ואין בו תגיות תבנית:

<!-- wp:template-part {"slug":"header","tagName":"header"} /-->

<!-- wp:group {"tagName":"main"} -->
<main class="wp-block-group">
  <!-- wp:post-title {"level":1} /-->
  <!-- wp:post-content /-->
</main>
<!-- /wp:group -->

<!-- wp:template-part {"slug":"footer","tagName":"footer"} /-->

שלוש השלכות שמפתחים נתקלים בהן מיד:

get_header() ו-get_footer() לעולם לא רצים. כל דבר שמחובר לפעולות האלה, בתוסף או בערכת בת ישנה, פשוט לא עושה כלום בשקט. wp_head ו-wp_footer עדיין נורים, אז רוב הטעינה של קבצים שורדת, אבל הוּקים ייעודיים לכותרת לא.

בסיס הנתונים מנצח את הקבצים שלכם. ברגע שמישהו שומר תבנית בעורך האתר, WordPress מאחסן את הגרסה הזו כרשומת wp_template ומגיש אותה במקום הקובץ שלכם. אפשר לערוך את קובץ ה-HTML כל אחר הצהריים ולראות אפס שינוי באתר. ניקוי ההתאמות של אותה תבנית מחזיר את גרסת הקובץ. זה הדיווח הנפוץ ביותר של “ערכת הבלוקים שלי שבורה”, וזה לא באג.

העיצוב עובר לתוך theme.json. צבעים, סולם ריווח, טיפוגרפיה וברירות מחדל לכל בלוק מוצהרים כנתונים ולא כ-CSS, ו-WordPress מייצר את ה-CSS. זה נקי יותר ועקבי הרבה יותר — עד שאתם צריכים משהו שהסכימה לא יודעת לבטא, ואז אתם כותבים CSS בכל מקרה ונלחמים בסדר העדיפויות מול כללים שנוצרו אוטומטית.

{
  "version": 3,
  "settings": {
    "color": {
      "palette": [
        { "slug": "brand", "color": "#1a1a1a", "name": "Brand" }
      ]
    }
  }
}

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

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

מה באמת מרוויחים, ומה באמת מפסידים

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

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

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

מתי ערכה קלאסית עדיין התשובה הנכונה

  • בונה עמודים מנהל את האתר. Elementor, Divi, Beaver Builder וכלים דומים משתלטים על התבניות בעצמם. הנחת ערכת בלוקים מתחתיהם מוסיפה מערכת תבניות שנייה שלא עושה כלום.
  • התגיות חייבות להיות מדויקות. ספריות רכיבים מותאמות, דרישות נגישות קפדניות, דרישות סכימה חריגות — פלט הבלוקים מוגבל למה שבלוקים פולטים, והמאבק בו יקר יותר מכתיבת PHP.
  • תוספים עם הרבה תבניות. תוספי מנויים, מערכות למידה, מדריכים ותוספי מסחר ותיקים שולחים לא פעם עקיפות תבנית ב-PHP. לרבים יש היום מקבילות בבלוקים; לרבים אין.
  • האתר גמור ועובד. לערכה עם חמש שנים של התאמות מצטברות אין מסלול שדרוג לבלוקים, רק בנייה מחדש. “זו הגישה החדשה יותר” היא לא סיבה עסקית.
  • אף אחד חוץ מכם לא יערוך אותו. התועלת המרכזית של עורך האתר היא מסירת שליטה לאנשים שאינם מפתחים. אם אין אנשים כאלה, אתם משלמים את המחיר עבור תועלת שאף אחד לא מנצל.

דרך הביניים ההיברידית

ערכה קלאסית יכולה להוסיף theme.json ולקבל את מערכת הסגנונות הגלובליים, את ערכות הצבעים והריווח המוכנות ואת עיצוב העורך העקבי — ובמקביל לשמור על תבניות ה-PHP ועל מנגנון ההתאמה האישית שלה. WordPress לא יקרא לזה ערכת בלוקים, ועורך האתר יישאר לא זמין, אבל אתם מקבלים את רוב התועלת של מערכת עיצוב בשבריר מהעבודה.

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

FAQ

שאלות

איך יודעים אם ערכת הנושא שלי היא ערכת בלוקים או ערכה קלאסית?

פותחים את תיקיית הערכה. בערכת בלוקים יש תיקיית templates שמכילה index.html, וכמעט תמיד גם קובץ theme.json בשורש. בערכה קלאסית יש index.php וקבצי תבנית ב-PHP כמו header.php ו-footer.php. בממשק הניהול, ערכות בלוקים מציגות מראה ואז עורך, וערכות קלאסיות מציגות מראה ואז התאמה אישית.

האם ערכות בלוקים טובות יותר מערכות קלאסיות?

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

אפשר להמיר ערכה קלאסית לערכת בלוקים?

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

למה השינויים שלי בקובץ התבנית הפסיקו להופיע אחרי שערכתי בעורך האתר?

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

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

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