PluginProbe
Gutenberg / 12.6.0
Gutenberg v12.6.0
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 12.6.0, at lib/block-patterns.php

212 lines 10.5 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 gutenberg_register_gutenberg_patterns() {
12 // Register categories used for block patterns.
13 if ( ! WP_Block_Pattern_Categories_Registry::get_instance()->is_registered( 'query' ) ) {
14 register_block_pattern_category( 'query', array( 'label' => __( 'Query', 'gutenberg' ) ) );
15 }
16
17 $patterns = array(
18 'query-standard-posts' => array(
19 'title' => _x( 'Standard', 'Block pattern title', 'gutenberg' ),
20 'blockTypes' => array( 'core/query' ),
21 'categories' => array( 'query' ),
22 'content' => '<!-- wp:query {"query":{"perPage":3,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"","inherit":false}} -->
23 <div class="wp-block-query">
24 <!-- wp:post-template -->
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:post-template -->
33 </div>
34 <!-- /wp:query -->',
35 ),
36 'query-medium-posts' => array(
37 'title' => _x( 'Image at left', 'Block pattern title', 'gutenberg' ),
38 'blockTypes' => array( 'core/query' ),
39 'categories' => array( 'query' ),
40 'content' => '<!-- wp:query {"query":{"perPage":3,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"","inherit":false}} -->
41 <div class="wp-block-query">
42 <!-- wp:post-template -->
43 <!-- wp:columns {"align":"wide"} -->
44 <div class="wp-block-columns alignwide"><!-- wp:column {"width":"66.66%"} -->
45 <div class="wp-block-column" style="flex-basis:66.66%"><!-- wp:post-featured-image {"isLink":true} /--></div>
46 <!-- /wp:column -->
47 <!-- wp:column {"width":"33.33%"} -->
48 <div class="wp-block-column" style="flex-basis:33.33%"><!-- wp:post-title {"isLink":true} /-->
49 <!-- wp:post-excerpt /--></div>
50 <!-- /wp:column --></div>
51 <!-- /wp:columns -->
52 <!-- /wp:post-template -->
53 </div>
54 <!-- /wp:query -->',
55 ),
56 'query-small-posts' => array(
57 'title' => _x( 'Small image and title', 'Block pattern title', 'gutenberg' ),
58 'blockTypes' => array( 'core/query' ),
59 'categories' => array( 'query' ),
60 'content' => '<!-- wp:query {"query":{"perPage":3,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"","inherit":false}} -->
61 <div class="wp-block-query">
62 <!-- wp:post-template -->
63 <!-- wp:columns {"verticalAlignment":"center"} -->
64 <div class="wp-block-columns are-vertically-aligned-center"><!-- wp:column {"verticalAlignment":"center","width":"25%"} -->
65 <div class="wp-block-column is-vertically-aligned-center" style="flex-basis:25%"><!-- wp:post-featured-image {"isLink":true} /--></div>
66 <!-- /wp:column -->
67 <!-- wp:column {"verticalAlignment":"center","width":"75%"} -->
68 <div class="wp-block-column is-vertically-aligned-center" style="flex-basis:75%"><!-- wp:post-title {"isLink":true} /--></div>
69 <!-- /wp:column --></div>
70 <!-- /wp:columns -->
71 <!-- /wp:post-template -->
72 </div>
73 <!-- /wp:query -->',
74 ),
75 'query-grid-posts' => array(
76 'title' => _x( 'Grid', 'Block pattern title', 'gutenberg' ),
77 'blockTypes' => array( 'core/query' ),
78 'categories' => array( 'query' ),
79 'content' => '<!-- wp:query {"query":{"perPage":6,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"exclude","inherit":false},"displayLayout":{"type":"flex","columns":3}} -->
80 <div class="wp-block-query">
81 <!-- wp:post-template -->
82 <!-- wp:group {"style":{"spacing":{"padding":{"top":"30px","right":"30px","bottom":"30px","left":"30px"}}},"layout":{"inherit":false}} -->
83 <div class="wp-block-group" style="padding-top:30px;padding-right:30px;padding-bottom:30px;padding-left:30px"><!-- wp:post-title {"isLink":true} /-->
84 <!-- wp:post-excerpt /-->
85 <!-- wp:post-date /--></div>
86 <!-- /wp:group -->
87 <!-- /wp:post-template -->
88 </div>
89 <!-- /wp:query -->',
90 ),
91 'query-large-title-posts' => array(
92 'title' => _x( 'Large title', 'Block pattern title', 'gutenberg' ),
93 'blockTypes' => array( 'core/query' ),
94 'categories' => array( 'query' ),
95 'content' => '<!-- wp:group {"align":"full","style":{"spacing":{"padding":{"top":"100px","right":"100px","bottom":"100px","left":"100px"}},"color":{"text":"#ffffff","background":"#000000"}}} -->
96 <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","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"","inherit":false}} -->
97 <div class="wp-block-query"><!-- wp:post-template -->
98 <!-- wp:separator {"customColor":"#ffffff","align":"wide","className":"is-style-wide"} -->
99 <hr class="wp-block-separator alignwide has-text-color has-background is-style-wide" style="background-color:#ffffff;color:#ffffff"/>
100 <!-- /wp:separator -->
101
102 <!-- wp:columns {"verticalAlignment":"center","align":"wide"} -->
103 <div class="wp-block-columns alignwide are-vertically-aligned-center"><!-- wp:column {"verticalAlignment":"center","width":"20%"} -->
104 <div class="wp-block-column is-vertically-aligned-center" style="flex-basis:20%"><!-- wp:post-date {"style":{"color":{"text":"#ffffff"}},"fontSize":"extra-small"} /--></div>
105 <!-- /wp:column -->
106
107 <!-- wp:column {"verticalAlignment":"center","width":"80%"} -->
108 <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>
109 <!-- /wp:column --></div>
110 <!-- /wp:columns -->
111 <!-- /wp:post-template --></div>
112 <!-- /wp:query --></div>
113 <!-- /wp:group -->',
114 ),
115 'query-offset-posts' => array(
116 'title' => _x( 'Offset', 'Block pattern title', 'gutenberg' ),
117 'blockTypes' => array( 'core/query' ),
118 'categories' => array( 'query' ),
119 'content' => '<!-- wp:group {"style":{"spacing":{"padding":{"top":"30px","right":"30px","bottom":"30px","left":"30px"}}},"layout":{"inherit":false}} -->
120 <div class="wp-block-group" style="padding-top:30px;padding-right:30px;padding-bottom:30px;padding-left:30px"><!-- wp:columns -->
121 <div class="wp-block-columns"><!-- wp:column {"width":"50%"} -->
122 <div class="wp-block-column" style="flex-basis:50%"><!-- wp:query {"query":{"perPage":2,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"exclude","inherit":false},"displayLayout":{"type":"list"}} -->
123 <div class="wp-block-query"><!-- wp:post-template -->
124 <!-- wp:post-featured-image /-->
125 <!-- wp:post-title /-->
126 <!-- wp:post-date /-->
127 <!-- wp:spacer {"height":200} -->
128 <div style="height:200px" aria-hidden="true" class="wp-block-spacer"></div>
129 <!-- /wp:spacer -->
130 <!-- /wp:post-template --></div>
131 <!-- /wp:query --></div>
132 <!-- /wp:column -->
133 <!-- wp:column {"width":"50%"} -->
134 <div class="wp-block-column" style="flex-basis:50%"><!-- wp:query {"query":{"perPage":2,"pages":0,"offset":2,"postType":"post","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"exclude","inherit":false},"displayLayout":{"type":"list"}} -->
135 <div class="wp-block-query"><!-- wp:post-template -->
136 <!-- wp:spacer {"height":200} -->
137 <div style="height:200px" aria-hidden="true" class="wp-block-spacer"></div>
138 <!-- /wp:spacer -->
139 <!-- wp:post-featured-image /-->
140 <!-- wp:post-title /-->
141 <!-- wp:post-date /-->
142 <!-- /wp:post-template --></div>
143 <!-- /wp:query --></div>
144 <!-- /wp:column --></div>
145 <!-- /wp:columns --></div>
146 <!-- /wp:group -->',
147 ),
148 // Initial block pattern to be used with block transformations with patterns.
149 'social-links-shared-background-color' => array(
150 'title' => _x( 'Social links with a shared background color', 'Block pattern title', 'gutenberg' ),
151 'categories' => array( 'buttons' ),
152 'blockTypes' => array( 'core/social-links' ),
153 'viewportWidth' => 500,
154 'content' => '<!-- wp:social-links {"customIconColor":"#ffffff","iconColorValue":"#ffffff","customIconBackgroundColor":"#3962e3","iconBackgroundColorValue":"#3962e3","className":"has-icon-color"} -->
155 <ul class="wp-block-social-links has-icon-color has-icon-background-color"><!-- wp:social-link {"url":"https://wordpress.org","service":"wordpress"} /-->
156 <!-- wp:social-link {"url":"#","service":"chain"} /-->
157 <!-- wp:social-link {"url":"#","service":"mail"} /--></ul>
158 <!-- /wp:social-links -->',
159 ),
160 );
161
162 foreach ( $patterns as $name => $pattern ) {
163 $pattern_name = 'core/' . $name;
164 if ( ! WP_Block_Patterns_Registry::get_instance()->is_registered( $pattern_name ) ) {
165 register_block_pattern( $pattern_name, $pattern );
166 }
167 }
168 }
169
170 /**
171 * Deactivate the legacy patterns bundled with WordPress.
172 */
173 function gutenberg_remove_core_patterns() {
174 $core_block_patterns = array(
175 'text-two-columns',
176 'two-buttons',
177 'two-images',
178 'text-two-columns-with-images',
179 'text-three-columns-buttons',
180 'large-header',
181 'large-header-button',
182 'three-buttons',
183 'heading-paragraph',
184 'quote',
185 'query-standard-posts',
186 'query-medium-posts',
187 'query-small-posts',
188 'query-grid-posts',
189 'query-large-title-posts',
190 'query-offset-posts',
191 'social-links-shared-background-color',
192 );
193
194 foreach ( $core_block_patterns as $core_block_pattern ) {
195 $name = 'core/' . $core_block_pattern;
196 if ( WP_Block_Patterns_Registry::get_instance()->is_registered( $name ) ) {
197 unregister_block_pattern( $name );
198 }
199 }
200 }
201
202 add_action(
203 'init',
204 function() {
205 if ( ! get_theme_support( 'core-block-patterns' ) || ! function_exists( 'unregister_block_pattern' ) ) {
206 return;
207 }
208 gutenberg_remove_core_patterns();
209 gutenberg_register_gutenberg_patterns();
210 }
211 );
212