מספר דרכים לבטל את גוטנברג באתרי וורדפרס

נראה מספר דרכים לביטול גוטנברג – העורך החדש של וורדפרס (הקרב ובא).

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

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

האם גוטנברג ישבור את האתר שלי?

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

עם זאת, במידה והאתר שלכם מסתמך על Custom Meta Boxes ותעדכנו לגירסה 5.0, סביר להניח כי חווית העריכה של עמודים ופוסטים תשבר. ישנה גם האפשרות שתוספים מסויימים בהם אתם משתמשים יחוו בעיות עם גוטנברג. גם במקרה זה, בבשפעה תהיה במיוחד על אותם תוספים המשתמשים ב Custom Meta Boxes וזאת אם מפתחי התוספים לא עדכנו אלו בהתאמה לעורך החדש.

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

האפשרויות שלכם כבעלי אתר וורדפרס

אם אתם מזדהים עם הסיטואציה יש ברשותכם שתי אפשרויות:

  • למצוא את הזמן והתקציב בכדי לבצע בדיקות ולעדכן את כל האתרים והתוכן שלכם עבור גוטנברג.
  • לבטל את גוטנברג / לא לבצע עדכון עד הרגע שתהיו מוכנים לשינוי זה.

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

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

ביטול גוטנברג באמצעות תוסף

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

  • להסיר את גוטנברג באופן מלא (עבור כל סוגי התוכן).
  • לבטל את גוטנברג עבור סוגי תוכן ספציפיים (Specific CPT's).
  • לבטל את גוטנברג לפי הרשאות משתמש (User Roles).
  • לבטל את גוטנברג לפי מזהה העמוד / הפוסט (ID).
  • לבטל את גוטנברג לפי תבנית עמוד (Page Template).

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

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

הגדרות התוסף Disable Gutenberg

חלק מהגדרות התוסף Disable Gutenberg

ביטול גוטנברג באמצעות קוד

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

ביטול מלא של גוטנברג

על מנת לבטל את גוטנברג לגמרי, הוסיפו את הקוד הבא לקובץ functions.php, לתוסף שכתבתם, או אף ל MU-Plugin:

add_filter('gutenberg_can_edit_post_type', '__return_false');

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

כיצד לבטל את גוטנברג עבור סוגי תוכן מסויימים

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

function sv_disable_gutenberg($is_enabled, $post_type) {

	if ($post_type === 'movie') return false; // change book to your post type

	return $is_enabled;

}
add_filter('gutenberg_can_edit_post_type', 'sv_disable_gutenberg');

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

הצטרפו לרשימת התפוצה!

ביטול גוטנברג בזמן רישום סוג התוכן

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

בכדי לעשות זאת פשוט הורידו את editor מהפרמטר supports כאשר אתם רושמים את סוג התוכן. הנה דוגמה:

$args = array(
	'label'    => __('Movies'),
	'labels'   => $labels,
	'supports' => array(
		'author',
		'custom-fields',
		// 'editor', // <-- do not add this param
		'title',
		'thumbnail'
	),
	'has_archive' => false,
	'hierarchical' => false
);
register_post_type('movie', $args);

מכיוון והורדנו את הפרמטר editor, סוג התוכן הנקרא movie לא יכיל דבר הקשור לגוטנברג ולמעשה לא יכיל עורך תוכן כלל.

ביטול גוטנברג בזמן רישום סוג התוכן (באמצעות REST API)

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

$args = array(
	'label'        => __('Movies'),
	'labels'       => $labels,
	'show_in_rest' => false, // set to false to disable Gutenberg
	'supports'     => array(
		'author',
		'custom-fields',
		'editor', // works even when editor is supported
		'title',
		'thumbnail'
	),
	'has_archive' => false,
	'hierarchical' => false
);
register_post_type('movie', $args);

כך שלמרות וסוג התוכן תומך ב post editor, עדיין ניתן לבטל את גוטנברג באמצעות ביטול REST API, וזאת מכיוון וגוטנברג דורש API זה על מנת לעבוד.

ביטול גוטנברג עבור Meta Boxes

תוספים רבים עושים שימוש ב Meta Boxes למינהם. אם אתם כותבים תוסף ומעוניינים כי אותם Meta Boxes יתנהגו בצורה שאנו רגילים אליה, כלומר ללא Meta Boxes, אתם יכולים להעביר את הארגומנט __block_editor_compatible_meta_box לפונקציה  add_meta_box כבדוגמה הבאה:

add_meta_box('metabox_id', 'Metabox Title', 'metabox_callback', null, 'advanced', 'default', array('__block_editor_compatible_meta_box' => false));

שימו לב לפרמטר השביעי $callback_args – אנו מעבירים את הארגומנט __block_editor_compatible_meta_box במערך. עוד אינפורמציה על הוספת Meta Boxes ב WordPress Codex.

לסיכום

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

שיהיה בהצלחה! 🙂

Thanks to Jeff Star. @perishable

רועי יוסף
רועי יוסף

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

2תגובות...
  • אוהד 16 באוקטובר 2018, 14:02

    היי רועי,

    האם ביטול של גוטנברג שונה מלא לבצע עדכון ל Wordpress לגרסה 5? הידע הבסיסי שלי אומר שאם אני לא מעדכן את Wordpress אני חשוף להתקפה ופריצות ולכן השאלה היא האם אפשר לעדכן את גרסת Wordpress אבל לא לעדכן/להתקין את גוטנברג ?

    ואם אני מתקין ומיד מנטרל/מבטל האם אני אוכל להמשיך לעדכן את Wordpress בעתיד מבלי להיות שוב חשוף.

    תודה!

    • רועי יוסף 18 באוקטובר 2018, 19:42

      היי אוהד,

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

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

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

      בהצלחה!

השאירו תגובה

פעימות