{"id":1953,"date":"2020-11-12T08:53:00","date_gmt":"2020-11-12T01:53:00","guid":{"rendered":"https:\/\/wptips.dev\/?p=1953"},"modified":"2021-01-04T09:20:46","modified_gmt":"2021-01-04T02:20:46","slug":"change-gutenberg-alignment","status":"publish","type":"post","link":"https:\/\/pixelstudio.id\/blog\/change-gutenberg-alignment\/","title":{"rendered":"How to Change Default Alignment of Gutenberg Block?"},"content":{"rendered":"\n<p>I believe we all agree that Columns block should <strong>default to Wide<\/strong> alignment. It&#8217;s just rare for you to want to divide an already narrow container into 2.<\/p>\n\n\n\n<p>And why does Table block has Left and Right alignment that makes it float? From 8 years of web development, <strong>never once I use a floating table<\/strong>.<\/p>\n\n\n\n<p>This article will show you how to modify those.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1 &#8211; Enqueue a JS into the Editor<\/h2>\n\n\n\n<p>We have to do it via JavaScript. There&#8217;s no PHP functions that can change the alignment.<\/p>\n\n\n\n<pre title=\"functions.php\" class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">add_action(&nbsp;'enqueue_block_editor_assets',&nbsp;'my_editor_assets',&nbsp;100&nbsp;);\n\n\n<em>function<\/em>&nbsp;my_editor_assets()&nbsp;{\n&nbsp;&nbsp;$js_dir&nbsp;=&nbsp;get_stylesheet_directory_uri()&nbsp;.&nbsp;'\/js';\n\n&nbsp;&nbsp;wp_enqueue_script(&nbsp;'my-editor',&nbsp;$js_dir&nbsp;.&nbsp;'\/my-editor.js',\n    [&nbsp;'wp-blocks',&nbsp;'wp-dom'&nbsp;]&nbsp;,&nbsp;'',&nbsp;true&nbsp;);\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2 &#8211; Modify the Alignments<\/h2>\n\n\n\n<p>The code snippet below will change the available and default alignment in some blocks.<\/p>\n\n\n\n<p>You might not agree with some changes like making the Cover block defaults to Full width. <strong>So, feel free to adjust it to your liking<\/strong>:<\/p>\n\n\n\n<pre title=\"js\/my-editor.js\" class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">\/\/&nbsp;Modify&nbsp;settings&nbsp;for&nbsp;Core&nbsp;blocks\nwp.hooks.addFilter(&nbsp;'blocks.registerBlockType',\n  'my\/change_alignment',&nbsp;(&nbsp;<em>settings<\/em>,&nbsp;<em>name<\/em>&nbsp;)&nbsp;<em>=&gt;<\/em>&nbsp;{\n\n&nbsp;&nbsp;switch(&nbsp;name&nbsp;)&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;These&nbsp;blocks&nbsp;only&nbsp;allowed&nbsp;to&nbsp;use&nbsp;Wide&nbsp;alignment\n&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'core\/paragraph':\n&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'core\/list':\n&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'core\/gallery':\n&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'core\/code':\n&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'core\/verse':\n&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'core\/preformatted':\n&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'core\/table':\n&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'core\/pullquote':\n&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'core\/heading':\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;lodash.assign(&nbsp;{},&nbsp;settings,&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;supports:&nbsp;lodash.assign(&nbsp;{},&nbsp;settings.supports,&nbsp;{\n          align:&nbsp;[&nbsp;'wide']\n        }&nbsp;),\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;);\n&nbsp;&nbsp;&nbsp;&nbsp;\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;Has&nbsp;no&nbsp;alignment&nbsp;choice\n&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'core\/file':\n&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'core\/audio':\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;lodash.assign(&nbsp;{},&nbsp;settings,&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;supports:&nbsp;lodash.assign(&nbsp;{},&nbsp;settings.supports,&nbsp;{\n          align:&nbsp;[]\n        }&nbsp;),\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;);\n\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;Only&nbsp;allow&nbsp;Center&nbsp;and&nbsp;Wide\n&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'core\/buttons':\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;lodash.assign(&nbsp;{},&nbsp;settings,&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;supports:&nbsp;lodash.assign(&nbsp;{},&nbsp;settings.supports,&nbsp;{\n          align:&nbsp;['center',&nbsp;'wide']\n        }&nbsp;),\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;);\n\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;Only&nbsp;allow&nbsp;Center\n&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'core\/social-links':\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;lodash.assign(&nbsp;{},&nbsp;settings,&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;supports:&nbsp;lodash.assign(&nbsp;{},&nbsp;settings.supports,&nbsp;{\n          align:&nbsp;['center']\n        }&nbsp;),\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;);\n\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;Default&nbsp;to&nbsp;Wide\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;&nbsp;&nbsp;Existing&nbsp;Columns&nbsp;that&nbsp;isn't&nbsp;Wide&nbsp;will&nbsp;have&nbsp;\"invalid&nbsp;content\"&nbsp;error.\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;&nbsp;&nbsp;Clicking&nbsp;\"Attempt&nbsp;Block&nbsp;Recovery\"&nbsp;will&nbsp;fix&nbsp;it,&nbsp;but&nbsp;it&nbsp;becomes&nbsp;Wide.\n&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'core\/columns':\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;lodash.assign(&nbsp;{},&nbsp;settings,&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;supports:&nbsp;lodash.assign(&nbsp;{},&nbsp;settings.supports,&nbsp;{\n          align:&nbsp;['wide']\n        }&nbsp;),\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attributes:&nbsp;lodash.assign(&nbsp;{},&nbsp;settings.attributes,&nbsp;{&nbsp;align:&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type:&nbsp;'string',&nbsp;default:&nbsp;'wide'\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;}&nbsp;),\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;);\n\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;Default&nbsp;to&nbsp;Full\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;&nbsp;&nbsp;Existing&nbsp;Group&nbsp;that&nbsp;isn't&nbsp;Full&nbsp;will&nbsp;have&nbsp;\"invalid&nbsp;content\"&nbsp;error.\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;&nbsp;&nbsp;Clicking&nbsp;\"Attempt&nbsp;Block&nbsp;Recovery\"&nbsp;will&nbsp;fix&nbsp;it,&nbsp;but&nbsp;it&nbsp;becomes&nbsp;Full.\n&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'core\/group':\n&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'core\/cover':\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;lodash.assign(&nbsp;{},&nbsp;settings,&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attributes:&nbsp;lodash.assign(&nbsp;{},&nbsp;settings.attributes,&nbsp;{&nbsp;align:&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type:&nbsp;'string',&nbsp;default:&nbsp;'full'\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;}&nbsp;),\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;);\n&nbsp;&nbsp;}\n\n&nbsp;&nbsp;return&nbsp;settings;\n});\n\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3 &#8211; Try it Out<\/h2>\n\n\n\n<p>Try creating a Column block, does it immediately goes into Wide alignment?<\/p>\n\n\n\n<p>If not, check whether <code>my-editor.js<\/code> is enqueued properly by opening DevTool (F12) and search for its <code>&lt;script&gt;<\/code> tag.<\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-dots\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>I have been using this snippet since Gutenberg launch in December 2018. I&#8217;m quite surprised that it&#8217;s still relevant today.<\/p>\n\n\n\n<p>You might think this is just a minor thing, but it gives a much better User Experience especially if you let your client edit the site.<\/p>\n\n\n\n<p>It also reduces human error by disabling weird alignments like floating Table or floating Button.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>If you have any trouble or question, let me know in the comment below \ud83d\ude42<\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>I believe we all agree that Columns block should default to Wide alignment. This article will show you how to modify that.<\/p>\n","protected":false},"author":1,"featured_media":1957,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[22,32],"class_list":["post-1953","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gutenberg","tag-gutenberg","tag-javascript"],"blocksy_meta":"","_links":{"self":[{"href":"https:\/\/pixelstudio.id\/blog\/wp-json\/wp\/v2\/posts\/1953","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pixelstudio.id\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pixelstudio.id\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pixelstudio.id\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pixelstudio.id\/blog\/wp-json\/wp\/v2\/comments?post=1953"}],"version-history":[{"count":3,"href":"https:\/\/pixelstudio.id\/blog\/wp-json\/wp\/v2\/posts\/1953\/revisions"}],"predecessor-version":[{"id":1987,"href":"https:\/\/pixelstudio.id\/blog\/wp-json\/wp\/v2\/posts\/1953\/revisions\/1987"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pixelstudio.id\/blog\/wp-json\/wp\/v2\/media\/1957"}],"wp:attachment":[{"href":"https:\/\/pixelstudio.id\/blog\/wp-json\/wp\/v2\/media?parent=1953"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pixelstudio.id\/blog\/wp-json\/wp\/v2\/categories?post=1953"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pixelstudio.id\/blog\/wp-json\/wp\/v2\/tags?post=1953"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}