PluginProbe
Gutenberg / 10.6.1
Gutenberg v10.6.1
23.9.1 23.9.0 23.8.0 23.7.2 23.7.1 23.7.0 23.6.1 23.6.2 23.6.0 23.5.3 23.5.2 23.5.1 23.5.0 23.4.0 23.3.2 23.3.1 23.3.0 23.2.0 23.2.1 23.2.2 23.1.1 23.1.0 23.0.1 12.6.0 7.4.0 All 402 releases
gutenberg / lib / block-patterns.php

block-patterns.php in Gutenberg 10.6.1, at lib/block-patterns.php

249 lines 10.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Block patterns registration.
4 *
5 * @package gutenberg
6 */
7
8 /**
9 * Register Gutenberg bundled patterns.
10 */
11 function register_gutenberg_patterns() {
12 // Register categories used for block patterns.
13 register_block_pattern_category( 'query', array( 'label' => __( 'Query', 'gutenberg' ) ) );
14
15 // Initial Query block patterns.
16 register_block_pattern(
17 'query/standard-posts',
18 array(
19 'title' => __( 'Standard', 'gutenberg' ),
20 'blockTypes' => array( 'core/query' ),
21 'categories' => array( 'query' ),
22 'content' => '<!-- wp:query {"query":{"perPage":1,"pages":0,"offset":0,"postType":"post","categoryIds":[],"tagIds":[],"order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"","inherit":true}} -->
23 <div class="wp-block-query">
24 <!-- wp:query-loop -->
25 <!-- wp:post-title {"isLink":true} /-->
26 <!-- wp:post-featured-image {"isLink":true,"align":"wide"} /-->
27 <!-- wp:post-excerpt /-->
28 <!-- wp:separator -->
29 <hr class="wp-block-separator"/>
30 <!-- /wp:separator -->
31 <!-- wp:post-date /-->
32 <!-- /wp:query-loop -->
33 </div>
34 <!-- /wp:query -->',
35 )
36 );
37
38 register_block_pattern(
39 'query/medium-posts',
40 array(
41 'title' => __( 'Image at left', 'gutenberg' ),
42 'blockTypes' => array( 'core/query' ),
43 'categories' => array( 'query' ),
44 'content' => '<!-- wp:query {"query":{"perPage":1,"pages":0,"offset":0,"postType":"post","categoryIds":[],"tagIds":[],"order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"","inherit":true}} -->
45 <div class="wp-block-query">
46 <!-- wp:query-loop -->
47 <!-- wp:columns {"align":"wide"} -->
48 <div class="wp-block-columns alignwide"><!-- wp:column {"width":"66.66%"} -->
49 <div class="wp-block-column" style="flex-basis:66.66%"><!-- wp:post-featured-image {"isLink":true} /--></div>
50 <!-- /wp:column -->
51 <!-- wp:column {"width":"33.33%"} -->
52 <div class="wp-block-column" style="flex-basis:33.33%"><!-- wp:post-title {"isLink":true} /-->
53 <!-- wp:post-excerpt /--></div>
54 <!-- /wp:column --></div>
55 <!-- /wp:columns -->
56 <!-- /wp:query-loop -->
57 </div>
58 <!-- /wp:query -->',
59 )
60 );
61
62 register_block_pattern(
63 'query/small-posts',
64 array(
65 'title' => __( 'Small image and title', 'gutenberg' ),
66 'blockTypes' => array( 'core/query' ),
67 'categories' => array( 'query' ),
68 'content' => '<!-- wp:query {"query":{"perPage":1,"pages":0,"offset":0,"postType":"post","categoryIds":[],"tagIds":[],"order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"","inherit":true}} -->
69 <div class="wp-block-query">
70 <!-- wp:query-loop -->
71 <!-- wp:columns {"verticalAlignment":"center"} -->
72 <div class="wp-block-columns are-vertically-aligned-center"><!-- wp:column {"verticalAlignment":"center","width":"25%"} -->
73 <div class="wp-block-column is-vertically-aligned-center" style="flex-basis:25%"><!-- wp:post-featured-image {"isLink":true} /--></div>
74 <!-- /wp:column -->
75 <!-- wp:column {"verticalAlignment":"center","width":"75%"} -->
76 <div class="wp-block-column is-vertically-aligned-center" style="flex-basis:75%"><!-- wp:post-title {"isLink":true} /--></div>
77 <!-- /wp:column --></div>
78 <!-- /wp:columns -->
79 <!-- /wp:query-loop -->
80 </div>
81 <!-- /wp:query -->',
82 )
83 );
84
85 register_block_pattern(
86 'query/grid-posts',
87 array(
88 'title' => __( 'Grid', 'gutenberg' ),
89 'blockTypes' => array( 'core/query' ),
90 'categories' => array( 'query' ),
91 'content' => '<!-- wp:query {"query":{"perPage":6,"pages":0,"offset":0,"postType":"post","categoryIds":[],"tagIds":[],"order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"exclude","inherit":true},"layout":{"type":"flex","columns":3}} -->
92 <div class="wp-block-query">
93 <!-- wp:query-loop -->
94 <!-- wp:group {"tagName":"main","style":{"spacing":{"padding":{"top":"30px","right":"30px","bottom":"30px","left":"30px"}}},"layout":{"inherit":false}} -->
95 <main class="wp-block-group" style="padding-top:30px;padding-right:30px;padding-bottom:30px;padding-left:30px"><!-- wp:post-title {"isLink":true} /-->
96 <!-- wp:post-excerpt {"wordCount":20} /-->
97 <!-- wp:post-date /--></div>
98 <!-- /wp:group -->
99 <!-- /wp:query-loop -->
100 </div>
101 <!-- /wp:query -->',
102 )
103 );
104
105 register_block_pattern(
106 'query/large-title-posts',
107 array(
108 'title' => __( 'Large title', 'gutenberg' ),
109 'blockTypes' => array( 'core/query' ),
110 'categories' => array( 'query' ),
111 'content' => '<!-- wp:group {"align":"full","style":{"spacing":{"padding":{"top":"100px","right":"100px","bottom":"100px","left":"100px"}},"color":{"text":"#ffffff","background":"#000000"}}} -->
112 <div class="wp-block-group alignfull has-text-color has-background" style="background-color:#000000;color:#ffffff;padding-top:100px;padding-right:100px;padding-bottom:100px;padding-left:100px"><!-- wp:query {"query":{"perPage":3,"pages":0,"offset":0,"postType":"post","categoryIds":[],"tagIds":[],"order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"","inherit":true}} -->
113 <div class="wp-block-query"><!-- wp:query-loop -->
114 <!-- wp:separator {"customColor":"#ffffff","align":"wide","className":"is-style-wide"} -->
115 <hr class="wp-block-separator alignwide has-text-color has-background is-style-wide" style="background-color:#ffffff;color:#ffffff"/>
116 <!-- /wp:separator -->
117
118 <!-- wp:columns {"verticalAlignment":"center","align":"wide"} -->
119 <div class="wp-block-columns alignwide are-vertically-aligned-center"><!-- wp:column {"verticalAlignment":"center","width":"20%"} -->
120 <div class="wp-block-column is-vertically-aligned-center" style="flex-basis:20%"><!-- wp:post-date {"style":{"color":{"text":"#ffffff"}},"fontSize":"extra-small"} /--></div>
121 <!-- /wp:column -->
122
123 <!-- wp:column {"verticalAlignment":"center","width":"80%"} -->
124 <div class="wp-block-column is-vertically-aligned-center" style="flex-basis:80%"><!-- wp:post-title {"isLink":true,"style":{"typography":{"fontSize":"72px","lineHeight":"1.1"},"color":{"text":"#ffffff","link":"#ffffff"}}} /--></div>
125 <!-- /wp:column --></div>
126 <!-- /wp:columns -->
127 <!-- /wp:query-loop --></div>
128 <!-- /wp:query --></div>
129 <!-- /wp:group -->',
130 )
131 );
132
133 register_block_pattern(
134 'query/offset-posts',
135 array(
136 'title' => __( 'Offset', 'gutenberg' ),
137 'blockTypes' => array( 'core/query' ),
138 'categories' => array( 'query' ),
139 'content' => '<!-- wp:group {"tagName":"main","style":{"spacing":{"padding":{"top":"30px","right":"30px","bottom":"30px","left":"30px"}}},"layout":{"inherit":false}} -->
140 <main class="wp-block-group" style="padding-top:30px;padding-right:30px;padding-bottom:30px;padding-left:30px"><!-- wp:columns -->
141 <div class="wp-block-columns"><!-- wp:column {"width":"50%"} -->
142 <div class="wp-block-column" style="flex-basis:50%"><!-- wp:query {"query":{"perPage":2,"pages":0,"offset":0,"postType":"post","categoryIds":[],"tagIds":[],"order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"exclude","inherit":false},"layout":{"type":"list"}} -->
143 <div class="wp-block-query"><!-- wp:query-loop -->
144 <!-- wp:post-featured-image /-->
145 <!-- wp:post-title /-->
146 <!-- wp:post-date /-->
147 <!-- wp:spacer {"height":200} -->
148 <div style="height:200px" aria-hidden="true" class="wp-block-spacer"></div>
149 <!-- /wp:spacer -->
150 <!-- /wp:query-loop --></div>
151 <!-- /wp:query --></div>
152 <!-- /wp:column -->
153 <!-- wp:column {"width":"50%"} -->
154 <div class="wp-block-column" style="flex-basis:50%"><!-- wp:query {"query":{"perPage":2,"pages":0,"offset":2,"postType":"post","categoryIds":[],"tagIds":[],"order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"exclude","inherit":false},"layout":{"type":"list"}} -->
155 <div class="wp-block-query"><!-- wp:query-loop -->
156 <!-- wp:spacer {"height":200} -->
157 <div style="height:200px" aria-hidden="true" class="wp-block-spacer"></div>
158 <!-- /wp:spacer -->
159 <!-- wp:post-featured-image /-->
160 <!-- wp:post-title /-->
161 <!-- wp:post-date /-->
162 <!-- /wp:query-loop --></div>
163 <!-- /wp:query --></div>
164 <!-- /wp:column --></div>
165 <!-- /wp:columns --></main>
166 <!-- /wp:group -->',
167 )
168 );
169
170 // Initial block pattern to be used with block transformations with patterns.
171 register_block_pattern(
172 'social-links/shared-background-color',
173 array(
174 'title' => __( 'Social links with a shared background color', 'gutenberg' ),
175 'categories' => array( 'buttons' ),
176 'blockTypes' => array( 'core/social-links' ),
177 'viewportWidth' => 500,
178 'content' => '<!-- wp:social-links {"customIconColor":"#ffffff","iconColorValue":"#ffffff","customIconBackgroundColor":"#3962e3","iconBackgroundColorValue":"#3962e3","className":"has-icon-color"} -->
179 <ul class="wp-block-social-links has-icon-color has-icon-background-color"><!-- wp:social-link {"url":"https://wordpress.org","service":"wordpress"} /-->
180 <!-- wp:social-link {"url":"#","service":"chain"} /-->
181 <!-- wp:social-link {"url":"#","service":"mail"} /--></ul>
182 <!-- /wp:social-links -->',
183 )
184 );
185 }
186
187 /**
188 * Deactivate the legacy patterns bundled with WordPress, and add new block patterns for testing.
189 * More details in the trac issue (https://core.trac.wordpress.org/ticket/52846).
190 */
191 function update_core_patterns() {
192 $core_block_patterns = array(
193 'text-two-columns',
194 'two-buttons',
195 'two-images',
196 'text-two-columns-with-images',
197 'text-three-columns-buttons',
198 'large-header',
199 'large-header-button',
200 'three-buttons',
201 'heading-paragraph',
202 'quote',
203 );
204
205 $new_core_block_patterns = array(
206 'media-text-nature',
207 'two-images-gallery',
208 'three-columns-media-text',
209 'quote',
210 'large-header-left',
211 'large-header-text-button',
212 'media-text-art',
213 'text-two-columns-title',
214 'three-columns-text',
215 'text-two-columns-title-offset',
216 'heading',
217 'three-images-gallery',
218 'text-two-columns',
219 'media-text-arquitecture',
220 'two-buttons',
221 );
222
223 foreach ( $core_block_patterns as $core_block_pattern ) {
224 $name = 'core/' . $core_block_pattern;
225 if ( WP_Block_Patterns_Registry::get_instance()->is_registered( $name ) ) {
226 unregister_block_pattern( $name );
227 }
228 }
229
230 foreach ( $new_core_block_patterns as $core_block_pattern ) {
231 register_block_pattern(
232 'core/' . $core_block_pattern,
233 require __DIR__ . '/block-patterns/' . $core_block_pattern . '.php'
234 );
235 }
236 }
237
238
239 add_action(
240 'init',
241 function() {
242 if ( ! get_theme_support( 'core-block-patterns' ) || ! function_exists( 'unregister_block_pattern' ) ) {
243 return;
244 }
245 register_gutenberg_patterns();
246 update_core_patterns();
247 }
248 );
249