{"id":8925,"date":"2022-07-26T12:38:21","date_gmt":"2022-07-26T11:38:21","guid":{"rendered":"https:\/\/www.20i.com\/blog\/?p=8925"},"modified":"2026-07-09T17:40:37","modified_gmt":"2026-07-09T16:40:37","slug":"create-wordpress-block-pattern","status":"publish","type":"post","link":"https:\/\/www.20i.com\/blog\/create-wordpress-block-pattern\/","title":{"rendered":"How to create a WordPress Block Pattern and register it in the Directory"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The WordPress 5.0 release introduced the Gutenberg block editor, which ushered in a new way of site editing.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Gutenberg\u2019s block-based approach made it easier to create and tweak posts and pages for your WordPress site. There are blocks for almost anything, so page enhancement is much simpler.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, the WordPress block editor was clunky during its early days \u2014 you couldn&#8217;t duplicate blocks and had to create each one from scratch.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But that all changed when <a href=\"https:\/\/developer.wordpress.org\/block-editor\/reference-guides\/block-api\/block-patterns\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">WordPress Block Patterns<\/a> were introduced.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this guide, you\u2019ll learn what WordPress Block Patterns are and how to create them.<br>You\u2019ll also learn:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"#blockpatterns\">What are Block Patterns in WordPress?<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"#creating\">Creating WordPress Block Patterns<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"#register\">Registering your Block Pattern<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/docs.google.com\/document\/d\/1B8o6IdtI41qPh58Z5jrhjAgQSAIfc1HnKeRoYY351B8\/edit#heading=h.nc759bqtnhyb\">Future plans for Block Patterns<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/docs.google.com\/document\/d\/1B8o6IdtI41qPh58Z5jrhjAgQSAIfc1HnKeRoYY351B8\/edit#heading=h.l1tl04yw1dde\">Final thoughts: How to create and register WordPress Block Patterns<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"blockpatterns\">What are Block Patterns in WordPress?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>WordPress Block Patterns<\/strong> are a collection of predefined reusable and customisable blocks that you can insert into pages and posts. You can combine different blocks to create a custom block pattern that you can then use to craft professional-looking page layouts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Block Patterns<\/strong> are composed of reusable blocks but are a bit different from them:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Reusable blocks<\/strong> remain the same every time you use them. If you update one, its changes will reflect on all other reusable blocks.<\/li>\n\n\n\n<li><strong>Block Patterns<\/strong> are similar to templates. You can use them as a jump-off point for your design, and customising them won&#8217;t affect anything in the library.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Ever since WordPress Block Patterns were introduced in <a href=\"https:\/\/wordpress.org\/support\/wordpress-version\/version-5-5\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">WordPress 5.5<\/a>, they\u2019ve been a game-changer to the future of Full Site Editing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Before Block Patterns were added, users had to create and edit blocks from scratch when they wanted to edit their site.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With Block Patterns, you can simply browse the predefined block layouts available in the <a href=\"https:\/\/wordpress.org\/patterns\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Pattern Directory<\/a>, and copy and paste those patterns. You save time by creating your own, making it easier and faster to build pages, posts, and entire websites.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With <a href=\"https:\/\/make.wordpress.org\/core\/5-9\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">WordPress 5.9<\/a>, you could only choose from patterns shared by official contributors. But <a href=\"https:\/\/www.20i.com\/blog\/whats-new-wordpress-6\/\" target=\"_blank\" rel=\"noreferrer noopener\">WordPress 6.0<\/a> introduced <a href=\"https:\/\/make.wordpress.org\/core\/2022\/05\/02\/new-features-for-working-with-patterns-and-themes-in-wordpress-6-0\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">major pattern features<\/a> such as user creation and pattern submission using the <a href=\"https:\/\/wordpress.org\/news\/2022\/03\/get-creative-with-the-all-new-pattern-creator\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Pattern Creator<\/a>, along with pattern registration from the Pattern Directory using theme.json.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"creating\">Creating WordPress Block Patterns<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Create a new page in the Gutenberg editor<\/li>\n\n\n\n<li>Select all the blocks you want to include in your pattern<\/li>\n\n\n\n<li>Paste the code in a JSON formatter<\/li>\n\n\n\n<li>Go to the WordPress Theme Editor<\/li>\n\n\n\n<li>Test your new Block Pattern<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">The WordPress Editor comes with several core Block Patterns. But if you want to create your own, you\u2019ll need basic knowledge of WordPress Site Editing (formerly Full Site Editing) and block themes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here\u2019s a step-by-step tutorial for creating your own block patterns:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Create a new page in the Gutenberg editor<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Design a new page or new post using blocks.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can create one from scratch or import an existing pattern from the WordPress pattern library and customise the design to your liking.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Select all the blocks you want to include in your pattern<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Once you\u2019re happy with the design, select the blocks you want to include in your pattern.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Click the three vertical dots on the block toolbar and click <strong>Copy<\/strong>. You should see a notification at the bottom left side of the page that says \u2018<em>Copied X blocks to the clipboard\u2019.<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"283\" src=\"https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/Copy-blocks-WordPress.png.webp\" alt=\"Start creating WordPress Block Patterns by selecting and copying the blocks you want.\" class=\"wp-image-8926\" srcset=\"https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/Copy-blocks-WordPress.png.webp 600w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/Copy-blocks-WordPress-300x142.png.webp 300w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/Copy-blocks-WordPress-370x175.png.webp 370w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/Copy-blocks-WordPress-270x127.png.webp 270w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/Copy-blocks-WordPress-570x269.png.webp 570w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/Copy-blocks-WordPress-150x71.png.webp 150w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Click the three vertical dots at the top right corner of the page and select <strong>Code editor<\/strong>. Copy the code that appears on the screen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"386\" src=\"https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/Copying-the-code.png.webp\" alt=\"Copy the code of the selected blocks, which you can find in the code editor.\" class=\"wp-image-8927\" srcset=\"https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/Copying-the-code.png.webp 800w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/Copying-the-code-300x145.png.webp 300w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/Copying-the-code-768x371.png.webp 768w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/Copying-the-code-370x179.png.webp 370w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/Copying-the-code-270x130.png.webp 270w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/Copying-the-code-570x275.png.webp 570w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/Copying-the-code-740x357.png.webp 740w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/Copying-the-code-150x72.png.webp 150w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">3. Paste the code in a JSON formatter<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">For this example, we used the <a href=\"https:\/\/jsonformatter.org\/json-escape\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">JSON formatter tool<\/a> and pasted the code on the left side of the screen. Click <strong>Escape<\/strong> to see the amended code.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"357\" src=\"https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/JSON-code-formatter.png.webp\" alt=\"Paste the code you copied from the Code Editor in a JSON formatter to convert it to JSON.\" class=\"wp-image-8928\" srcset=\"https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/JSON-code-formatter.png.webp 800w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/JSON-code-formatter-300x134.png.webp 300w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/JSON-code-formatter-768x343.png.webp 768w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/JSON-code-formatter-370x165.png.webp 370w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/JSON-code-formatter-270x120.png.webp 270w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/JSON-code-formatter-570x254.png.webp 570w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/JSON-code-formatter-740x330.png.webp 740w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/JSON-code-formatter-150x67.png.webp 150w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">4. Go to the WordPress Theme Editor<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Go to the <a href=\"https:\/\/www.20i.com\/blog\/how-personalise-wordpress-admin\/\"><strong>WordPress dashboard<\/strong><\/a><strong> &gt; Appearance &gt; Theme File Editor<\/strong>. Click <strong>Theme Functions<\/strong> (or the functions.php file).<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"404\" src=\"https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/WordPress-Theme-Editor.png.webp\" alt=\"Paste the copied JSON code into the WordPress Theme Editor.\" class=\"wp-image-8929\" srcset=\"https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/WordPress-Theme-Editor.png.webp 800w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/WordPress-Theme-Editor-300x152.png.webp 300w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/WordPress-Theme-Editor-768x388.png.webp 768w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/WordPress-Theme-Editor-370x187.png.webp 370w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/WordPress-Theme-Editor-270x136.png.webp 270w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/WordPress-Theme-Editor-570x288.png.webp 570w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/WordPress-Theme-Editor-740x374.png.webp 740w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/WordPress-Theme-Editor-150x76.png.webp 150w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Scroll to the end and paste this code from <a href=\"https:\/\/richtabor.com\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Rich Tabor<\/a>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function function_name() {\nregister_block_pattern(\n'slug',\narray(\n'title'       =&gt; __( 'Your Title', 'text-domain' ),\n'description' =&gt; _x( 'Your Description.', 'Block pattern description', 'text-domain' ),\n'content'     =&gt; \" paste code here \",\n)\n);\n}\nadd_action( 'init', 'function_name' );<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Take note of the two function names. Specify a function name and ensure that both match.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Don&#8217;t forget to add a title and description between the relevant inverted commas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lastly, paste the code from step three in between the inverted commas in the content section.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When you\u2019re done, click <strong>Update file<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">5. Test your new Block Pattern<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Create a new WordPress page to test your Block Pattern.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Click the Toggle block inserter (the blue <strong>+<\/strong> button at the top left corner of the page). Switch from the Blocks tab to the <strong>Patterns <\/strong>tab.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Click the drop-down menu.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Select the new addition in the menu called <strong>Uncategorized<\/strong>. It should show you your new custom WordPress Block Pattern.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"373\" src=\"https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/Testing-block-pattern.png.webp\" alt=\"Test your new WordPress Block Pattern by creating a new page.\" class=\"wp-image-8931\" srcset=\"https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/Testing-block-pattern.png.webp 800w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/Testing-block-pattern-300x140.png.webp 300w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/Testing-block-pattern-768x358.png.webp 768w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/Testing-block-pattern-370x173.png.webp 370w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/Testing-block-pattern-270x126.png.webp 270w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/Testing-block-pattern-570x266.png.webp 570w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/Testing-block-pattern-740x345.png.webp 740w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2022\/07\/Testing-block-pattern-150x70.png.webp 150w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Registering your WordPress Block Pattern<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Once you\u2019ve created your WordPress Block Pattern, you can register it to the <a href=\"https:\/\/wordpress.org\/patterns\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Pattern Directory<\/a> to share with other WordPress.org users.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Use the <strong>register_block_pattern<\/strong> helper function. You\u2019ll need to input two pieces of information:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Title (name of the pattern, made up of namespace\/title)<\/li>\n\n\n\n<li>Properties (array description of the pattern properties)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Within the array, only the pattern <strong>title<\/strong> and <strong>content<\/strong> properties are required.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">According to the <a href=\"https:\/\/developer.wordpress.org\/block-editor\/reference-guides\/block-api\/block-patterns\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Block Editor Handbook<\/a>, other optional properties available include:<\/p>\n\n\n\n<ul id=\"register\" class=\"wp-block-list\">\n<li><strong>Description<\/strong>: Describes the pattern in the inserter.<\/li>\n\n\n\n<li><strong>Categories<\/strong>: Used to group Block Patterns. You must register Categories separately to be used on patterns.<\/li>\n\n\n\n<li><strong>Keywords<\/strong>: Aliases or terms that people can use to find your pattern when searching.<\/li>\n\n\n\n<li><strong>viewportWidth<\/strong>: An integer that specifies the pattern\u2019s intended width so you can scale its view in the inserter.<\/li>\n\n\n\n<li><strong>blockTypes<\/strong>: Used to specify block types that the pattern is meant to be used with. You need to declare the block\u2019s name for that.<\/li>\n\n\n\n<li><strong>Inserter<\/strong>: All Block Patterns appear in the inserter by default. Set the inserter to <em>false<\/em> if you want to hide a pattern.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Here\u2019s some sample code to register a WordPress Block Pattern called &#8216;blocky choc&#8217;, which uses the optional property &#8216;description&#8217;, as well as title and content:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>register_block_pattern(\n    'my-plugin\/blocky-choc',\n    array(\n        'title'       =&gt; __( 'Two buttons', 'my-plugin' ),\n        'description' =&gt; _x( 'Two horizontal buttons, the left button is filled in, and the right button is outlined.', 'Block pattern description', 'my-plugin' ),\n        'content'     =&gt; \"&lt;!-- wp:buttons {\\\"align\\\":\\\"center\\\"} --&gt;\\n&lt;div class=\\\"wp-block-buttons aligncenter\\\"&gt;&lt;!-- wp:button {\\\"backgroundColor\\\":\\\"very-dark-gray\\\",\\\"borderRadius\\\":0} --&gt;\\n&lt;div class=\\\"wp-block-button\\\"&gt;&lt;a class=\\\"wp-block-button__link has-background has-very-dark-gray-background-color no-border-radius\\\"&gt;\" . esc_html__( 'Button One', 'my-plugin' ) . \"&lt;\/a&gt;&lt;\/div&gt;\\n&lt;!-- \/wp:button --&gt;\\n\\n&lt;!-- wp:button {\\\"textColor\\\":\\\"very-dark-gray\\\",\\\"borderRadius\\\":0,\\\"className\\\":\\\"is-style-outline\\\"} --&gt;\\n&lt;div class=\\\"wp-block-button is-style-outline\\\"&gt;&lt;a class=\\\"wp-block-button__link has-text-color has-very-dark-gray-color no-border-radius\\\"&gt;\" . esc_html__( 'Button Two', 'my-plugin' ) . \"&lt;\/a&gt;&lt;\/div&gt;\\n&lt;!-- \/wp:button --&gt;&lt;\/div&gt;\\n&lt;!-- \/wp:buttons --&gt;\",\n    )\n);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">To unregister a block pattern from the theme or plugin, use the unregister_block_pattern function.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>unregister_block_pattern( 'my-plugin\/blocky-choc' );<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Future plans for Block Patterns<\/h2>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Exploring WordPress 6.0: Style Variations, Block Locking UI, Writing Improvements, &amp; more\" width=\"1200\" height=\"675\" src=\"https:\/\/www.youtube.com\/embed\/abaaVKl-beM?start=904&#038;feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress Block Patterns have so much potential for future use cases. The WordPress and Automattic team has already planned future pattern enhancement plans, such as:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/39281\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Patterns as sectioning elements<\/a><\/li>\n\n\n\n<li>Options to <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/40034\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">pick patterns on page creation<\/a><\/li>\n\n\n\n<li>Integrated Pattern Directory search<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Final thoughts: How to create and register WordPress Block Patterns<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress Block Patterns make it possible for users to create or customise pages without the use of page builders or <a href=\"https:\/\/www.20i.com\/blog\/essential-wordpress-plugins\/\">plugins<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can choose from built-in Block Patterns in the WordPress Editor or search the <a href=\"https:\/\/wordpress.org\/patterns\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Pattern Directory<\/a> and copy your preferred Block Pattern. As of WordPress 6.0, users can contribute their own work to the Block Pattern Directory to help others.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you\u2019re interested in trying Block Patterns but don\u2019t have a WordPress website yet, check out 20i\u2019s lightning-fast and <a href=\"https:\/\/www.20i.com\/wordpress-hosting\">award-winning Managed WordPress Hosting<\/a> today.<\/p>\n\n\n\n<script type=\"application\/ld+json\">\n{\"@context\":\"http:\/\/schema.org\",\n\"@type\":\"Webpage\",\"name\":\"WordPress Hosting \u2013 20i\",\"url\":\"https:\/\/www.20i.com\/wordpress-hosting\",\n\"@id\":\"https:\/\/www.20i.com\/wordpress-hosting#webpage\"}\n<\/script>\n<script type=\"application\/ld+json\">\n{\"@context\":\"http:\/\/schema.org\",\n\"@type\":\"HowTo\",\n\"@id\":\"https:\/\/www.20i.com\/blog\/create-wordpress-block-pattern\/#HowTo\",\n\"url\":\"https:\/\/www.20i.com\/blog\/create-wordpress-block-pattern\/\",\n\"inLanguage\":\"en-gb\",\n\"name\":\"How to create a WordPress Block Pattern\",\n\"description\":\"WordPress Block Patterns make it easy for users to build reusable layouts for their posts and pages. Read this tutorial.\",\n\"isPartOf\":{\"@id\":\"https:\/\/www.20i.com\/wordpress-hosting#webpage\"},\n  \"step\": [\n    {\n      \"@type\": \"HowToStep\",\n      \"itemListElement\": {\n        \"@type\": \"HowToDirection\",\n        \"text\": \"Create a new page in the Gutenberg editor\"\n      }\n    },{\n      \"@type\": \"HowToStep\",\n      \"itemListElement\": {\n        \"@type\": \"HowToDirection\",\n        \"text\": \"Select all the blocks you want to include in your pattern\"\n      }\n    },{\n      \"@type\": \"HowToStep\",\n      \"itemListElement\": {\n        \"@type\": \"HowToDirection\",\n        \"text\": \"Paste the code in a JSON formatter\"\n      }\n    },{\n      \"@type\": \"HowToStep\",\n      \"itemListElement\": {\n        \"@type\": \"HowToDirection\",\n        \"text\": \"Go to the WordPress Theme Editor\"\n      }\n    },{\n      \"@type\": \"HowToStep\",\n      \"itemListElement\": {\n        \"@type\": \"HowToDirection\",\n        \"text\": \"Test your new Block Pattern\"\n      }\n    },{\n      \"@type\": \"HowToStep\",\n      \"itemListElement\": {\n        \"@type\": \"HowToDirection\",\n        \"text\": \"The WordPress Editor comes with several core Block Patterns. But if you want to create your own, you\u2019ll need basic knowledge of WordPress Full Site Editing (FSE) and block themes.\n\nHere\u2019s a step-by-step tutorial for creating your own block patterns:\"\n      }\n    }\n ],\n\"about\": [{ \n\"@type\": \"Thing\", \"name\": \"WordPress\",  \n\"sameAs\": \"https:\/\/en.wikipedia.org\/wiki\/WordPress\"},\n{\"@type\": \"Thing\", \"name\": \"Block Patterns\",  \n\"sameAs\": \"https:\/\/developer.wordpress.org\/block-editor\/reference-guides\/block-api\/block-patterns\/\"}\n],  \n\"mentions\": [{ \n\"@type\": \"Thing\", \"name\": \"Gutenberg editor\",  \n\"sameAs\": \"https:\/\/wordpress.org\/gutenberg\/\"},\n{ \"@type\": \"Thing\", \"name\": \"JSON\",  \n\"sameAs\": \"https:\/\/en.wikipedia.org\/wiki\/JSON\"},\n{ \"@type\": \"Thing\", \"name\": \"Theme\",  \n\"sameAs\": \"https:\/\/en.wikipedia.org\/wiki\/WordPress#Themes\"},\n{ \"@type\": \"Thing\", \"name\": \"Pattern Directory\",  \n\"sameAs\": \"https:\/\/wordpress.org\/patterns\/\"}\n\n] \n}\n \n    }<\/script>\n\n\n<div class='code-block code-block-4' style='margin: 8px 0; clear: both;'>\n<hr>\n<br \/><a href=\"https:\/\/www.20i.com\/wordpress-hosting\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/03\/Blog-Ad-WordPress-1200x625-1.png\" loading=\"lazy\" alt=\"Managed WordPress Hosting\"><\/a><\/div>\n\n","protected":false},"excerpt":{"rendered":"WordPress Block Patterns are a collection of reusable and customisable blocks. In this guide, you\u2019ll learn what Block Patterns are and how to create them.","protected":false},"author":27,"featured_media":8956,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"csco_singular_sidebar":"","csco_page_header_type":"","csco_page_load_nextpost":"","footnotes":""},"categories":[60],"tags":[57,79,76],"class_list":["post-8925","post","type-post","status-publish","format-standard","has-post-thumbnail","category-web-design-dev","tag-web-design","tag-web-development","tag-wordpress","cs-entry"],"_links":{"self":[{"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/posts\/8925","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/comments?post=8925"}],"version-history":[{"count":18,"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/posts\/8925\/revisions"}],"predecessor-version":[{"id":18158,"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/posts\/8925\/revisions\/18158"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/media\/8956"}],"wp:attachment":[{"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/media?parent=8925"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/categories?post=8925"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/tags?post=8925"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}