PluginProbe
WPSSO Core – Complete Schema Markup and Meta Tags / 22.7.0
WPSSO Core – Complete Schema Markup and Meta Tags v22.7.0
22.7.0 22.6.1 22.6.0 22.5.3 22.5.2 22.5.1 22.4.0 22.3.0 22.2.1 22.2.0 22.1.3 22.1.2 22.1.1 22.1.0 22.0.0 21.13.3 21.13.2 trunk 21.13.1
← All changes | lib/messages-tooltip-schema.php +437 -0 22.2.022.7.0 View file →
@@ -1,0 +1,437 @@
1 +<?php
2 +/*
3 + * License: GPLv3
4 + * License URI: https://www.gnu.org/licenses/gpl.txt
5 + * Copyright 2012-2026 Jean-Sebastien Morisset (https://wpsso.com/)
6 + */
7 +
8 +if ( ! defined( 'ABSPATH' ) ) {
9 +
10 + die( 'These aren\'t the droids you\'re looking for.' );
11 +}
12 +
13 +if ( ! defined( 'WPSSO_PLUGINDIR' ) ) {
14 +
15 + die( 'Do. Or do not. There is no try.' );
16 +}
17 +
18 +if ( ! class_exists( 'WpssoMessagesTooltipSchema' ) ) {
19 +
20 + /*
21 + * Instantiated by WpssoMessagesTooltip->get() only when needed.
22 + */
23 + class WpssoMessagesTooltipSchema extends WpssoMessages {
24 +
25 + public function get( $msg_key = false, $info = array() ) {
26 +
27 + $this->maybe_set_properties();
28 +
29 + $text = '';
30 +
31 + switch ( $msg_key ) {
32 +
33 + case 'tooltip-schema_1x1_img_size': // Schema 1:1 (Google) Image Size.
34 + case 'tooltip-schema_4x3_img_size': // Schema 4:3 (Google) Image Size.
35 + case 'tooltip-schema_16x9_img_size': // Schema 16:9 (Google) Image Size.
36 +
37 + if ( preg_match( '/^tooltip-(schema_([0-9]+)x([0-9]+))_img_size$/', $msg_key, $matches ) ) {
38 +
39 + $opt_pre = $matches[ 1 ];
40 + $ratio_msg = $matches[ 2 ] . ':' . $matches[ 3 ];
41 + $def_img_dims = $this->get_def_img_dims( $opt_pre );
42 +
43 + $text = sprintf( __( 'The %1$s dimensions used for Schema markup images (default dimensions are %2$s).', 'wpsso' ), $ratio_msg, $def_img_dims ) . ' ';
44 + }
45 +
46 + break;
47 +
48 + case 'tooltip-schema_thumb_img_size': // Schema Thumbnail Image Size.
49 +
50 + $def_img_dims = $this->get_def_img_dims( 'thumb' );
51 +
52 + $text = sprintf( __( 'The dimensions used for the Schema "%1$s" property and "%2$s" HTML tag (default dimensions are %3$s).', 'wpsso' ), 'thumbnailUrl', 'meta name thumbnail', $def_img_dims );
53 +
54 + break;
55 +
56 + /*
57 + * SSO > Advanced Settings > Document Types > Schema tab.
58 + */
59 + case 'tooltip-schema_type_for_home_page': // Type for Page Homepage.
60 +
61 + $def_type = $this->p->schema->get_default_schema_type_name( 'home_page' );
62 +
63 + // translators: %s is the markup standard name (ie. Open Graph or Schema).
64 + $text = sprintf( __( 'Select a default %s type for a static front page.', 'wpsso' ), 'Schema' ) . ' ';
65 +
66 + // translators: %1$s is the markup standard name (ie. Open Graph or Schema) and %2$s is the type name.
67 + $text .= sprintf( __( 'The default %1$s type is "%2$s".', 'wpsso' ), 'Schema', $def_type );
68 +
69 + break;
70 +
71 + case 'tooltip-schema_type_for_home_posts': // Type for Posts Homepage.
72 +
73 + $def_type = $this->p->schema->get_default_schema_type_name( 'home_posts' );
74 +
75 + // translators: %s is the markup standard name (ie. Open Graph or Schema).
76 + $text = sprintf( __( 'Select a default %s type for a blog (non-static) front page.', 'wpsso' ), 'Schema' ) . ' ';
77 +
78 + // translators: %1$s is the markup standard name (ie. Open Graph or Schema) and %2$s is the type name.
79 + $text .= sprintf( __( 'The default %1$s type is "%2$s".', 'wpsso' ), 'Schema', $def_type );
80 +
81 + break;
82 +
83 + case 'tooltip-schema_type_for_user_page': // Type for User / Author.
84 +
85 + $def_type = $this->p->schema->get_default_schema_type_name( 'user_page' );
86 +
87 + // translators: %s is the markup standard name (ie. Open Graph or Schema).
88 + $text = sprintf( __( 'Select a default %s type for user / author profile pages.', 'wpsso' ), 'Schema' ) . ' ';
89 +
90 + // translators: %1$s is the markup standard name (ie. Open Graph or Schema) and %2$s is the type name.
91 + $text .= sprintf( __( 'The default %1$s type is "%2$s".', 'wpsso' ), 'Schema', $def_type );
92 +
93 + break;
94 +
95 + case 'tooltip-schema_type_for_search_page': // Type for Search Results.
96 +
97 + $def_type = $this->p->schema->get_default_schema_type_name( 'search_page' );
98 +
99 + // translators: %s is the markup standard name (ie. Open Graph or Schema).
100 + $text = sprintf( __( 'Select a default %s type for search results pages.', 'wpsso' ), 'Schema' ) . ' ';
101 +
102 + // translators: %1$s is the markup standard name (ie. Open Graph or Schema) and %2$s is the type name.
103 + $text .= sprintf( __( 'The default %1$s type is "%2$s".', 'wpsso' ), 'Schema', $def_type );
104 +
105 + break;
106 +
107 + case 'tooltip-schema_type_for_archive_page': // Type for Archive Page.
108 +
109 + $def_type = $this->p->schema->get_default_schema_type_name( 'archive_page' );
110 +
111 + // translators: %s is the markup standard name (ie. Open Graph or Schema).
112 + $text = sprintf( __( 'Select a default %s type for other archive pages (date-based archive pages, for example).', 'wpsso' ), 'Schema' ) . ' ';
113 +
114 + // translators: %1$s is the markup standard name (ie. Open Graph or Schema) and %2$s is the type name.
115 + $text .= sprintf( __( 'The default %1$s type is "%2$s".', 'wpsso' ), 'Schema', $def_type );
116 +
117 + break;
118 +
119 + case 'tooltip-schema_type_for_pt': // Type by Post Type.
120 +
121 + // translators: %s is the markup standard name (ie. Open Graph or Schema).
122 + $text = sprintf( __( 'Select a default %s type for each post type.', 'wpsso' ), 'Schema' ) . ' ';
123 +
124 + break;
125 +
126 + case 'tooltip-schema_type_for_pta': // Type by Post Type Archive.
127 +
128 + $def_type = $this->p->schema->get_default_schema_type_name( 'archive_page' );
129 +
130 + // translators: %s is the markup standard name (ie. Open Graph or Schema).
131 + $text = sprintf( __( 'Select a default %s type for each post type archive.', 'wpsso' ), 'Schema' ) . ' ';
132 +
133 + // translators: %1$s is the markup standard name (ie. Open Graph or Schema) and %2$s is the type name.
134 + $text .= sprintf( __( 'The default %1$s type is "%2$s".', 'wpsso' ), 'Schema', $def_type );
135 +
136 + break;
137 +
138 + case 'tooltip-schema_type_for_tax': // Type by Taxonomy.
139 +
140 + $def_type = $this->p->schema->get_default_schema_type_name( 'archive_page' );
141 +
142 + // translators: %s is the markup standard name (ie. Open Graph or Schema).
143 + $text = sprintf( __( 'Select a default %s type for each taxonomy.', 'wpsso' ), 'Schema' ) . ' ';
144 +
145 + // translators: %1$s is the markup standard name (ie. Open Graph or Schema) and %2$s is the type name.
146 + $text .= sprintf( __( 'The default %1$s type is "%2$s".', 'wpsso' ), 'Schema', $def_type );
147 +
148 + break;
149 +
150 + /*
151 + * SSO > Advanced Settings > Schema Defaults > Article tab.
152 + */
153 + case 'tooltip-schema_def_add_articlebody_prop': // Add Article Body Property.
154 +
155 + $def_checked = $this->get_def_checked( 'schema_def_add_articlebody_prop' );
156 +
157 + $text = sprintf( __( 'Add an "articleBody" property to the Schema Article markup with the complete content text of the post (default is %s).', 'wpsso' ), $def_checked ) . ' ';
158 +
159 + break;
160 +
161 + case ( 0 === strpos( $msg_key, 'tooltip-schema_def_article_' ) ? true : false ):
162 +
163 + $tp_frags = $this->get_tooltip_fragments( preg_replace( '/^tooltip-schema_def_/', '', $msg_key ) ); // Uses a local cache.
164 +
165 + if ( ! empty( $tp_frags ) ) { // Just in case.
166 +
167 + $text = sprintf( __( 'The %s that best describes the content of articles on your site.', 'wpsso' ),
168 + $tp_frags[ 'name' ] ) . ' ';
169 +
170 + $text .= sprintf( __( 'You can select a different %s when editing an article.', 'wpsso' ),
171 + $tp_frags[ 'name' ] ) . ' ';
172 +
173 + $text .= sprintf( __( 'Select "[None]" to exclude the %s by default from Schema markup and meta tags.', 'wpsso' ),
174 + $tp_frags[ 'name' ] ) . ' ';
175 +
176 + if ( ! empty( $tp_frags[ 'about' ] ) ) {
177 +
178 + // translators: %1$s is a webpage URL and %2$s is a singular item reference, for example 'a product Google category'.
179 + $text .= sprintf( __( '<a href="%1$s">See this webpage for more information about choosing %2$s value</a>.',
180 + 'wpsso' ), $tp_frags[ 'about' ], $tp_frags[ 'desc' ] ) . ' ';
181 + }
182 + }
183 +
184 + break;
185 +
186 + /*
187 + * SSO > Advanced Settings > Schema Defaults > Book tab.
188 + */
189 + case 'tooltip-schema_def_book_format': // Default Book Format.
190 +
191 + $text = __( 'Select a default format for the Schema Book type.', 'wpsso' );
192 +
193 + break;
194 +
195 + case 'tooltip-schema_def_book_author_type': // Default Book Author Type.
196 +
197 + $text = __( 'Select a default type for the Schema Book author.', 'wpsso' );
198 +
199 + break;
200 +
201 + /*
202 + * SSO > Advanced Settings > Schema Defaults > Creative Work tab.
203 + */
204 + case 'tooltip-schema_def_add_date_created': // Add Date Created Property.
205 +
206 + $def_checked = $this->get_def_checked( 'schema_def_add_date_created' );
207 +
208 + $text = sprintf( __( 'Add a "dateCreated" property to the Schema CreativeWork markup (default is %s).', 'wpsso' ), $def_checked ) . ' ';
209 +
210 + break;
211 +
212 + case 'tooltip-schema_def_add_date_published': // Add Date Published Property.
213 +
214 + $def_checked = $this->get_def_checked( 'schema_def_add_date_published' );
215 +
216 + $text = sprintf( __( 'Add a "datePublished" property to the Schema CreativeWork markup (default is %s).', 'wpsso' ), $def_checked ) . ' ';
217 +
218 + break;
219 +
220 + case 'tooltip-schema_def_add_date_modified': // Add Date Modified Property.
221 +
222 + $def_checked = $this->get_def_checked( 'schema_def_add_date_modified' );
223 +
224 + $text = sprintf( __( 'Add a "dateModified" property to the Schema CreativeWork markup (default is %s).', 'wpsso' ), $def_checked ) . ' ';
225 +
226 + break;
227 +
228 + case 'tooltip-schema_def_add_text_prop': // Add Text Property.
229 +
230 + $def_checked = $this->get_def_checked( 'schema_def_add_text_prop' );
231 +
232 + $text = sprintf( __( 'Add a "text" property to the Schema CreativeWork markup with the complete content text of the post (default is %s).', 'wpsso' ), $def_checked ) . ' ';
233 +
234 + break;
235 +
236 + case 'tooltip-schema_def_family_friendly': // Default Family Friendly.
237 +
238 + $text = __( 'Select a default family friendly value for the Schema CreativeWork type and/or its sub-types (Article, BlogPosting, WebPage, etc).', 'wpsso' );
239 +
240 + break;
241 +
242 + case 'tooltip-schema_def_pub_org_id': // Default Publisher Organization.
243 + case 'tooltip-schema_def_pub_person_id': // Default Publisher Person.
244 +
245 + $text = __( 'Select a default publisher for the Schema CreativeWork type and/or its sub-types (Article, BlogPosting, WebPage, etc).', 'wpsso' );
246 +
247 + case 'tooltip-schema_def_prov_org_id': // Default Provider Organization.
248 + case 'tooltip-schema_def_prov_person_id': // Default Provider Person.
249 + case 'tooltip-schema_def_service_prov_org_id': // Default Service Provider Organization.
250 + case 'tooltip-schema_def_service_prov_person_id': // Default Service Provider Person.
251 +
252 +
253 + $text = __( 'Select a default service provider, service operator, or service performer.', 'wpsso' );
254 +
255 + break;
256 +
257 + case 'tooltip-schema_def_fund_org_id': // Default Funder Organization.
258 + case 'tooltip-schema_def_fund_person_id': // Default Funder Person.
259 +
260 + $text = __( 'Select a default funder that supports (sponsors) the Schema CreativeWork type and/or its sub-types through somekind of financial contribution.', 'wpsso' );
261 +
262 + break;
263 +
264 + /*
265 + * SSO > Advanced Settings > Schema Defaults > Event tab.
266 + */
267 + case 'tooltip-schema_def_event_attendance': // Event Event Attendance.
268 +
269 + $text = __( 'Select a default attendance for the Schema Event type.', 'wpsso' );
270 +
271 + break;
272 +
273 + case 'tooltip-schema_def_event_location_id': // Default Event Venue.
274 +
275 + $text = __( 'Select a default venue for the Schema Event type.', 'wpsso' );
276 +
277 + break;
278 +
279 + case 'tooltip-schema_def_event_performer_org_id': // Default Event Performer Organization.
280 + case 'tooltip-schema_def_event_performer_person_id': // Default Event Performer Person.
281 +
282 + $text = __( 'Select a default performer for the Schema Event type.', 'wpsso' );
283 +
284 + break;
285 +
286 + case 'tooltip-schema_def_event_organizer_org_id': // Default Event Organizer Organization.
287 + case 'tooltip-schema_def_event_organizer_person_id': // Default Event Organizer Person.
288 +
289 + $text = __( 'Select a default organizer for the Schema Event type.', 'wpsso' );
290 +
291 + break;
292 +
293 + case 'tooltip-schema_def_event_fund_org_id': // Default Event Funder Organization.
294 + case 'tooltip-schema_def_event_fund_person_id': // Default Event Funder Person.
295 +
296 + $text = __( 'Select a default funder that supports (sponsors) the Schema Event type through somekind of financial contribution.', 'wpsso' );
297 +
298 + break;
299 +
300 + /*
301 + * SSO > Advanced Settings > Schema Defaults > Job Posting tab.
302 + */
303 + case 'tooltip-schema_def_job_hiring_org_id': // Default Job Hiring Organization.
304 +
305 + $text = __( 'Select a default organization for the Schema JobPosting hiring organization.', 'wpsso' );
306 +
307 + break;
308 +
309 + case 'tooltip-schema_def_job_location_id': // Default Job Location.
310 +
311 + $text = __( 'Select a default location for the Schema JobPosting job location.', 'wpsso' );
312 +
313 + break;
314 +
315 + case 'tooltip-schema_def_job_location_type': // Default Job Location Type.
316 +
317 + $text = sprintf( __( 'Select a default optional Google approved location type (see <a href="%s">Google\'s Job Posting guidelines</a> for more information).', 'wpsso' ), 'https://developers.google.com/search/docs/appearance/structured-data/job-posting' );
318 +
319 + break;
320 +
321 + /*
322 + * SSO > Advanced Settings > Schema Defaults > Place tab.
323 + */
324 + case 'tooltip-schema_def_place_schema_type': // Default Place Schema Type.
325 +
326 + $text = __( 'Select the default Schema type to use when creating a new place.', 'wpsso' );
327 +
328 + break;
329 +
330 + case 'tooltip-schema_def_place_country': // Default Place Country.
331 +
332 + $text = __( 'Select the default country to use when creating a new place.', 'wpsso' );
333 +
334 + break;
335 +
336 + case 'tooltip-schema_def_place_timezone': // Default Place Timezone.
337 +
338 + $text = __( 'Select the default timezone to use when creating a new place.', 'wpsso' );
339 +
340 + break;
341 +
342 + /*
343 + * SSO > Advanced Settings > Schema Defaults > Product tab.
344 + */
345 + case 'tooltip-schema_def_product_aggr_offers': // Aggregate Offers by Currency.
346 +
347 + $text = __( 'Aggregate (ie. group) product offers by currency.', 'wpsso' ) . ' ';
348 +
349 + $text .= sprintf( __( 'Note that to be eligible for <a href="%s">price drop appearance in Google search results</a>, product offers cannot be aggregated.', 'wpsso' ), 'https://developers.google.com/search/docs/data-types/product#price-drop' );
350 +
351 + break;
352 +
353 + case 'tooltip-schema_def_product_price_valid_days': // Default Product Prices Valid For.
354 +
355 + $def_value = $this->p->opt->get_defaults( 'schema_def_product_price_valid_days' );
356 +
357 + $text = sprintf( __( 'The default expiration time of product prices can be adjusted to reflect how often your product prices change (default is %d days).', 'wpsso' ), $def_value ) . ' ';
358 +
359 + $text .= __( 'Enter "0" to disable the addition of a default product price expiration time.', 'wpsso' ) . ' ';
360 +
361 + $text .= __( 'If a product is on sale, the expiration time for its product price will be the sale end date (if one is available) instead of the default price expiration time.', 'wpsso' ) . ' ';
362 +
363 + break;
364 +
365 + case ( 0 === strpos( $msg_key, 'tooltip-schema_def_product_' ) ? true : false ):
366 +
367 + $tp_frags = $this->get_tooltip_fragments( preg_replace( '/^tooltip-schema_def_/', '', $msg_key ) ); // Uses a local cache.
368 +
369 + if ( ! empty( $tp_frags ) ) { // Just in case.
370 +
371 + $text = sprintf( __( 'The %s that best describes the products on your site.', 'wpsso' ), $tp_frags[ 'name' ] ) . ' ';
372 +
373 + $text .= sprintf( __( 'You can select a different %s when editing a product.', 'wpsso' ), $tp_frags[ 'name' ] ) . ' ';
374 +
375 + $text .= sprintf( __( 'Select "[None]" to exclude the %s by default from Schema markup and meta tags.', 'wpsso' ),
376 + $tp_frags[ 'name' ] ) . ' ';
377 +
378 + if ( ! empty( $tp_frags[ 'about' ] ) ) {
379 +
380 + // translators: %1$s is a webpage URL and %2$s is a singular item reference, for example 'a product Google category'.
381 + $text .= sprintf( __( '<a href="%1$s">See this webpage for more information about choosing %2$s value</a>.',
382 + 'wpsso' ), $tp_frags[ 'about' ], $tp_frags[ 'desc' ] ) . ' ';
383 + }
384 + }
385 +
386 + break;
387 +
388 + /*
389 + * SSO > Advanced Settings > Schema Defaults > Profile Page tab.
390 + */
391 + case 'tooltip-schema_def_profile_page_mentions_prop':
392 +
393 + $def_checked = $this->get_def_checked( 'schema_def_profile_page_mentions_prop' );
394 +
395 + $text = sprintf( __( 'Add a "mentions" property to the Schema ProfilePage markup with all posts provided by the current page query (default is %s).', 'wpsso' ), $def_checked ) . ' ';
396 +
397 + break;
398 +
399 + /*
400 + * SSO > Advanced Settings > Schema Defaults > Review tab.
401 + */
402 + case 'tooltip-schema_def_review_rating_min': // Default Review Rating Min.
403 +
404 + $def_value = $this->p->opt->get_defaults( 'schema_def_review_rating_min' );
405 +
406 + $text = sprintf( __( 'The lowest rating value for the Schema Review rating (default is %s).', 'wpsso' ), $def_value ) . ' ';
407 +
408 + break;
409 +
410 + case 'tooltip-schema_def_review_rating_max': // Default Review Rating Max.
411 +
412 + $def_value = $this->p->opt->get_defaults( 'schema_def_review_rating_max' );
413 +
414 + $text = sprintf( __( 'The highest rating value for the Schema Review rating (default is %s).', 'wpsso' ), $def_value ) . ' ';
415 +
416 + break;
417 +
418 + case 'tooltip-schema_def_review_item_type': // Default Subject Schema Type.
419 +
420 + $text = __( 'A default Schema type for the subject of this review (for example, Schema type "Product" for a review of a product).', 'wpsso' ) . ' ';
421 +
422 + $text .= sprintf( __( 'Note that although the Schema.org standard allows the subject of a review to be any Schema type, <a href="%1$s">Google only allows reviews for a few specific Schema types (and their sub-types)</a>.', 'wpsso' ), 'https://developers.google.com/search/docs/data-types/review-snippet' );
423 +
424 + break;
425 +
426 + default:
427 +
428 + $text = apply_filters( 'wpsso_messages_tooltip_schema', $text, $msg_key, $info );
429 +
430 + break;
431 +
432 + } // End of 'tooltip-schema' switch.
433 +
434 + return $text;
435 + }
436 + }
437 +}