Version Description
- Fix event
- AMP support
- Fix Spelling
=
Download this release
Release Info
Developer | kcseopro |
Plugin | WP SEO Structured Data Schema |
Version | 2.5.6 |
Comparing to | |
See all releases |
Code changes from version 2.5.5 to 2.5.6
- README.txt +8 -9
- assets/css/admin.css +25 -6
- assets/js/admin.js +11 -11
- languages/wp-seo-structured-data-schema.pot +541 -298
- lib/classes/KcSeoHelper.php +2 -2
- lib/classes/KcSeoInit.php +218 -229
- lib/classes/KcSeoMetaData.php +137 -117
- lib/classes/KcSeoOutput.php +5 -4
- lib/functions/KcSeoOptions.php +1347 -0
- lib/models/KcSeoSchemaModel.php +734 -2059
- lib/views/schema-options.php +10 -10
- wp-seo-structured-data-schema.php +2 -3
README.txt
CHANGED
@@ -3,8 +3,8 @@ Contributors: kcseopro
|
|
3 |
Donate link:
|
4 |
Tags: seo, schema, structured data, rich snippets, microdata, json-ld, search engine optimization, local seo, google, sitelinks, schema.org, microformat, serp
|
5 |
Requires at least: 4.5
|
6 |
-
Tested up to: 5.
|
7 |
-
Stable tag: 2.5.
|
8 |
License: GPLv3
|
9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
@@ -93,12 +93,6 @@ You can validate structured data on any web page here:
|
|
93 |
For more information on the plugin author visit:
|
94 |
|
95 |
* [WP SEM Plugins](https://wpsemplugins.com/)
|
96 |
-
* [Kansas City SEO®](https://kcseopro.com/)
|
97 |
-
* [Twitter](https://twitter.com/kcseopro)
|
98 |
-
* [Google+](https://plus.google.com/+Kcseopro-kansas-city-seo)
|
99 |
-
* [Phil Singleton](https://www.linkedin.com/in/seokansascity)
|
100 |
-
* [SEO for Growth](https://seoforgrowth.com/)
|
101 |
-
|
102 |
|
103 |
== Installation ==
|
104 |
|
@@ -110,7 +104,7 @@ For more information on the plugin author visit:
|
|
110 |
|
111 |
== Frequently Asked Questions ==
|
112 |
|
113 |
-
You'll find the [FAQ on
|
114 |
|
115 |
== Screenshots ==
|
116 |
|
@@ -120,6 +114,11 @@ You'll find the [FAQ on Kcseopro.com](https://wpsemplugins.com/).
|
|
120 |
|
121 |
== Changelog ==
|
122 |
|
|
|
|
|
|
|
|
|
|
|
123 |
== 2.5.5 =
|
124 |
* Add Site schema control
|
125 |
* Fix Site schema search link
|
3 |
Donate link:
|
4 |
Tags: seo, schema, structured data, rich snippets, microdata, json-ld, search engine optimization, local seo, google, sitelinks, schema.org, microformat, serp
|
5 |
Requires at least: 4.5
|
6 |
+
Tested up to: 5.1
|
7 |
+
Stable tag: 2.5.6
|
8 |
License: GPLv3
|
9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
93 |
For more information on the plugin author visit:
|
94 |
|
95 |
* [WP SEM Plugins](https://wpsemplugins.com/)
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
|
97 |
== Installation ==
|
98 |
|
104 |
|
105 |
== Frequently Asked Questions ==
|
106 |
|
107 |
+
You'll find the [FAQ on WPSEMPlugins.com](https://wpsemplugins.com/wordpress-seo-structured-data-schema-plugin/).
|
108 |
|
109 |
== Screenshots ==
|
110 |
|
114 |
|
115 |
== Changelog ==
|
116 |
|
117 |
+
== 2.5.6 =
|
118 |
+
* Fix event
|
119 |
+
* AMP support
|
120 |
+
* Fix Spelling
|
121 |
+
|
122 |
== 2.5.5 =
|
123 |
* Add Site schema control
|
124 |
* Fix Site schema search link
|
assets/css/admin.css
CHANGED
@@ -216,11 +216,12 @@ ul.rt-tab-nav li a:focus {
|
|
216 |
float: right;
|
217 |
width: 86%;
|
218 |
box-sizing: border-box;
|
219 |
-
display: none;
|
220 |
border: 1px solid #e7e7e7;
|
221 |
padding: 20px;
|
222 |
}
|
223 |
-
|
|
|
|
|
224 |
div#rt-schema-tab-holder:after {
|
225 |
clear: both;
|
226 |
content: ".";
|
@@ -284,14 +285,32 @@ p.description.kco-telephone > span {
|
|
284 |
}
|
285 |
|
286 |
.field-container .field-label span {
|
287 |
-
margin-left:
|
288 |
-
color: red;
|
289 |
}
|
290 |
-
|
291 |
-
|
292 |
color: red;
|
293 |
}
|
|
|
|
|
|
|
|
|
294 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
295 |
.schema-holder .ui-tabs .ui-tabs-nav .ui-tabs-anchor {
|
296 |
padding: .5em 0.6em;
|
297 |
font-size: 14px;
|
216 |
float: right;
|
217 |
width: 86%;
|
218 |
box-sizing: border-box;
|
|
|
219 |
border: 1px solid #e7e7e7;
|
220 |
padding: 20px;
|
221 |
}
|
222 |
+
.rt-tab-container .rt-tab-content:not(.active) {
|
223 |
+
display: none;
|
224 |
+
}
|
225 |
div#rt-schema-tab-holder:after {
|
226 |
clear: both;
|
227 |
content: ".";
|
285 |
}
|
286 |
|
287 |
.field-container .field-label span {
|
288 |
+
margin-left: 5px;
|
|
|
289 |
}
|
290 |
+
p.description .required,
|
291 |
+
.field-container .field-label span.required {
|
292 |
color: red;
|
293 |
}
|
294 |
+
.field-container .field-label span.recommended {
|
295 |
+
color: #721c24;
|
296 |
+
}
|
297 |
+
/* tooltip */
|
298 |
|
299 |
+
[data-kcseo-tooltip]{
|
300 |
+
position: relative;
|
301 |
+
}
|
302 |
+
[data-kcseo-tooltip]:hover::after{
|
303 |
+
position: absolute;
|
304 |
+
left: 50%;
|
305 |
+
bottom: 100%;
|
306 |
+
content: attr(data-kcseo-tooltip);
|
307 |
+
background: rgba(0,0,0,.8);
|
308 |
+
color: #fff;
|
309 |
+
padding: .5em 1em;
|
310 |
+
border-radius: 7px;
|
311 |
+
transform: translateX(-50%);
|
312 |
+
transition: all ease-in-out 250ms;
|
313 |
+
}
|
314 |
.schema-holder .ui-tabs .ui-tabs-nav .ui-tabs-anchor {
|
315 |
padding: .5em 0.6em;
|
316 |
font-size: 14px;
|
assets/js/admin.js
CHANGED
@@ -1,8 +1,7 @@
|
|
1 |
(function ($) {
|
2 |
'use strict';
|
3 |
|
4 |
-
$(
|
5 |
-
$(".rt-tab-nav li:first-child a").trigger('click');
|
6 |
if ($(".kcseo-date").length) {
|
7 |
$('.kcseo-date').datepicker({
|
8 |
'format': 'yyyy-mm-dd',
|
@@ -62,16 +61,17 @@
|
|
62 |
|
63 |
$(".rt-tab-nav li").on('click', 'a', function (e) {
|
64 |
e.preventDefault();
|
65 |
-
var
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
content.
|
72 |
nav.find('li').removeClass('active');
|
73 |
-
|
74 |
-
container.find(
|
|
|
75 |
});
|
76 |
|
77 |
$(".kSeoImgAdd").on("click", function (e) {
|
1 |
(function ($) {
|
2 |
'use strict';
|
3 |
|
4 |
+
$(function () {
|
|
|
5 |
if ($(".kcseo-date").length) {
|
6 |
$('.kcseo-date').datepicker({
|
7 |
'format': 'yyyy-mm-dd',
|
61 |
|
62 |
$(".rt-tab-nav li").on('click', 'a', function (e) {
|
63 |
e.preventDefault();
|
64 |
+
var $this = $(this),
|
65 |
+
li = $this.parent(),
|
66 |
+
container = $this.parents('.rt-tab-container'),
|
67 |
+
nav = container.children('.rt-tab-nav'),
|
68 |
+
content = container.children(".rt-tab-content"),
|
69 |
+
id = li.data('id');
|
70 |
+
content.removeClass('active');
|
71 |
nav.find('li').removeClass('active');
|
72 |
+
li.addClass('active');
|
73 |
+
container.find('#' + id).addClass('active');
|
74 |
+
container.find('#_kcseo_ative_tab').val(id);
|
75 |
});
|
76 |
|
77 |
$(".kSeoImgAdd").on("click", function (e) {
|
languages/wp-seo-structured-data-schema.pot
CHANGED
@@ -1,998 +1,1241 @@
|
|
1 |
-
|
2 |
-
# This file is distributed under the same license as the WP SEO Structured Data Schema package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
|
|
5 |
"Project-Id-Version: WP SEO Structured Data Schema\n"
|
|
|
|
|
|
|
|
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
|
|
9 |
"X-Poedit-Basepath: ..\n"
|
10 |
-
"X-Poedit-
|
|
|
|
|
|
|
|
|
11 |
"X-Poedit-SearchPath-0: .\n"
|
12 |
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
13 |
-
"X-Poedit-SourceCharset: UTF-8\n"
|
14 |
-
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
15 |
|
16 |
-
#:
|
17 |
msgid "Pro Version Features"
|
18 |
msgstr ""
|
19 |
|
20 |
-
#:
|
21 |
msgid "Includes Auto-fill function <---Popular"
|
22 |
msgstr ""
|
23 |
|
24 |
-
#:
|
25 |
msgid "Supports Custom Post Types beyond default page and posts"
|
26 |
msgstr ""
|
27 |
|
28 |
-
#:
|
29 |
msgid "Supports WordPress Multisite"
|
30 |
msgstr ""
|
31 |
|
32 |
-
#:
|
33 |
msgid "Supports more schema types:"
|
34 |
msgstr ""
|
35 |
|
36 |
-
#:
|
37 |
msgid "Books"
|
38 |
msgstr ""
|
39 |
|
40 |
-
#:
|
41 |
msgid "Courses"
|
42 |
msgstr ""
|
43 |
|
44 |
-
#:
|
45 |
msgid "Job Postings"
|
46 |
msgstr ""
|
47 |
|
48 |
-
#:
|
49 |
msgid "Movies"
|
50 |
msgstr ""
|
51 |
|
52 |
-
#:
|
53 |
msgid "Music"
|
54 |
msgstr ""
|
55 |
|
56 |
-
#:
|
57 |
msgid "Recipe"
|
58 |
msgstr ""
|
59 |
|
60 |
-
#:
|
61 |
msgid "TV Episode"
|
62 |
msgstr ""
|
63 |
|
64 |
-
#:
|
65 |
msgid "QAPage"
|
66 |
msgstr ""
|
67 |
|
68 |
-
#:
|
|
|
|
|
|
|
|
|
69 |
msgid "Get the Pro Version"
|
70 |
msgstr ""
|
71 |
|
72 |
-
#:
|
73 |
msgid "Documentation"
|
74 |
msgstr ""
|
75 |
|
76 |
-
#:
|
77 |
msgid "Get Pro"
|
78 |
msgstr ""
|
79 |
|
80 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
81 |
msgid "WP SEO Structured Data Schema"
|
82 |
msgstr ""
|
83 |
|
84 |
-
#:
|
85 |
msgid "WP SEO Schema"
|
86 |
msgstr ""
|
87 |
|
88 |
-
#:
|
89 |
msgid "WP SEO Schema settings"
|
90 |
msgstr ""
|
91 |
|
92 |
-
#:
|
93 |
msgid "Settings"
|
94 |
msgstr ""
|
95 |
|
96 |
-
#:
|
97 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
98 |
msgstr ""
|
99 |
|
100 |
-
#:
|
101 |
-
msgid "
|
102 |
msgstr ""
|
103 |
|
104 |
-
#:
|
105 |
msgid "Article"
|
106 |
msgstr ""
|
107 |
|
108 |
-
#:
|
|
|
109 |
msgid "Headline"
|
110 |
msgstr ""
|
111 |
|
112 |
-
#:
|
113 |
msgid "Article title"
|
114 |
msgstr ""
|
115 |
|
116 |
-
#:
|
|
|
117 |
msgid "Page URL"
|
118 |
msgstr ""
|
119 |
|
120 |
-
#:
|
|
|
121 |
msgid "The canonical URL of the article page"
|
122 |
msgstr ""
|
123 |
|
124 |
-
#:
|
125 |
msgid "Author Name"
|
126 |
msgstr ""
|
127 |
|
128 |
-
#:
|
|
|
129 |
msgid "Author display name"
|
130 |
msgstr ""
|
131 |
|
132 |
-
#:
|
133 |
msgid "Article Feature Image"
|
134 |
msgstr ""
|
135 |
|
136 |
-
#:
|
137 |
-
msgid "
|
|
|
|
|
138 |
msgstr ""
|
139 |
|
140 |
-
#:
|
|
|
141 |
msgid "Published date"
|
142 |
msgstr ""
|
143 |
|
144 |
-
#:
|
|
|
|
|
|
|
145 |
msgid "Like this: 2015-12-25"
|
146 |
msgstr ""
|
147 |
|
148 |
-
#:
|
|
|
149 |
msgid "Modified date"
|
150 |
msgstr ""
|
151 |
|
152 |
-
#:
|
|
|
153 |
msgid "Publisher"
|
154 |
msgstr ""
|
155 |
|
156 |
-
#:
|
|
|
157 |
msgid "Publisher name or Organization name"
|
158 |
msgstr ""
|
159 |
|
160 |
-
#:
|
|
|
161 |
msgid "Publisher Logo"
|
162 |
msgstr ""
|
163 |
|
164 |
-
#:
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
169 |
msgid "Description"
|
170 |
msgstr ""
|
171 |
|
172 |
-
#:
|
|
|
173 |
msgid "Short description"
|
174 |
msgstr ""
|
175 |
|
176 |
-
#:
|
|
|
177 |
msgid "Article body"
|
178 |
msgstr ""
|
179 |
|
180 |
-
#:
|
181 |
msgid "Article content"
|
182 |
msgstr ""
|
183 |
|
184 |
-
#:
|
185 |
msgid "Alternative headline"
|
186 |
msgstr ""
|
187 |
|
188 |
-
#:
|
189 |
msgid "A secondary headline for the article."
|
190 |
msgstr ""
|
191 |
|
192 |
-
#:
|
193 |
msgid "Blog Posting"
|
194 |
msgstr ""
|
195 |
|
196 |
-
#:
|
197 |
msgid "Blog posting title"
|
198 |
msgstr ""
|
199 |
|
200 |
-
#:
|
201 |
msgid "Author name"
|
202 |
msgstr ""
|
203 |
|
204 |
-
#:
|
205 |
msgid "Feature Image"
|
206 |
msgstr ""
|
207 |
|
208 |
-
#:
|
209 |
-
msgid "
|
|
|
|
|
|
|
210 |
msgstr ""
|
211 |
|
212 |
-
#:
|
213 |
msgid "News Article"
|
214 |
msgstr ""
|
215 |
|
216 |
-
#:
|
217 |
msgid "Author"
|
218 |
msgstr ""
|
219 |
|
220 |
-
#:
|
|
|
221 |
msgid "Image"
|
222 |
msgstr ""
|
223 |
|
224 |
-
#:
|
225 |
msgid "Article body content"
|
226 |
msgstr ""
|
227 |
|
228 |
-
#:
|
229 |
msgid "Event"
|
230 |
msgstr ""
|
231 |
|
232 |
-
#:
|
|
|
|
|
233 |
msgid "Name"
|
234 |
msgstr ""
|
235 |
|
236 |
-
#:
|
237 |
msgid "The name of the event."
|
238 |
msgstr ""
|
239 |
|
240 |
-
#:
|
241 |
msgid "Location name"
|
242 |
msgstr ""
|
243 |
|
244 |
-
#:
|
245 |
msgid "Event Location name"
|
246 |
msgstr ""
|
247 |
|
248 |
-
#:
|
249 |
msgid "Location address"
|
250 |
msgstr ""
|
251 |
|
252 |
-
#:
|
253 |
-
msgid "
|
|
|
|
|
254 |
msgstr ""
|
255 |
|
256 |
-
#:
|
257 |
msgid "Start date"
|
258 |
msgstr ""
|
259 |
|
260 |
-
#:
|
261 |
msgid "Event start date"
|
262 |
msgstr ""
|
263 |
|
264 |
-
#:
|
265 |
-
msgid "End date
|
266 |
msgstr ""
|
267 |
|
268 |
-
#:
|
269 |
msgid "Event end date"
|
270 |
msgstr ""
|
271 |
|
272 |
-
#:
|
273 |
-
msgid "Description (Recommended)"
|
274 |
-
msgstr ""
|
275 |
-
|
276 |
-
#: ../lib/models/KcSeoSchemaModel.php:936
|
277 |
msgid "Event description"
|
278 |
msgstr ""
|
279 |
|
280 |
-
#:
|
281 |
-
msgid "Performer Name
|
282 |
msgstr ""
|
283 |
|
284 |
-
#:
|
285 |
msgid "The performer's name."
|
286 |
msgstr ""
|
287 |
|
288 |
-
#:
|
289 |
-
msgid "Image URL
|
290 |
msgstr ""
|
291 |
|
292 |
-
#:
|
293 |
msgid "URL of an image or logo for the event or tour"
|
294 |
msgstr ""
|
295 |
|
296 |
-
#:
|
297 |
-
msgid "Price
|
298 |
msgstr ""
|
299 |
|
300 |
-
#:
|
301 |
-
msgid "
|
|
|
|
|
|
|
302 |
msgstr ""
|
303 |
|
304 |
-
#:
|
305 |
msgid "Price currency"
|
306 |
msgstr ""
|
307 |
|
308 |
-
#:
|
309 |
msgid "The 3-letter currency code. (USD)"
|
310 |
msgstr ""
|
311 |
|
312 |
-
#:
|
313 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
314 |
msgstr ""
|
315 |
|
316 |
-
#:
|
317 |
msgid "Product"
|
318 |
msgstr ""
|
319 |
|
320 |
-
#:
|
321 |
msgid "The name of the product."
|
322 |
msgstr ""
|
323 |
|
324 |
-
#:
|
325 |
-
msgid "
|
|
|
|
|
326 |
msgstr ""
|
327 |
|
328 |
-
#:
|
329 |
msgid "Product description."
|
330 |
msgstr ""
|
331 |
|
332 |
-
#:
|
333 |
msgid "Brand"
|
334 |
msgstr ""
|
335 |
|
336 |
-
#:
|
337 |
msgid "The brand of the product."
|
338 |
msgstr ""
|
339 |
|
340 |
-
#:
|
341 |
-
msgid "
|
342 |
msgstr ""
|
343 |
|
344 |
-
#:
|
345 |
msgid "Rating value. (1 , 2.5, 3, 5 etc)"
|
346 |
msgstr ""
|
347 |
|
348 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
349 |
msgid "Total review count"
|
350 |
msgstr ""
|
351 |
|
352 |
-
#:
|
353 |
-
msgid "
|
|
|
|
|
354 |
msgstr ""
|
355 |
|
356 |
-
#:
|
357 |
-
msgid "
|
|
|
|
|
358 |
msgstr ""
|
359 |
|
360 |
-
#:
|
361 |
-
msgid "
|
362 |
msgstr ""
|
363 |
|
364 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
365 |
msgid "The 3-letter currency code."
|
366 |
msgstr ""
|
367 |
|
368 |
-
#:
|
369 |
msgid "Select a availability type"
|
370 |
msgstr ""
|
371 |
|
372 |
-
#:
|
373 |
msgid "Select a condition"
|
374 |
msgstr ""
|
375 |
|
376 |
-
#:
|
377 |
msgid "Product URL"
|
378 |
msgstr ""
|
379 |
|
380 |
-
#:
|
381 |
-
msgid "
|
|
|
|
|
382 |
msgstr ""
|
383 |
|
384 |
-
#:
|
385 |
msgid "Video"
|
386 |
msgstr ""
|
387 |
|
388 |
-
#:
|
389 |
msgid "The title of the video"
|
390 |
msgstr ""
|
391 |
|
392 |
-
#:
|
393 |
msgid "The description of the video"
|
394 |
msgstr ""
|
395 |
|
396 |
-
#:
|
397 |
-
msgid "
|
|
|
|
|
398 |
msgstr ""
|
399 |
|
400 |
-
#:
|
401 |
msgid "Updated date"
|
402 |
msgstr ""
|
403 |
|
404 |
-
#:
|
405 |
msgid "2015-02-05T08:00:00+08:00"
|
406 |
msgstr ""
|
407 |
|
408 |
-
#:
|
409 |
msgid "Duration"
|
410 |
msgstr ""
|
411 |
|
412 |
-
#:
|
413 |
msgid "The duration of the video in ISO 8601 format.(PT1M33S)"
|
414 |
msgstr ""
|
415 |
|
416 |
-
#:
|
417 |
-
msgid "
|
|
|
|
|
|
|
418 |
msgstr ""
|
419 |
|
420 |
-
#:
|
421 |
-
msgid "
|
|
|
|
|
|
|
422 |
msgstr ""
|
423 |
|
424 |
-
#:
|
425 |
msgid "Interaction count"
|
426 |
msgstr ""
|
427 |
|
428 |
-
#:
|
429 |
msgid "The number of times the video has been viewed."
|
430 |
msgstr ""
|
431 |
|
432 |
-
#:
|
433 |
msgid "Expires"
|
434 |
msgstr ""
|
435 |
|
436 |
-
#:
|
437 |
msgid "Service"
|
438 |
msgstr ""
|
439 |
|
440 |
-
#:
|
441 |
msgid "The name of the Service."
|
442 |
msgstr ""
|
443 |
|
444 |
-
#:
|
445 |
msgid "Service type"
|
446 |
msgstr ""
|
447 |
|
448 |
-
#:
|
449 |
-
msgid "
|
|
|
|
|
450 |
msgstr ""
|
451 |
|
452 |
-
#:
|
453 |
-
msgid "
|
|
|
|
|
454 |
msgstr ""
|
455 |
|
456 |
-
#:
|
457 |
msgid "Award"
|
458 |
msgstr ""
|
459 |
|
460 |
-
#:
|
461 |
msgid "An award won by or for this service."
|
462 |
msgstr ""
|
463 |
|
464 |
-
#:
|
465 |
msgid "Category"
|
466 |
msgstr ""
|
467 |
|
468 |
-
#:
|
469 |
msgid "A category for the service."
|
470 |
msgstr ""
|
471 |
|
472 |
-
#:
|
473 |
msgid "Provider mobility"
|
474 |
msgstr ""
|
475 |
|
476 |
-
#:
|
477 |
-
msgid "
|
|
|
478 |
msgstr ""
|
479 |
|
480 |
-
#:
|
481 |
msgid "A short description of the service."
|
482 |
msgstr ""
|
483 |
|
484 |
-
#:
|
485 |
msgid "An image of the service. This should be a URL."
|
486 |
msgstr ""
|
487 |
|
488 |
-
#:
|
489 |
-
msgid "
|
|
|
|
|
490 |
msgstr ""
|
491 |
|
492 |
-
#:
|
493 |
-
msgid "
|
|
|
|
|
|
|
494 |
msgstr ""
|
495 |
|
496 |
-
#:
|
497 |
msgid "URL of the service."
|
498 |
msgstr ""
|
499 |
|
500 |
-
#:
|
501 |
msgid "Alternate name"
|
502 |
msgstr ""
|
503 |
|
504 |
-
#:
|
505 |
msgid "An alias for the service."
|
506 |
msgstr ""
|
507 |
|
508 |
-
#:
|
509 |
msgid "Review"
|
510 |
msgstr ""
|
511 |
|
512 |
-
#:
|
513 |
msgid "Name of the reviewed item"
|
514 |
msgstr ""
|
515 |
|
516 |
-
#:
|
517 |
msgid "The item that is being reviewed."
|
518 |
msgstr ""
|
519 |
|
520 |
-
#:
|
521 |
msgid "Review body"
|
522 |
msgstr ""
|
523 |
|
524 |
-
#:
|
525 |
msgid "The actual body of the review."
|
526 |
msgstr ""
|
527 |
|
528 |
-
#:
|
529 |
msgid "Review name"
|
530 |
msgstr ""
|
531 |
|
532 |
-
#:
|
533 |
msgid "A particular name for the review."
|
534 |
msgstr ""
|
535 |
|
536 |
-
#:
|
537 |
msgid "The author of the review. The reviewer’s name needs to be a valid name."
|
538 |
msgstr ""
|
539 |
|
540 |
-
#:
|
541 |
msgid "Date of Published"
|
542 |
msgstr ""
|
543 |
|
544 |
-
#:
|
545 |
-
|
546 |
-
msgstr ""
|
547 |
-
|
548 |
-
#: ../lib/models/KcSeoSchemaModel.php:1234, ../lib/models/KcSeoSchemaModel.php:1322, ../lib/models/KcSeoSchemaModel.php:1329
|
549 |
msgid "A numerical quality rating for the item."
|
550 |
msgstr ""
|
551 |
|
552 |
-
#:
|
553 |
msgid "Best rating"
|
554 |
msgstr ""
|
555 |
|
556 |
-
#:
|
557 |
msgid "The highest value allowed in this rating system."
|
558 |
msgstr ""
|
559 |
|
560 |
-
#:
|
561 |
msgid "Worst rating"
|
562 |
msgstr ""
|
563 |
|
564 |
-
#:
|
565 |
-
msgid "
|
|
|
|
|
566 |
msgstr ""
|
567 |
|
568 |
-
#:
|
569 |
msgid "Name of the organization"
|
570 |
msgstr ""
|
571 |
|
572 |
-
#:
|
573 |
msgid "The publisher of the review."
|
574 |
msgstr ""
|
575 |
|
576 |
-
#:
|
577 |
msgid "Aggregate Ratings"
|
578 |
msgstr ""
|
579 |
|
580 |
-
#:
|
581 |
msgid "Schema type"
|
582 |
msgstr ""
|
583 |
|
584 |
-
#:
|
585 |
msgid "Use the most appropriate schema type for what is being reviewed."
|
586 |
msgstr ""
|
587 |
|
588 |
-
#:
|
589 |
msgid "Name of the item"
|
590 |
msgstr ""
|
591 |
|
592 |
-
#:
|
593 |
msgid "The item that is being rated."
|
594 |
msgstr ""
|
595 |
|
596 |
-
#:
|
|
|
597 |
msgid "The price range of the business, for example $$$."
|
598 |
msgstr ""
|
599 |
|
600 |
-
#:
|
601 |
msgid "Description for thr review"
|
602 |
msgstr ""
|
603 |
|
604 |
-
#:
|
605 |
msgid "Rating Count"
|
606 |
msgstr ""
|
607 |
|
608 |
-
#:
|
609 |
-
msgid "
|
|
|
|
|
|
|
610 |
msgstr ""
|
611 |
|
612 |
-
#:
|
613 |
msgid "Review Count"
|
614 |
msgstr ""
|
615 |
|
616 |
-
#:
|
617 |
-
msgid "
|
|
|
|
|
618 |
msgstr ""
|
619 |
|
620 |
-
#:
|
621 |
msgid "Rating Value"
|
622 |
msgstr ""
|
623 |
|
624 |
-
#:
|
625 |
msgid "Best Rating"
|
626 |
msgstr ""
|
627 |
|
628 |
-
#:
|
629 |
-
msgid "
|
|
|
|
|
|
|
630 |
msgstr ""
|
631 |
|
632 |
-
#:
|
633 |
msgid "Worst Rating"
|
634 |
msgstr ""
|
635 |
|
636 |
-
#:
|
637 |
-
msgid "
|
|
|
|
|
|
|
638 |
msgstr ""
|
639 |
|
640 |
-
#:
|
641 |
msgid "Restaurant"
|
642 |
msgstr ""
|
643 |
|
644 |
-
#:
|
645 |
msgid "Name of the Restaurant"
|
646 |
msgstr ""
|
647 |
|
648 |
-
#:
|
649 |
msgid "Description of the Restaurant"
|
650 |
msgstr ""
|
651 |
|
652 |
-
#:
|
653 |
msgid "Opening Hours"
|
654 |
msgstr ""
|
655 |
|
656 |
-
#:
|
657 |
msgid "Mo,Tu,We,Th,Fr,Sa,Su 11:30-23:00"
|
658 |
msgstr ""
|
659 |
|
660 |
-
#:
|
|
|
|
|
|
|
|
|
661 |
msgid "+155501003333"
|
662 |
msgstr ""
|
663 |
|
664 |
-
#:
|
665 |
msgid "Menu"
|
666 |
msgstr ""
|
667 |
|
668 |
-
#:
|
669 |
msgid "http://example.com/menu"
|
670 |
msgstr ""
|
671 |
|
672 |
-
#:
|
673 |
msgid "Address"
|
674 |
msgstr ""
|
675 |
|
676 |
-
#:
|
|
|
677 |
msgid "Price Range"
|
678 |
msgstr ""
|
679 |
|
680 |
-
#:
|
681 |
msgid "The price range of the business, for example $$$"
|
682 |
msgstr ""
|
683 |
|
684 |
-
#:
|
685 |
msgid "Serves Cuisine"
|
686 |
msgstr ""
|
687 |
|
688 |
-
#:
|
689 |
msgid "The cuisine of the restaurant."
|
690 |
msgstr ""
|
691 |
|
692 |
-
#:
|
693 |
msgid "Local Business"
|
694 |
msgstr ""
|
695 |
|
696 |
-
#:
|
697 |
msgid "Business Logo"
|
698 |
msgstr ""
|
699 |
|
700 |
-
#:
|
701 |
-
msgid "Price Range (Recommended)"
|
702 |
-
msgstr ""
|
703 |
-
|
704 |
-
#: ../lib/models/KcSeoSchemaModel.php:1426
|
705 |
msgid "Address locality"
|
706 |
msgstr ""
|
707 |
|
708 |
-
#:
|
709 |
msgid "City (i.e Kansas city)"
|
710 |
msgstr ""
|
711 |
|
712 |
-
#:
|
713 |
msgid "Address region"
|
714 |
msgstr ""
|
715 |
|
716 |
-
#:
|
717 |
msgid "State (i.e. MO)"
|
718 |
msgstr ""
|
719 |
|
720 |
-
#:
|
721 |
msgid "Postal code"
|
722 |
msgstr ""
|
723 |
|
724 |
-
#:
|
725 |
msgid "Street address"
|
726 |
msgstr ""
|
727 |
|
728 |
-
#:
|
729 |
-
msgid "Telephone (Recommended)"
|
730 |
-
msgstr ""
|
731 |
-
|
732 |
-
#: ../lib/models/KcSeoSchemaModel.php:1451
|
733 |
msgid "Book"
|
734 |
msgstr ""
|
735 |
|
736 |
-
#:
|
737 |
msgid "Course"
|
738 |
msgstr ""
|
739 |
|
740 |
-
#:
|
741 |
msgid "Job Posting"
|
742 |
msgstr ""
|
743 |
|
744 |
-
#:
|
745 |
msgid "Movie"
|
746 |
msgstr ""
|
747 |
|
748 |
-
#:
|
749 |
msgid "TVEpisode"
|
750 |
msgstr ""
|
751 |
|
752 |
-
#:
|
753 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
754 |
msgstr ""
|
755 |
|
756 |
-
#:
|
757 |
msgid "Site Type"
|
758 |
msgstr ""
|
759 |
|
760 |
-
#:
|
761 |
msgid "Select one type"
|
762 |
msgstr ""
|
763 |
|
764 |
-
#:
|
765 |
msgid "Organization or Business name"
|
766 |
msgstr ""
|
767 |
|
768 |
-
#:
|
769 |
msgid "Site Image"
|
770 |
msgstr ""
|
771 |
|
772 |
-
#:
|
773 |
msgid "Site Telephone"
|
774 |
msgstr ""
|
775 |
|
776 |
-
#:
|
777 |
msgid "The telephone number."
|
778 |
msgstr ""
|
779 |
|
780 |
-
#:
|
781 |
msgid "Additional Type"
|
782 |
msgstr ""
|
783 |
|
784 |
-
#:
|
785 |
msgid "Add \"Additional Type\""
|
786 |
msgstr ""
|
787 |
|
788 |
-
#:
|
789 |
msgid ""
|
790 |
-
"Product Ontology is an extension to schema using WikiPedia definitions that
|
791 |
-
"
|
|
|
|
|
|
|
792 |
msgstr ""
|
793 |
|
794 |
-
#:
|
795 |
msgid "Restaurant Information"
|
796 |
msgstr ""
|
797 |
|
798 |
-
#:
|
799 |
msgid "Others local business info"
|
800 |
msgstr ""
|
801 |
|
802 |
-
#:
|
803 |
msgid "Operation Hours"
|
804 |
msgstr ""
|
805 |
|
806 |
-
#:
|
807 |
msgid "GeoCoordinates"
|
808 |
msgstr ""
|
809 |
|
810 |
-
#:
|
811 |
msgid "Latitude"
|
812 |
msgstr ""
|
813 |
|
814 |
-
#:
|
815 |
msgid "Longitude"
|
816 |
msgstr ""
|
817 |
|
818 |
-
#:
|
819 |
msgid "Person"
|
820 |
msgstr ""
|
821 |
|
822 |
-
#:
|
823 |
msgid "Work For"
|
824 |
msgstr ""
|
825 |
|
826 |
-
#:
|
827 |
msgid "Job Title"
|
828 |
msgstr ""
|
829 |
|
830 |
-
#:
|
831 |
msgid "Add your personal photo here"
|
832 |
msgstr ""
|
833 |
|
834 |
-
#:
|
835 |
msgid "Birth date"
|
836 |
msgstr ""
|
837 |
|
838 |
-
#:
|
839 |
msgid "Address Country"
|
840 |
msgstr ""
|
841 |
|
842 |
-
#:
|
843 |
msgid "Address Locality"
|
844 |
msgstr ""
|
845 |
|
846 |
-
#:
|
847 |
msgid "Address Region"
|
848 |
msgstr ""
|
849 |
|
850 |
-
#:
|
851 |
msgid "Postal Code"
|
852 |
msgstr ""
|
853 |
|
854 |
-
#:
|
855 |
msgid "Street Address"
|
856 |
msgstr ""
|
857 |
|
858 |
-
#:
|
859 |
msgid "Add New Address"
|
860 |
msgstr ""
|
861 |
|
862 |
-
#:
|
863 |
msgid "Organization Logo"
|
864 |
msgstr ""
|
865 |
|
866 |
-
#:
|
867 |
msgid "Social Profile"
|
868 |
msgstr ""
|
869 |
|
870 |
-
#:
|
871 |
msgid "Corporate Contacts"
|
872 |
msgstr ""
|
873 |
|
874 |
-
#:
|
875 |
msgid "Select Organization Logo"
|
876 |
msgstr ""
|
877 |
|
878 |
-
#:
|
879 |
msgid "Company Name"
|
880 |
msgstr ""
|
881 |
|
882 |
-
#:
|
883 |
msgid "Social Profiles"
|
884 |
msgstr ""
|
885 |
|
886 |
-
#:
|
887 |
msgid "Add Social Profile"
|
888 |
msgstr ""
|
889 |
|
890 |
-
#:
|
891 |
msgid "Contacts"
|
892 |
msgstr ""
|
893 |
|
894 |
-
#:
|
895 |
msgid "Contact Phone"
|
896 |
msgstr ""
|
897 |
|
898 |
-
#:
|
899 |
msgid "Please follow the format below"
|
900 |
msgstr ""
|
901 |
|
902 |
-
#:
|
903 |
msgid "Contact Email"
|
904 |
msgstr ""
|
905 |
|
906 |
-
#:
|
907 |
msgid "Contact Option"
|
908 |
msgstr ""
|
909 |
|
910 |
-
#:
|
911 |
msgid "Select an option"
|
912 |
msgstr ""
|
913 |
|
914 |
-
#:
|
915 |
msgid "TollFree"
|
916 |
msgstr ""
|
917 |
|
918 |
-
#:
|
919 |
msgid "HearingImpairedSupported"
|
920 |
msgstr ""
|
921 |
|
922 |
-
#:
|
923 |
msgid "Area Served"
|
924 |
msgstr ""
|
925 |
|
926 |
-
#:
|
927 |
msgid "Available language"
|
928 |
msgstr ""
|
929 |
|
930 |
-
#:
|
931 |
msgid "Site Schema"
|
932 |
msgstr ""
|
933 |
|
934 |
-
#:
|
935 |
msgid "Disable Site Schema"
|
936 |
msgstr ""
|
937 |
|
938 |
-
#:
|
939 |
msgid "Enable Site link Search Box"
|
940 |
msgstr ""
|
941 |
|
942 |
-
#:
|
943 |
msgid "Note: Preferred Name markup may no longer be supported by Google"
|
944 |
msgstr ""
|
945 |
|
946 |
-
#:
|
947 |
msgid "Site Name:"
|
948 |
msgstr ""
|
949 |
|
950 |
-
#:
|
951 |
msgid "Site Alternative Name:"
|
952 |
msgstr ""
|
953 |
|
954 |
-
#:
|
955 |
msgid "Site Url:"
|
956 |
msgstr ""
|
957 |
|
958 |
-
#:
|
959 |
msgid "Save Changes"
|
960 |
msgstr ""
|
961 |
|
962 |
-
#:
|
963 |
msgid "Schema Settings"
|
964 |
msgstr ""
|
965 |
|
966 |
-
#:
|
967 |
msgid "Business / Org Schema"
|
968 |
msgstr ""
|
969 |
|
970 |
-
#:
|
971 |
msgid ""
|
972 |
"Home page\n"
|
973 |
" only"
|
974 |
msgstr ""
|
975 |
|
976 |
-
#:
|
977 |
msgid ""
|
978 |
"Sitewide (Apply General Settings schema\n"
|
979 |
" sitewide)"
|
980 |
msgstr ""
|
981 |
|
982 |
-
#:
|
983 |
msgid "Turn off (Turn off global schema)"
|
984 |
msgstr ""
|
985 |
|
986 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
987 |
msgid "Delete all data"
|
988 |
msgstr ""
|
989 |
|
990 |
-
#:
|
991 |
msgid "Enable"
|
992 |
msgstr ""
|
993 |
|
994 |
-
#:
|
995 |
msgid ""
|
996 |
-
"This will delete all schema created and applied by this plugin when plugin
|
|
|
997 |
" deleted."
|
998 |
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#, fuzzy
|
|
|
2 |
msgid ""
|
3 |
msgstr ""
|
4 |
+
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
|
5 |
"Project-Id-Version: WP SEO Structured Data Schema\n"
|
6 |
+
"POT-Creation-Date: 2019-03-08 11:43+0600\n"
|
7 |
+
"PO-Revision-Date: 2019-03-08 11:43+0600\n"
|
8 |
+
"Last-Translator: \n"
|
9 |
+
"Language-Team: \n"
|
10 |
"MIME-Version: 1.0\n"
|
11 |
"Content-Type: text/plain; charset=UTF-8\n"
|
12 |
"Content-Transfer-Encoding: 8bit\n"
|
13 |
+
"X-Generator: Poedit 1.8.7\n"
|
14 |
"X-Poedit-Basepath: ..\n"
|
15 |
+
"X-Poedit-WPHeader: wp-seo-structured-data-schema.php\n"
|
16 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
17 |
+
"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
|
18 |
+
"esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
|
19 |
+
"_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
|
20 |
"X-Poedit-SearchPath-0: .\n"
|
21 |
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
|
|
|
|
22 |
|
23 |
+
#: lib/classes/KcSeoHelper.php:189
|
24 |
msgid "Pro Version Features"
|
25 |
msgstr ""
|
26 |
|
27 |
+
#: lib/classes/KcSeoHelper.php:191
|
28 |
msgid "Includes Auto-fill function <---Popular"
|
29 |
msgstr ""
|
30 |
|
31 |
+
#: lib/classes/KcSeoHelper.php:192
|
32 |
msgid "Supports Custom Post Types beyond default page and posts"
|
33 |
msgstr ""
|
34 |
|
35 |
+
#: lib/classes/KcSeoHelper.php:193
|
36 |
msgid "Supports WordPress Multisite"
|
37 |
msgstr ""
|
38 |
|
39 |
+
#: lib/classes/KcSeoHelper.php:194
|
40 |
msgid "Supports more schema types:"
|
41 |
msgstr ""
|
42 |
|
43 |
+
#: lib/classes/KcSeoHelper.php:196
|
44 |
msgid "Books"
|
45 |
msgstr ""
|
46 |
|
47 |
+
#: lib/classes/KcSeoHelper.php:197
|
48 |
msgid "Courses"
|
49 |
msgstr ""
|
50 |
|
51 |
+
#: lib/classes/KcSeoHelper.php:198
|
52 |
msgid "Job Postings"
|
53 |
msgstr ""
|
54 |
|
55 |
+
#: lib/classes/KcSeoHelper.php:199
|
56 |
msgid "Movies"
|
57 |
msgstr ""
|
58 |
|
59 |
+
#: lib/classes/KcSeoHelper.php:200 lib/functions/KcSeoOptions.php:851
|
60 |
msgid "Music"
|
61 |
msgstr ""
|
62 |
|
63 |
+
#: lib/classes/KcSeoHelper.php:201 lib/functions/KcSeoOptions.php:855
|
64 |
msgid "Recipe"
|
65 |
msgstr ""
|
66 |
|
67 |
+
#: lib/classes/KcSeoHelper.php:202
|
68 |
msgid "TV Episode"
|
69 |
msgstr ""
|
70 |
|
71 |
+
#: lib/classes/KcSeoHelper.php:203 lib/functions/KcSeoOptions.php:863
|
72 |
msgid "QAPage"
|
73 |
msgstr ""
|
74 |
|
75 |
+
#: lib/classes/KcSeoHelper.php:204 lib/functions/KcSeoOptions.php:867
|
76 |
+
msgid "Item List"
|
77 |
+
msgstr ""
|
78 |
+
|
79 |
+
#: lib/classes/KcSeoHelper.php:210
|
80 |
msgid "Get the Pro Version"
|
81 |
msgstr ""
|
82 |
|
83 |
+
#: lib/classes/KcSeoInit.php:33
|
84 |
msgid "Documentation"
|
85 |
msgstr ""
|
86 |
|
87 |
+
#: lib/classes/KcSeoInit.php:34
|
88 |
msgid "Get Pro"
|
89 |
msgstr ""
|
90 |
|
91 |
+
#: lib/classes/KcSeoInit.php:151 lib/classes/KcSeoInit.php:173
|
92 |
+
msgid "Settings successfully updated"
|
93 |
+
msgstr ""
|
94 |
+
|
95 |
+
#: lib/classes/KcSeoInit.php:153 lib/classes/KcSeoInit.php:175
|
96 |
+
msgid "Security Error !!"
|
97 |
+
msgstr ""
|
98 |
+
|
99 |
+
#. Plugin Name of the plugin/theme
|
100 |
+
#: lib/classes/KcSeoInit.php:197 lib/views/schema-options.php:7
|
101 |
msgid "WP SEO Structured Data Schema"
|
102 |
msgstr ""
|
103 |
|
104 |
+
#: lib/classes/KcSeoInit.php:197
|
105 |
msgid "WP SEO Schema"
|
106 |
msgstr ""
|
107 |
|
108 |
+
#: lib/classes/KcSeoInit.php:199
|
109 |
msgid "WP SEO Schema settings"
|
110 |
msgstr ""
|
111 |
|
112 |
+
#: lib/classes/KcSeoInit.php:199
|
113 |
msgid "Settings"
|
114 |
msgstr ""
|
115 |
|
116 |
+
#: lib/classes/KcSeoMetaData.php:47
|
117 |
+
msgid ""
|
118 |
+
"WP SEO Structured Data Schema by <a href=\"https://wpsemplugins.com/"
|
119 |
+
"\">WPSEMPlugins.com</a>"
|
120 |
+
msgstr ""
|
121 |
+
|
122 |
+
#: lib/classes/KcSeoMetaData.php:64 lib/views/schema-options.php:26
|
123 |
+
msgid ""
|
124 |
+
"For more detailed information on how to configure this plugin, please visit:"
|
125 |
+
msgstr ""
|
126 |
+
|
127 |
+
#: lib/classes/KcSeoMetaData.php:65
|
128 |
+
msgid ""
|
129 |
+
"Once you save these structured data schema settings, validate this page url "
|
130 |
+
"here:"
|
131 |
+
msgstr ""
|
132 |
+
|
133 |
+
#: lib/classes/KcSeoMetaData.php:80
|
134 |
+
msgid "Auto Fill"
|
135 |
+
msgstr ""
|
136 |
+
|
137 |
+
#: lib/classes/KcSeoMetaData.php:80 lib/views/schema-options.php:318
|
138 |
+
#: lib/views/settings.php:32 lib/views/settings.php:50
|
139 |
+
#: lib/views/settings.php:75 lib/views/settings.php:84
|
140 |
+
msgid "PRO"
|
141 |
msgstr ""
|
142 |
|
143 |
+
#: lib/classes/KcSeoMetaData.php:93
|
144 |
+
msgid "This is a Pro version feature."
|
145 |
msgstr ""
|
146 |
|
147 |
+
#: lib/functions/KcSeoOptions.php:10
|
148 |
msgid "Article"
|
149 |
msgstr ""
|
150 |
|
151 |
+
#: lib/functions/KcSeoOptions.php:16 lib/functions/KcSeoOptions.php:90
|
152 |
+
#: lib/functions/KcSeoOptions.php:159
|
153 |
msgid "Headline"
|
154 |
msgstr ""
|
155 |
|
156 |
+
#: lib/functions/KcSeoOptions.php:18 lib/functions/KcSeoOptions.php:161
|
157 |
msgid "Article title"
|
158 |
msgstr ""
|
159 |
|
160 |
+
#: lib/functions/KcSeoOptions.php:22 lib/functions/KcSeoOptions.php:96
|
161 |
+
#: lib/functions/KcSeoOptions.php:165
|
162 |
msgid "Page URL"
|
163 |
msgstr ""
|
164 |
|
165 |
+
#: lib/functions/KcSeoOptions.php:24 lib/functions/KcSeoOptions.php:98
|
166 |
+
#: lib/functions/KcSeoOptions.php:167
|
167 |
msgid "The canonical URL of the article page"
|
168 |
msgstr ""
|
169 |
|
170 |
+
#: lib/functions/KcSeoOptions.php:28
|
171 |
msgid "Author Name"
|
172 |
msgstr ""
|
173 |
|
174 |
+
#: lib/functions/KcSeoOptions.php:30 lib/functions/KcSeoOptions.php:104
|
175 |
+
#: lib/functions/KcSeoOptions.php:173
|
176 |
msgid "Author display name"
|
177 |
msgstr ""
|
178 |
|
179 |
+
#: lib/functions/KcSeoOptions.php:34
|
180 |
msgid "Article Feature Image"
|
181 |
msgstr ""
|
182 |
|
183 |
+
#: lib/functions/KcSeoOptions.php:37
|
184 |
+
msgid ""
|
185 |
+
"Images should be at least 696 pixels wide.<br>Images should be in .jpg, ."
|
186 |
+
"png, or. gif format."
|
187 |
msgstr ""
|
188 |
|
189 |
+
#: lib/functions/KcSeoOptions.php:40 lib/functions/KcSeoOptions.php:114
|
190 |
+
#: lib/functions/KcSeoOptions.php:183
|
191 |
msgid "Published date"
|
192 |
msgstr ""
|
193 |
|
194 |
+
#: lib/functions/KcSeoOptions.php:44 lib/functions/KcSeoOptions.php:51
|
195 |
+
#: lib/functions/KcSeoOptions.php:117 lib/functions/KcSeoOptions.php:124
|
196 |
+
#: lib/functions/KcSeoOptions.php:186 lib/functions/KcSeoOptions.php:194
|
197 |
+
#: lib/functions/KcSeoOptions.php:490 lib/functions/KcSeoOptions.php:607
|
198 |
msgid "Like this: 2015-12-25"
|
199 |
msgstr ""
|
200 |
|
201 |
+
#: lib/functions/KcSeoOptions.php:47 lib/functions/KcSeoOptions.php:121
|
202 |
+
#: lib/functions/KcSeoOptions.php:190
|
203 |
msgid "Modified date"
|
204 |
msgstr ""
|
205 |
|
206 |
+
#: lib/functions/KcSeoOptions.php:54 lib/functions/KcSeoOptions.php:128
|
207 |
+
#: lib/functions/KcSeoOptions.php:197
|
208 |
msgid "Publisher"
|
209 |
msgstr ""
|
210 |
|
211 |
+
#: lib/functions/KcSeoOptions.php:56 lib/functions/KcSeoOptions.php:130
|
212 |
+
#: lib/functions/KcSeoOptions.php:199
|
213 |
msgid "Publisher name or Organization name"
|
214 |
msgstr ""
|
215 |
|
216 |
+
#: lib/functions/KcSeoOptions.php:60 lib/functions/KcSeoOptions.php:134
|
217 |
+
#: lib/functions/KcSeoOptions.php:203 lib/views/settings.php:83
|
218 |
msgid "Publisher Logo"
|
219 |
msgstr ""
|
220 |
|
221 |
+
#: lib/functions/KcSeoOptions.php:62 lib/functions/KcSeoOptions.php:136
|
222 |
+
#: lib/functions/KcSeoOptions.php:205
|
223 |
+
msgid ""
|
224 |
+
"Logos should have a wide aspect ratio, not a square icon.<br>Logos should be "
|
225 |
+
"no wider than 600px, and no taller than 60px.<br>Always retain the original "
|
226 |
+
"aspect ratio of the logo when resizing. Ideally, logos are exactly 60px tall "
|
227 |
+
"with width <= 600px. If maintaining a height of 60px would cause the width "
|
228 |
+
"to exceed 600px, downscale the logo to exactly 600px wide and reduce the "
|
229 |
+
"height accordingly below 60px to maintain the original aspect ratio.<br>"
|
230 |
+
msgstr ""
|
231 |
+
|
232 |
+
#: lib/functions/KcSeoOptions.php:66 lib/functions/KcSeoOptions.php:140
|
233 |
+
#: lib/functions/KcSeoOptions.php:209 lib/functions/KcSeoOptions.php:260
|
234 |
+
#: lib/functions/KcSeoOptions.php:335 lib/functions/KcSeoOptions.php:446
|
235 |
+
#: lib/functions/KcSeoOptions.php:681 lib/functions/KcSeoOptions.php:794
|
236 |
+
#: lib/views/schema-options.php:170 lib/views/schema-options.php:255
|
237 |
msgid "Description"
|
238 |
msgstr ""
|
239 |
|
240 |
+
#: lib/functions/KcSeoOptions.php:68 lib/functions/KcSeoOptions.php:142
|
241 |
+
#: lib/functions/KcSeoOptions.php:211
|
242 |
msgid "Short description"
|
243 |
msgstr ""
|
244 |
|
245 |
+
#: lib/functions/KcSeoOptions.php:71 lib/functions/KcSeoOptions.php:145
|
246 |
+
#: lib/functions/KcSeoOptions.php:214
|
247 |
msgid "Article body"
|
248 |
msgstr ""
|
249 |
|
250 |
+
#: lib/functions/KcSeoOptions.php:73 lib/functions/KcSeoOptions.php:147
|
251 |
msgid "Article content"
|
252 |
msgstr ""
|
253 |
|
254 |
+
#: lib/functions/KcSeoOptions.php:76
|
255 |
msgid "Alternative headline"
|
256 |
msgstr ""
|
257 |
|
258 |
+
#: lib/functions/KcSeoOptions.php:78
|
259 |
msgid "A secondary headline for the article."
|
260 |
msgstr ""
|
261 |
|
262 |
+
#: lib/functions/KcSeoOptions.php:84
|
263 |
msgid "Blog Posting"
|
264 |
msgstr ""
|
265 |
|
266 |
+
#: lib/functions/KcSeoOptions.php:92
|
267 |
msgid "Blog posting title"
|
268 |
msgstr ""
|
269 |
|
270 |
+
#: lib/functions/KcSeoOptions.php:102
|
271 |
msgid "Author name"
|
272 |
msgstr ""
|
273 |
|
274 |
+
#: lib/functions/KcSeoOptions.php:108
|
275 |
msgid "Feature Image"
|
276 |
msgstr ""
|
277 |
|
278 |
+
#: lib/functions/KcSeoOptions.php:110 lib/functions/KcSeoOptions.php:179
|
279 |
+
msgid ""
|
280 |
+
"The representative image of the article. Only a marked-up image that "
|
281 |
+
"directly belongs to the article should be specified.<br> Images should be at "
|
282 |
+
"least 696 pixels wide. <br>Images should be in .jpg, .png, or. gif format."
|
283 |
msgstr ""
|
284 |
|
285 |
+
#: lib/functions/KcSeoOptions.php:153
|
286 |
msgid "News Article"
|
287 |
msgstr ""
|
288 |
|
289 |
+
#: lib/functions/KcSeoOptions.php:171 lib/functions/KcSeoOptions.php:597
|
290 |
msgid "Author"
|
291 |
msgstr ""
|
292 |
|
293 |
+
#: lib/functions/KcSeoOptions.php:177 lib/functions/KcSeoOptions.php:330
|
294 |
+
#: lib/functions/KcSeoOptions.php:761 lib/views/schema-options.php:247
|
295 |
msgid "Image"
|
296 |
msgstr ""
|
297 |
|
298 |
+
#: lib/functions/KcSeoOptions.php:216
|
299 |
msgid "Article body content"
|
300 |
msgstr ""
|
301 |
|
302 |
+
#: lib/functions/KcSeoOptions.php:222
|
303 |
msgid "Event"
|
304 |
msgstr ""
|
305 |
|
306 |
+
#: lib/functions/KcSeoOptions.php:228 lib/functions/KcSeoOptions.php:324
|
307 |
+
#: lib/functions/KcSeoOptions.php:440 lib/functions/KcSeoOptions.php:502
|
308 |
+
#: lib/functions/KcSeoOptions.php:789 lib/views/schema-options.php:224
|
309 |
msgid "Name"
|
310 |
msgstr ""
|
311 |
|
312 |
+
#: lib/functions/KcSeoOptions.php:231
|
313 |
msgid "The name of the event."
|
314 |
msgstr ""
|
315 |
|
316 |
+
#: lib/functions/KcSeoOptions.php:234
|
317 |
msgid "Location name"
|
318 |
msgstr ""
|
319 |
|
320 |
+
#: lib/functions/KcSeoOptions.php:237
|
321 |
msgid "Event Location name"
|
322 |
msgstr ""
|
323 |
|
324 |
+
#: lib/functions/KcSeoOptions.php:240
|
325 |
msgid "Location address"
|
326 |
msgstr ""
|
327 |
|
328 |
+
#: lib/functions/KcSeoOptions.php:243
|
329 |
+
msgid ""
|
330 |
+
"The location of for example where the event is happening, an organization is "
|
331 |
+
"located, or where an action takes place."
|
332 |
msgstr ""
|
333 |
|
334 |
+
#: lib/functions/KcSeoOptions.php:246
|
335 |
msgid "Start date"
|
336 |
msgstr ""
|
337 |
|
338 |
+
#: lib/functions/KcSeoOptions.php:250
|
339 |
msgid "Event start date"
|
340 |
msgstr ""
|
341 |
|
342 |
+
#: lib/functions/KcSeoOptions.php:253
|
343 |
+
msgid "End date"
|
344 |
msgstr ""
|
345 |
|
346 |
+
#: lib/functions/KcSeoOptions.php:257
|
347 |
msgid "Event end date"
|
348 |
msgstr ""
|
349 |
|
350 |
+
#: lib/functions/KcSeoOptions.php:263
|
|
|
|
|
|
|
|
|
351 |
msgid "Event description"
|
352 |
msgstr ""
|
353 |
|
354 |
+
#: lib/functions/KcSeoOptions.php:266
|
355 |
+
msgid "Performer Name"
|
356 |
msgstr ""
|
357 |
|
358 |
+
#: lib/functions/KcSeoOptions.php:269
|
359 |
msgid "The performer's name."
|
360 |
msgstr ""
|
361 |
|
362 |
+
#: lib/functions/KcSeoOptions.php:272
|
363 |
+
msgid "Image URL"
|
364 |
msgstr ""
|
365 |
|
366 |
+
#: lib/functions/KcSeoOptions.php:275
|
367 |
msgid "URL of an image or logo for the event or tour"
|
368 |
msgstr ""
|
369 |
|
370 |
+
#: lib/functions/KcSeoOptions.php:278 lib/functions/KcSeoOptions.php:380
|
371 |
+
msgid "Price"
|
372 |
msgstr ""
|
373 |
|
374 |
+
#: lib/functions/KcSeoOptions.php:282
|
375 |
+
msgid ""
|
376 |
+
"This is highly recommended. The lowest available price, including service "
|
377 |
+
"charges and fees, of this type of ticket. <span class='required'>Not "
|
378 |
+
"required but (Recommended)</span>"
|
379 |
msgstr ""
|
380 |
|
381 |
+
#: lib/functions/KcSeoOptions.php:285 lib/functions/KcSeoOptions.php:393
|
382 |
msgid "Price currency"
|
383 |
msgstr ""
|
384 |
|
385 |
+
#: lib/functions/KcSeoOptions.php:287
|
386 |
msgid "The 3-letter currency code. (USD)"
|
387 |
msgstr ""
|
388 |
|
389 |
+
#: lib/functions/KcSeoOptions.php:301
|
390 |
+
msgid "Valid From"
|
391 |
+
msgstr ""
|
392 |
+
|
393 |
+
#: lib/functions/KcSeoOptions.php:312
|
394 |
+
msgid ""
|
395 |
+
"A link to the event's details page. <span class='required'>Not required but "
|
396 |
+
"(Recommended)</span>"
|
397 |
msgstr ""
|
398 |
|
399 |
+
#: lib/functions/KcSeoOptions.php:318
|
400 |
msgid "Product"
|
401 |
msgstr ""
|
402 |
|
403 |
+
#: lib/functions/KcSeoOptions.php:327
|
404 |
msgid "The name of the product."
|
405 |
msgstr ""
|
406 |
|
407 |
+
#: lib/functions/KcSeoOptions.php:332
|
408 |
+
msgid ""
|
409 |
+
"The URL of a product photo. Pictures clearly showing the product, e.g. "
|
410 |
+
"against a white background, are preferred."
|
411 |
msgstr ""
|
412 |
|
413 |
+
#: lib/functions/KcSeoOptions.php:337
|
414 |
msgid "Product description."
|
415 |
msgstr ""
|
416 |
|
417 |
+
#: lib/functions/KcSeoOptions.php:340
|
418 |
msgid "Brand"
|
419 |
msgstr ""
|
420 |
|
421 |
+
#: lib/functions/KcSeoOptions.php:342
|
422 |
msgid "The brand of the product."
|
423 |
msgstr ""
|
424 |
|
425 |
+
#: lib/functions/KcSeoOptions.php:345
|
426 |
+
msgid "Review rating value"
|
427 |
msgstr ""
|
428 |
|
429 |
+
#: lib/functions/KcSeoOptions.php:349 lib/functions/KcSeoOptions.php:371
|
430 |
msgid "Rating value. (1 , 2.5, 3, 5 etc)"
|
431 |
msgstr ""
|
432 |
|
433 |
+
#: lib/functions/KcSeoOptions.php:352
|
434 |
+
msgid "Review Best rating"
|
435 |
+
msgstr ""
|
436 |
+
|
437 |
+
#: lib/functions/KcSeoOptions.php:358
|
438 |
+
msgid "Review Worst rating"
|
439 |
+
msgstr ""
|
440 |
+
|
441 |
+
#: lib/functions/KcSeoOptions.php:364
|
442 |
+
msgid "Review author"
|
443 |
+
msgstr ""
|
444 |
+
|
445 |
+
#: lib/functions/KcSeoOptions.php:368 lib/functions/KcSeoOptions.php:610
|
446 |
+
msgid "Rating value"
|
447 |
+
msgstr ""
|
448 |
+
|
449 |
+
#: lib/functions/KcSeoOptions.php:374
|
450 |
msgid "Total review count"
|
451 |
msgstr ""
|
452 |
|
453 |
+
#: lib/functions/KcSeoOptions.php:377
|
454 |
+
msgid ""
|
455 |
+
"Review rating value. <span class='required'>This is required if (Rating "
|
456 |
+
"value) is given</span>"
|
457 |
msgstr ""
|
458 |
|
459 |
+
#: lib/functions/KcSeoOptions.php:383
|
460 |
+
msgid ""
|
461 |
+
"The lowest available price, including service charges and fees, of this type "
|
462 |
+
"of ticket."
|
463 |
msgstr ""
|
464 |
|
465 |
+
#: lib/functions/KcSeoOptions.php:386
|
466 |
+
msgid "PriceValidUntil"
|
467 |
msgstr ""
|
468 |
|
469 |
+
#: lib/functions/KcSeoOptions.php:390
|
470 |
+
msgid ""
|
471 |
+
"The date (in ISO 8601 date format) after which the price will no longer be "
|
472 |
+
"available."
|
473 |
+
msgstr ""
|
474 |
+
|
475 |
+
#: lib/functions/KcSeoOptions.php:395
|
476 |
msgid "The 3-letter currency code."
|
477 |
msgstr ""
|
478 |
|
479 |
+
#: lib/functions/KcSeoOptions.php:411
|
480 |
msgid "Select a availability type"
|
481 |
msgstr ""
|
482 |
|
483 |
+
#: lib/functions/KcSeoOptions.php:423
|
484 |
msgid "Select a condition"
|
485 |
msgstr ""
|
486 |
|
487 |
+
#: lib/functions/KcSeoOptions.php:426
|
488 |
msgid "Product URL"
|
489 |
msgstr ""
|
490 |
|
491 |
+
#: lib/functions/KcSeoOptions.php:428
|
492 |
+
msgid ""
|
493 |
+
"A URL to the product web page (that includes the Offer). (Don't use offerURL "
|
494 |
+
"for markup that appears on the product page itself.)"
|
495 |
msgstr ""
|
496 |
|
497 |
+
#: lib/functions/KcSeoOptions.php:434
|
498 |
msgid "Video"
|
499 |
msgstr ""
|
500 |
|
501 |
+
#: lib/functions/KcSeoOptions.php:443
|
502 |
msgid "The title of the video"
|
503 |
msgstr ""
|
504 |
|
505 |
+
#: lib/functions/KcSeoOptions.php:449
|
506 |
msgid "The description of the video"
|
507 |
msgstr ""
|
508 |
|
509 |
+
#: lib/functions/KcSeoOptions.php:456
|
510 |
+
msgid ""
|
511 |
+
"A URL pointing to the video thumbnail image file. Images must be at least "
|
512 |
+
"160x90 pixels and at most 1920x1080 pixels."
|
513 |
msgstr ""
|
514 |
|
515 |
+
#: lib/functions/KcSeoOptions.php:459
|
516 |
msgid "Updated date"
|
517 |
msgstr ""
|
518 |
|
519 |
+
#: lib/functions/KcSeoOptions.php:462
|
520 |
msgid "2015-02-05T08:00:00+08:00"
|
521 |
msgstr ""
|
522 |
|
523 |
+
#: lib/functions/KcSeoOptions.php:465
|
524 |
msgid "Duration"
|
525 |
msgstr ""
|
526 |
|
527 |
+
#: lib/functions/KcSeoOptions.php:467
|
528 |
msgid "The duration of the video in ISO 8601 format.(PT1M33S)"
|
529 |
msgstr ""
|
530 |
|
531 |
+
#: lib/functions/KcSeoOptions.php:473
|
532 |
+
msgid ""
|
533 |
+
"A URL pointing to the actual video media file. This file should be in .mpg, ."
|
534 |
+
"mpeg, .mp4, .m4v, .mov, .wmv, .asf, .avi, .ra, .ram, .rm, .flv, or other "
|
535 |
+
"video file format."
|
536 |
msgstr ""
|
537 |
|
538 |
+
#: lib/functions/KcSeoOptions.php:479
|
539 |
+
msgid ""
|
540 |
+
"A URL pointing to a player for the specific video. Usually this is the "
|
541 |
+
"information in the src element of an < embed> tag.Example: Dailymotion: "
|
542 |
+
"http://www.dailymotion.com/swf/x1o2g."
|
543 |
msgstr ""
|
544 |
|
545 |
+
#: lib/functions/KcSeoOptions.php:482
|
546 |
msgid "Interaction count"
|
547 |
msgstr ""
|
548 |
|
549 |
+
#: lib/functions/KcSeoOptions.php:484
|
550 |
msgid "The number of times the video has been viewed."
|
551 |
msgstr ""
|
552 |
|
553 |
+
#: lib/functions/KcSeoOptions.php:487
|
554 |
msgid "Expires"
|
555 |
msgstr ""
|
556 |
|
557 |
+
#: lib/functions/KcSeoOptions.php:496
|
558 |
msgid "Service"
|
559 |
msgstr ""
|
560 |
|
561 |
+
#: lib/functions/KcSeoOptions.php:505
|
562 |
msgid "The name of the Service."
|
563 |
msgstr ""
|
564 |
|
565 |
+
#: lib/functions/KcSeoOptions.php:508
|
566 |
msgid "Service type"
|
567 |
msgstr ""
|
568 |
|
569 |
+
#: lib/functions/KcSeoOptions.php:511
|
570 |
+
msgid ""
|
571 |
+
"The type of service being offered, e.g. veterans' benefits, emergency "
|
572 |
+
"relief, etc."
|
573 |
msgstr ""
|
574 |
|
575 |
+
#: lib/functions/KcSeoOptions.php:517
|
576 |
+
msgid ""
|
577 |
+
"An additional type for the service, typically used for adding more specific "
|
578 |
+
"types from external vocabularies in microdata syntax."
|
579 |
msgstr ""
|
580 |
|
581 |
+
#: lib/functions/KcSeoOptions.php:520
|
582 |
msgid "Award"
|
583 |
msgstr ""
|
584 |
|
585 |
+
#: lib/functions/KcSeoOptions.php:522
|
586 |
msgid "An award won by or for this service."
|
587 |
msgstr ""
|
588 |
|
589 |
+
#: lib/functions/KcSeoOptions.php:525
|
590 |
msgid "Category"
|
591 |
msgstr ""
|
592 |
|
593 |
+
#: lib/functions/KcSeoOptions.php:527
|
594 |
msgid "A category for the service."
|
595 |
msgstr ""
|
596 |
|
597 |
+
#: lib/functions/KcSeoOptions.php:530
|
598 |
msgid "Provider mobility"
|
599 |
msgstr ""
|
600 |
|
601 |
+
#: lib/functions/KcSeoOptions.php:532
|
602 |
+
msgid ""
|
603 |
+
"Indicates the mobility of a provided service (e.g. 'static', 'dynamic')."
|
604 |
msgstr ""
|
605 |
|
606 |
+
#: lib/functions/KcSeoOptions.php:538
|
607 |
msgid "A short description of the service."
|
608 |
msgstr ""
|
609 |
|
610 |
+
#: lib/functions/KcSeoOptions.php:544
|
611 |
msgid "An image of the service. This should be a URL."
|
612 |
msgstr ""
|
613 |
|
614 |
+
#: lib/functions/KcSeoOptions.php:550
|
615 |
+
msgid ""
|
616 |
+
"Indicates a page (or other CreativeWork) for which this thing is the main "
|
617 |
+
"entity being described."
|
618 |
msgstr ""
|
619 |
|
620 |
+
#: lib/functions/KcSeoOptions.php:556
|
621 |
+
msgid ""
|
622 |
+
"URL of a reference Web page that unambiguously indicates the service's "
|
623 |
+
"identity. E.g. the URL of the service's Wikipedia page, Freebase page, or "
|
624 |
+
"official website."
|
625 |
msgstr ""
|
626 |
|
627 |
+
#: lib/functions/KcSeoOptions.php:562
|
628 |
msgid "URL of the service."
|
629 |
msgstr ""
|
630 |
|
631 |
+
#: lib/functions/KcSeoOptions.php:565
|
632 |
msgid "Alternate name"
|
633 |
msgstr ""
|
634 |
|
635 |
+
#: lib/functions/KcSeoOptions.php:567
|
636 |
msgid "An alias for the service."
|
637 |
msgstr ""
|
638 |
|
639 |
+
#: lib/functions/KcSeoOptions.php:573
|
640 |
msgid "Review"
|
641 |
msgstr ""
|
642 |
|
643 |
+
#: lib/functions/KcSeoOptions.php:579
|
644 |
msgid "Name of the reviewed item"
|
645 |
msgstr ""
|
646 |
|
647 |
+
#: lib/functions/KcSeoOptions.php:582
|
648 |
msgid "The item that is being reviewed."
|
649 |
msgstr ""
|
650 |
|
651 |
+
#: lib/functions/KcSeoOptions.php:585
|
652 |
msgid "Review body"
|
653 |
msgstr ""
|
654 |
|
655 |
+
#: lib/functions/KcSeoOptions.php:588
|
656 |
msgid "The actual body of the review."
|
657 |
msgstr ""
|
658 |
|
659 |
+
#: lib/functions/KcSeoOptions.php:591
|
660 |
msgid "Review name"
|
661 |
msgstr ""
|
662 |
|
663 |
+
#: lib/functions/KcSeoOptions.php:594
|
664 |
msgid "A particular name for the review."
|
665 |
msgstr ""
|
666 |
|
667 |
+
#: lib/functions/KcSeoOptions.php:601
|
668 |
msgid "The author of the review. The reviewer’s name needs to be a valid name."
|
669 |
msgstr ""
|
670 |
|
671 |
+
#: lib/functions/KcSeoOptions.php:604
|
672 |
msgid "Date of Published"
|
673 |
msgstr ""
|
674 |
|
675 |
+
#: lib/functions/KcSeoOptions.php:613 lib/functions/KcSeoOptions.php:704
|
676 |
+
#: lib/functions/KcSeoOptions.php:711
|
|
|
|
|
|
|
677 |
msgid "A numerical quality rating for the item."
|
678 |
msgstr ""
|
679 |
|
680 |
+
#: lib/functions/KcSeoOptions.php:616
|
681 |
msgid "Best rating"
|
682 |
msgstr ""
|
683 |
|
684 |
+
#: lib/functions/KcSeoOptions.php:619
|
685 |
msgid "The highest value allowed in this rating system."
|
686 |
msgstr ""
|
687 |
|
688 |
+
#: lib/functions/KcSeoOptions.php:622
|
689 |
msgid "Worst rating"
|
690 |
msgstr ""
|
691 |
|
692 |
+
#: lib/functions/KcSeoOptions.php:625
|
693 |
+
msgid ""
|
694 |
+
"The lowest value allowed in this rating system. * Required if the rating "
|
695 |
+
"system is not on a 5-point scale. If worstRating is omitted, 1 is assumed."
|
696 |
msgstr ""
|
697 |
|
698 |
+
#: lib/functions/KcSeoOptions.php:628
|
699 |
msgid "Name of the organization"
|
700 |
msgstr ""
|
701 |
|
702 |
+
#: lib/functions/KcSeoOptions.php:630
|
703 |
msgid "The publisher of the review."
|
704 |
msgstr ""
|
705 |
|
706 |
+
#: lib/functions/KcSeoOptions.php:636
|
707 |
msgid "Aggregate Ratings"
|
708 |
msgstr ""
|
709 |
|
710 |
+
#: lib/functions/KcSeoOptions.php:642
|
711 |
msgid "Schema type"
|
712 |
msgstr ""
|
713 |
|
714 |
+
#: lib/functions/KcSeoOptions.php:647
|
715 |
msgid "Use the most appropriate schema type for what is being reviewed."
|
716 |
msgstr ""
|
717 |
|
718 |
+
#: lib/functions/KcSeoOptions.php:650
|
719 |
msgid "Name of the item"
|
720 |
msgstr ""
|
721 |
|
722 |
+
#: lib/functions/KcSeoOptions.php:653
|
723 |
msgid "The item that is being rated."
|
724 |
msgstr ""
|
725 |
|
726 |
+
#: lib/functions/KcSeoOptions.php:666 lib/functions/KcSeoOptions.php:806
|
727 |
+
#: lib/views/schema-options.php:118
|
728 |
msgid "The price range of the business, for example $$$."
|
729 |
msgstr ""
|
730 |
|
731 |
+
#: lib/functions/KcSeoOptions.php:683
|
732 |
msgid "Description for thr review"
|
733 |
msgstr ""
|
734 |
|
735 |
+
#: lib/functions/KcSeoOptions.php:686
|
736 |
msgid "Rating Count"
|
737 |
msgstr ""
|
738 |
|
739 |
+
#: lib/functions/KcSeoOptions.php:690
|
740 |
+
msgid ""
|
741 |
+
"The total number of ratings for the item on your site. <span "
|
742 |
+
"class='required'>* At least one of ratingCount or reviewCount is required.</"
|
743 |
+
"span>"
|
744 |
msgstr ""
|
745 |
|
746 |
+
#: lib/functions/KcSeoOptions.php:693
|
747 |
msgid "Review Count"
|
748 |
msgstr ""
|
749 |
|
750 |
+
#: lib/functions/KcSeoOptions.php:697
|
751 |
+
msgid ""
|
752 |
+
"Specifies the number of people who provided a review with or without an "
|
753 |
+
"accompanying rating. At least one of ratingCount or reviewCount is required."
|
754 |
msgstr ""
|
755 |
|
756 |
+
#: lib/functions/KcSeoOptions.php:700 lib/functions/KcSeoOptions.php:707
|
757 |
msgid "Rating Value"
|
758 |
msgstr ""
|
759 |
|
760 |
+
#: lib/functions/KcSeoOptions.php:714
|
761 |
msgid "Best Rating"
|
762 |
msgstr ""
|
763 |
|
764 |
+
#: lib/functions/KcSeoOptions.php:718
|
765 |
+
msgid ""
|
766 |
+
"The highest value allowed in this rating system. <span class='required'>* "
|
767 |
+
"Required if the rating system is not a 5-point scale.</span> If bestRating "
|
768 |
+
"is omitted, 5 is assumed."
|
769 |
msgstr ""
|
770 |
|
771 |
+
#: lib/functions/KcSeoOptions.php:721
|
772 |
msgid "Worst Rating"
|
773 |
msgstr ""
|
774 |
|
775 |
+
#: lib/functions/KcSeoOptions.php:725
|
776 |
+
msgid ""
|
777 |
+
"The lowest value allowed in this rating system. <span class='required'>* "
|
778 |
+
"Required if the rating system is not a 5-point scale.</span> If worstRating "
|
779 |
+
"is omitted, 1 is assumed."
|
780 |
msgstr ""
|
781 |
|
782 |
+
#: lib/functions/KcSeoOptions.php:731
|
783 |
msgid "Restaurant"
|
784 |
msgstr ""
|
785 |
|
786 |
+
#: lib/functions/KcSeoOptions.php:737
|
787 |
msgid "Name of the Restaurant"
|
788 |
msgstr ""
|
789 |
|
790 |
+
#: lib/functions/KcSeoOptions.php:742
|
791 |
msgid "Description of the Restaurant"
|
792 |
msgstr ""
|
793 |
|
794 |
+
#: lib/functions/KcSeoOptions.php:746
|
795 |
msgid "Opening Hours"
|
796 |
msgstr ""
|
797 |
|
798 |
+
#: lib/functions/KcSeoOptions.php:748
|
799 |
msgid "Mo,Tu,We,Th,Fr,Sa,Su 11:30-23:00"
|
800 |
msgstr ""
|
801 |
|
802 |
+
#: lib/functions/KcSeoOptions.php:751 lib/functions/KcSeoOptions.php:827
|
803 |
+
msgid "Telephone"
|
804 |
+
msgstr ""
|
805 |
+
|
806 |
+
#: lib/functions/KcSeoOptions.php:753
|
807 |
msgid "+155501003333"
|
808 |
msgstr ""
|
809 |
|
810 |
+
#: lib/functions/KcSeoOptions.php:756
|
811 |
msgid "Menu"
|
812 |
msgstr ""
|
813 |
|
814 |
+
#: lib/functions/KcSeoOptions.php:758
|
815 |
msgid "http://example.com/menu"
|
816 |
msgstr ""
|
817 |
|
818 |
+
#: lib/functions/KcSeoOptions.php:766 lib/views/schema-options.php:270
|
819 |
msgid "Address"
|
820 |
msgstr ""
|
821 |
|
822 |
+
#: lib/functions/KcSeoOptions.php:770 lib/functions/KcSeoOptions.php:803
|
823 |
+
#: lib/views/schema-options.php:113
|
824 |
msgid "Price Range"
|
825 |
msgstr ""
|
826 |
|
827 |
+
#: lib/functions/KcSeoOptions.php:772
|
828 |
msgid "The price range of the business, for example $$$"
|
829 |
msgstr ""
|
830 |
|
831 |
+
#: lib/functions/KcSeoOptions.php:775
|
832 |
msgid "Serves Cuisine"
|
833 |
msgstr ""
|
834 |
|
835 |
+
#: lib/functions/KcSeoOptions.php:777 lib/views/schema-options.php:159
|
836 |
msgid "The cuisine of the restaurant."
|
837 |
msgstr ""
|
838 |
|
839 |
+
#: lib/functions/KcSeoOptions.php:783
|
840 |
msgid "Local Business"
|
841 |
msgstr ""
|
842 |
|
843 |
+
#: lib/functions/KcSeoOptions.php:798
|
844 |
msgid "Business Logo"
|
845 |
msgstr ""
|
846 |
|
847 |
+
#: lib/functions/KcSeoOptions.php:809
|
|
|
|
|
|
|
|
|
848 |
msgid "Address locality"
|
849 |
msgstr ""
|
850 |
|
851 |
+
#: lib/functions/KcSeoOptions.php:811
|
852 |
msgid "City (i.e Kansas city)"
|
853 |
msgstr ""
|
854 |
|
855 |
+
#: lib/functions/KcSeoOptions.php:814
|
856 |
msgid "Address region"
|
857 |
msgstr ""
|
858 |
|
859 |
+
#: lib/functions/KcSeoOptions.php:816
|
860 |
msgid "State (i.e. MO)"
|
861 |
msgstr ""
|
862 |
|
863 |
+
#: lib/functions/KcSeoOptions.php:819
|
864 |
msgid "Postal code"
|
865 |
msgstr ""
|
866 |
|
867 |
+
#: lib/functions/KcSeoOptions.php:823
|
868 |
msgid "Street address"
|
869 |
msgstr ""
|
870 |
|
871 |
+
#: lib/functions/KcSeoOptions.php:835
|
|
|
|
|
|
|
|
|
872 |
msgid "Book"
|
873 |
msgstr ""
|
874 |
|
875 |
+
#: lib/functions/KcSeoOptions.php:839
|
876 |
msgid "Course"
|
877 |
msgstr ""
|
878 |
|
879 |
+
#: lib/functions/KcSeoOptions.php:843
|
880 |
msgid "Job Posting"
|
881 |
msgstr ""
|
882 |
|
883 |
+
#: lib/functions/KcSeoOptions.php:847
|
884 |
msgid "Movie"
|
885 |
msgstr ""
|
886 |
|
887 |
+
#: lib/functions/KcSeoOptions.php:859
|
888 |
msgid "TVEpisode"
|
889 |
msgstr ""
|
890 |
|
891 |
+
#: lib/functions/KcSeoOptions.php:1313 lib/functions/KcSeoOptions.php:1331
|
892 |
+
msgid "Facebook"
|
893 |
+
msgstr ""
|
894 |
+
|
895 |
+
#: lib/functions/KcSeoOptions.php:1314 lib/functions/KcSeoOptions.php:1332
|
896 |
+
msgid "Twitter"
|
897 |
+
msgstr ""
|
898 |
+
|
899 |
+
#: lib/functions/KcSeoOptions.php:1315 lib/functions/KcSeoOptions.php:1333
|
900 |
+
msgid "Google+"
|
901 |
+
msgstr ""
|
902 |
+
|
903 |
+
#: lib/functions/KcSeoOptions.php:1316 lib/functions/KcSeoOptions.php:1334
|
904 |
+
msgid "Instagram"
|
905 |
+
msgstr ""
|
906 |
+
|
907 |
+
#: lib/functions/KcSeoOptions.php:1317 lib/functions/KcSeoOptions.php:1335
|
908 |
+
msgid "Youtube"
|
909 |
+
msgstr ""
|
910 |
+
|
911 |
+
#: lib/functions/KcSeoOptions.php:1318 lib/functions/KcSeoOptions.php:1336
|
912 |
+
msgid "LinkedIn"
|
913 |
+
msgstr ""
|
914 |
+
|
915 |
+
#: lib/functions/KcSeoOptions.php:1319 lib/functions/KcSeoOptions.php:1337
|
916 |
+
msgid "Myspace"
|
917 |
+
msgstr ""
|
918 |
+
|
919 |
+
#: lib/functions/KcSeoOptions.php:1320 lib/functions/KcSeoOptions.php:1338
|
920 |
+
msgid "Pinterest"
|
921 |
+
msgstr ""
|
922 |
+
|
923 |
+
#: lib/functions/KcSeoOptions.php:1321 lib/functions/KcSeoOptions.php:1339
|
924 |
+
msgid "SoundCloud"
|
925 |
+
msgstr ""
|
926 |
+
|
927 |
+
#: lib/functions/KcSeoOptions.php:1322 lib/functions/KcSeoOptions.php:1340
|
928 |
+
msgid "Tumblr"
|
929 |
+
msgstr ""
|
930 |
+
|
931 |
+
#: lib/functions/KcSeoOptions.php:1323 lib/functions/KcSeoOptions.php:1341
|
932 |
+
msgid "Wikidata"
|
933 |
+
msgstr ""
|
934 |
+
|
935 |
+
#: lib/models/KcSeoSchemaModel.php:590
|
936 |
+
msgid "Required"
|
937 |
+
msgstr ""
|
938 |
+
|
939 |
+
#: lib/models/KcSeoSchemaModel.php:591
|
940 |
+
msgid "Recommended"
|
941 |
+
msgstr ""
|
942 |
+
|
943 |
+
#: lib/views/schema-options.php:13
|
944 |
+
msgid ""
|
945 |
+
"General settings for WP SEO Structured Data Schema by <a href=\"https://"
|
946 |
+
"wpsemplugins.com/\">WPSEMPlugins.com</a>"
|
947 |
msgstr ""
|
948 |
|
949 |
+
#: lib/views/schema-options.php:35
|
950 |
msgid "Site Type"
|
951 |
msgstr ""
|
952 |
|
953 |
+
#: lib/views/schema-options.php:38
|
954 |
msgid "Select one type"
|
955 |
msgstr ""
|
956 |
|
957 |
+
#: lib/views/schema-options.php:78
|
958 |
msgid "Organization or Business name"
|
959 |
msgstr ""
|
960 |
|
961 |
+
#: lib/views/schema-options.php:85
|
962 |
msgid "Site Image"
|
963 |
msgstr ""
|
964 |
|
965 |
+
#: lib/views/schema-options.php:122
|
966 |
msgid "Site Telephone"
|
967 |
msgstr ""
|
968 |
|
969 |
+
#: lib/views/schema-options.php:127
|
970 |
msgid "The telephone number."
|
971 |
msgstr ""
|
972 |
|
973 |
+
#: lib/views/schema-options.php:131
|
974 |
msgid "Additional Type"
|
975 |
msgstr ""
|
976 |
|
977 |
+
#: lib/views/schema-options.php:138
|
978 |
msgid "Add \"Additional Type\""
|
979 |
msgstr ""
|
980 |
|
981 |
+
#: lib/views/schema-options.php:142
|
982 |
msgid ""
|
983 |
+
"Product Ontology is an extension to schema using WikiPedia definitions that "
|
984 |
+
"enables you to further define a type by adding an \"AdditionalType” "
|
985 |
+
"attribute.Example for a Tailor (which is not available\n"
|
986 |
+
" as a schema “Type”): Pick "
|
987 |
+
"LocalBusiness as a generic Type, then add additional type as follows:"
|
988 |
msgstr ""
|
989 |
|
990 |
+
#: lib/views/schema-options.php:156
|
991 |
msgid "Restaurant Information"
|
992 |
msgstr ""
|
993 |
|
994 |
+
#: lib/views/schema-options.php:167
|
995 |
msgid "Others local business info"
|
996 |
msgstr ""
|
997 |
|
998 |
+
#: lib/views/schema-options.php:177
|
999 |
msgid "Operation Hours"
|
1000 |
msgstr ""
|
1001 |
|
1002 |
+
#: lib/views/schema-options.php:204
|
1003 |
msgid "GeoCoordinates"
|
1004 |
msgstr ""
|
1005 |
|
1006 |
+
#: lib/views/schema-options.php:207
|
1007 |
msgid "Latitude"
|
1008 |
msgstr ""
|
1009 |
|
1010 |
+
#: lib/views/schema-options.php:214
|
1011 |
msgid "Longitude"
|
1012 |
msgstr ""
|
1013 |
|
1014 |
+
#: lib/views/schema-options.php:221
|
1015 |
msgid "Person"
|
1016 |
msgstr ""
|
1017 |
|
1018 |
+
#: lib/views/schema-options.php:231
|
1019 |
msgid "Work For"
|
1020 |
msgstr ""
|
1021 |
|
1022 |
+
#: lib/views/schema-options.php:239
|
1023 |
msgid "Job Title"
|
1024 |
msgstr ""
|
1025 |
|
1026 |
+
#: lib/views/schema-options.php:251
|
1027 |
msgid "Add your personal photo here"
|
1028 |
msgstr ""
|
1029 |
|
1030 |
+
#: lib/views/schema-options.php:262
|
1031 |
msgid "Birth date"
|
1032 |
msgstr ""
|
1033 |
|
1034 |
+
#: lib/views/schema-options.php:273
|
1035 |
msgid "Address Country"
|
1036 |
msgstr ""
|
1037 |
|
1038 |
+
#: lib/views/schema-options.php:288
|
1039 |
msgid "Address Locality"
|
1040 |
msgstr ""
|
1041 |
|
1042 |
+
#: lib/views/schema-options.php:295
|
1043 |
msgid "Address Region"
|
1044 |
msgstr ""
|
1045 |
|
1046 |
+
#: lib/views/schema-options.php:302
|
1047 |
msgid "Postal Code"
|
1048 |
msgstr ""
|
1049 |
|
1050 |
+
#: lib/views/schema-options.php:308
|
1051 |
msgid "Street Address"
|
1052 |
msgstr ""
|
1053 |
|
1054 |
+
#: lib/views/schema-options.php:317
|
1055 |
msgid "Add New Address"
|
1056 |
msgstr ""
|
1057 |
|
1058 |
+
#: lib/views/schema-options.php:324
|
1059 |
msgid "Organization Logo"
|
1060 |
msgstr ""
|
1061 |
|
1062 |
+
#: lib/views/schema-options.php:327 lib/views/schema-options.php:390
|
1063 |
msgid "Social Profile"
|
1064 |
msgstr ""
|
1065 |
|
1066 |
+
#: lib/views/schema-options.php:330
|
1067 |
msgid "Corporate Contacts"
|
1068 |
msgstr ""
|
1069 |
|
1070 |
+
#: lib/views/schema-options.php:336
|
1071 |
msgid "Select Organization Logo"
|
1072 |
msgstr ""
|
1073 |
|
1074 |
+
#: lib/views/schema-options.php:380
|
1075 |
msgid "Company Name"
|
1076 |
msgstr ""
|
1077 |
|
1078 |
+
#: lib/views/schema-options.php:387
|
1079 |
msgid "Social Profiles"
|
1080 |
msgstr ""
|
1081 |
|
1082 |
+
#: lib/views/schema-options.php:416
|
1083 |
msgid "Add Social Profile"
|
1084 |
msgstr ""
|
1085 |
|
1086 |
+
#: lib/views/schema-options.php:424
|
1087 |
msgid "Contacts"
|
1088 |
msgstr ""
|
1089 |
|
1090 |
+
#: lib/views/schema-options.php:443
|
1091 |
msgid "Contact Phone"
|
1092 |
msgstr ""
|
1093 |
|
1094 |
+
#: lib/views/schema-options.php:447
|
1095 |
msgid "Please follow the format below"
|
1096 |
msgstr ""
|
1097 |
|
1098 |
+
#: lib/views/schema-options.php:458
|
1099 |
msgid "Contact Email"
|
1100 |
msgstr ""
|
1101 |
|
1102 |
+
#: lib/views/schema-options.php:465
|
1103 |
msgid "Contact Option"
|
1104 |
msgstr ""
|
1105 |
|
1106 |
+
#: lib/views/schema-options.php:469
|
1107 |
msgid "Select an option"
|
1108 |
msgstr ""
|
1109 |
|
1110 |
+
#: lib/views/schema-options.php:472
|
1111 |
msgid "TollFree"
|
1112 |
msgstr ""
|
1113 |
|
1114 |
+
#: lib/views/schema-options.php:476
|
1115 |
msgid "HearingImpairedSupported"
|
1116 |
msgstr ""
|
1117 |
|
1118 |
+
#: lib/views/schema-options.php:482
|
1119 |
msgid "Area Served"
|
1120 |
msgstr ""
|
1121 |
|
1122 |
+
#: lib/views/schema-options.php:500
|
1123 |
msgid "Available language"
|
1124 |
msgstr ""
|
1125 |
|
1126 |
+
#: lib/views/schema-options.php:518
|
1127 |
msgid "Site Schema"
|
1128 |
msgstr ""
|
1129 |
|
1130 |
+
#: lib/views/schema-options.php:521
|
1131 |
msgid "Disable Site Schema"
|
1132 |
msgstr ""
|
1133 |
|
1134 |
+
#: lib/views/schema-options.php:529
|
1135 |
msgid "Enable Site link Search Box"
|
1136 |
msgstr ""
|
1137 |
|
1138 |
+
#: lib/views/schema-options.php:534
|
1139 |
msgid "Note: Preferred Name markup may no longer be supported by Google"
|
1140 |
msgstr ""
|
1141 |
|
1142 |
+
#: lib/views/schema-options.php:538
|
1143 |
msgid "Site Name:"
|
1144 |
msgstr ""
|
1145 |
|
1146 |
+
#: lib/views/schema-options.php:545
|
1147 |
msgid "Site Alternative Name:"
|
1148 |
msgstr ""
|
1149 |
|
1150 |
+
#: lib/views/schema-options.php:552
|
1151 |
msgid "Site Url:"
|
1152 |
msgstr ""
|
1153 |
|
1154 |
+
#: lib/views/schema-options.php:560 lib/views/settings.php:105
|
1155 |
msgid "Save Changes"
|
1156 |
msgstr ""
|
1157 |
|
1158 |
+
#: lib/views/settings.php:6
|
1159 |
msgid "Schema Settings"
|
1160 |
msgstr ""
|
1161 |
|
1162 |
+
#: lib/views/settings.php:13
|
1163 |
msgid "Business / Org Schema"
|
1164 |
msgstr ""
|
1165 |
|
1166 |
+
#: lib/views/settings.php:17
|
1167 |
msgid ""
|
1168 |
"Home page\n"
|
1169 |
" only"
|
1170 |
msgstr ""
|
1171 |
|
1172 |
+
#: lib/views/settings.php:21
|
1173 |
msgid ""
|
1174 |
"Sitewide (Apply General Settings schema\n"
|
1175 |
" sitewide)"
|
1176 |
msgstr ""
|
1177 |
|
1178 |
+
#: lib/views/settings.php:26
|
1179 |
msgid "Turn off (Turn off global schema)"
|
1180 |
msgstr ""
|
1181 |
|
1182 |
+
#: lib/views/settings.php:31
|
1183 |
+
msgid "Post Type"
|
1184 |
+
msgstr ""
|
1185 |
+
|
1186 |
+
#: lib/views/settings.php:45
|
1187 |
+
msgid "Site Navigation Element Schema"
|
1188 |
+
msgstr ""
|
1189 |
+
|
1190 |
+
#: lib/views/settings.php:49 lib/views/settings.php:74
|
1191 |
+
msgid "Publisher Name"
|
1192 |
+
msgstr ""
|
1193 |
+
|
1194 |
+
#: lib/views/settings.php:54
|
1195 |
+
msgid "Select one menu"
|
1196 |
+
msgstr ""
|
1197 |
+
|
1198 |
+
#: lib/views/settings.php:65
|
1199 |
+
msgid ""
|
1200 |
+
"Please deselect the navigation menu if you want to deactivate site "
|
1201 |
+
"navigation\n"
|
1202 |
+
" schema."
|
1203 |
+
msgstr ""
|
1204 |
+
|
1205 |
+
#: lib/views/settings.php:70
|
1206 |
+
msgid "Publisher Information"
|
1207 |
+
msgstr ""
|
1208 |
+
|
1209 |
+
#: lib/views/settings.php:90
|
1210 |
+
msgid "System Settings"
|
1211 |
+
msgstr ""
|
1212 |
+
|
1213 |
+
#: lib/views/settings.php:93
|
1214 |
msgid "Delete all data"
|
1215 |
msgstr ""
|
1216 |
|
1217 |
+
#: lib/views/settings.php:98
|
1218 |
msgid "Enable"
|
1219 |
msgstr ""
|
1220 |
|
1221 |
+
#: lib/views/settings.php:99
|
1222 |
msgid ""
|
1223 |
+
"This will delete all schema created and applied by this plugin when plugin "
|
1224 |
+
"is\n"
|
1225 |
" deleted."
|
1226 |
msgstr ""
|
1227 |
+
|
1228 |
+
#. Plugin URI of the plugin/theme
|
1229 |
+
#. Author URI of the plugin/theme
|
1230 |
+
msgid "https://wpsemplugins.com/"
|
1231 |
+
msgstr ""
|
1232 |
+
|
1233 |
+
#. Description of the plugin/theme
|
1234 |
+
msgid ""
|
1235 |
+
"Comprehensive JSON-LD based Structured Data solution for WordPress for "
|
1236 |
+
"adding schema for organizations, businesses, blog posts, ratings & more."
|
1237 |
+
msgstr ""
|
1238 |
+
|
1239 |
+
#. Author of the plugin/theme
|
1240 |
+
msgid "WPSEMPlugins"
|
1241 |
+
msgstr ""
|
lib/classes/KcSeoHelper.php
CHANGED
@@ -157,8 +157,7 @@ if (!class_exists('KcSeoSettings')):
|
|
157 |
|
158 |
|
159 |
if (!empty($ids)) {
|
160 |
-
$
|
161 |
-
$schemaFields = $schemaModel->schemaTypes();
|
162 |
foreach ($ids as $id) {
|
163 |
foreach ($schemaFields as $schemaID => $schema) {
|
164 |
$schemaMetaId = $KcSeoWPSchema->KcSeoPrefix . $schemaID;
|
@@ -202,6 +201,7 @@ if (!class_exists('KcSeoSettings')):
|
|
202 |
<li><?php _e("Recipe", "wp-seo-structured-data-schema") ?></li>
|
203 |
<li><?php _e("TV Episode", "wp-seo-structured-data-schema") ?></li>
|
204 |
<li><?php _e("QAPage", "wp-seo-structured-data-schema") ?></li>
|
|
|
205 |
</ol>
|
206 |
</li>
|
207 |
</ol>
|
157 |
|
158 |
|
159 |
if (!empty($ids)) {
|
160 |
+
$schemaFields = KcSeoOptions::getSchemaTypes();
|
|
|
161 |
foreach ($ids as $id) {
|
162 |
foreach ($schemaFields as $schemaID => $schema) {
|
163 |
$schemaMetaId = $KcSeoWPSchema->KcSeoPrefix . $schemaID;
|
201 |
<li><?php _e("Recipe", "wp-seo-structured-data-schema") ?></li>
|
202 |
<li><?php _e("TV Episode", "wp-seo-structured-data-schema") ?></li>
|
203 |
<li><?php _e("QAPage", "wp-seo-structured-data-schema") ?></li>
|
204 |
+
<li><?php _e("Item List", "wp-seo-structured-data-schema") ?></li>
|
205 |
</ol>
|
206 |
</li>
|
207 |
</ol>
|
lib/classes/KcSeoInit.php
CHANGED
@@ -1,233 +1,222 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
if (!class_exists('KcSeoInit')):
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
|
|
|
|
22 |
// register_deactivation_hook(KCSEO_WP_SCHEMA_PLUGIN_ACTIVE_FILE_NAME, array($this, 'uninstall'));
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
function activePlugin()
|
221 |
-
{
|
222 |
-
$this->updateVariableAndFixIssue();
|
223 |
-
}
|
224 |
-
|
225 |
-
function updateVariableAndFixIssue()
|
226 |
-
{
|
227 |
-
global $KcSeoWPSchema;
|
228 |
-
$KcSeoWPSchema->fix1_2DataMigration();
|
229 |
-
update_option($KcSeoWPSchema->options['installed_version'], $KcSeoWPSchema->options['version']);
|
230 |
-
}
|
231 |
-
|
232 |
-
}
|
233 |
endif;
|
1 |
<?php
|
2 |
|
3 |
+
if ( ! class_exists( 'KcSeoInit' ) ):
|
4 |
+
|
5 |
+
class KcSeoInit {
|
6 |
+
protected $version;
|
7 |
+
|
8 |
+
function __construct() {
|
9 |
+
global $KcSeoWPSchema;
|
10 |
+
$this->version = ( defined( 'WP_DEBUG' ) && WP_DEBUG ) ? time() : $KcSeoWPSchema->options['version'];
|
11 |
+
add_action( 'init', array( $this, 'kcSeoScript' ) );
|
12 |
+
add_action( 'admin_menu', array( $this, 'kcSeo_Wp_Schema_menu' ) );
|
13 |
+
add_action( 'plugins_loaded', array( $this, 'kcSeo_pluginInit' ) );
|
14 |
+
add_action( 'wp_ajax_kcSeoWpSchemaSettings', array( $this, 'kcSeoWpSchemaSettings' ) );
|
15 |
+
add_action( 'wp_ajax_kcSeoMainSettings_action', array( $this, 'kcSeoMainSettings_action' ) );
|
16 |
+
add_action( 'wp_ajax_newSocial', array( $this, 'newSocial' ) );
|
17 |
+
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
|
18 |
+
|
19 |
+
// for MU Site
|
20 |
+
add_action( 'activated_plugin', array( $this, 'update_queue' ), 10, 2 );
|
21 |
+
add_action( 'deactivated_plugin', array( $this, 'update_queue' ), 10, 2 );
|
22 |
+
|
23 |
+
register_activation_hook( KCSEO_WP_SCHEMA_PLUGIN_ACTIVE_FILE_NAME, array( $this, 'activePlugin' ) );
|
24 |
// register_deactivation_hook(KCSEO_WP_SCHEMA_PLUGIN_ACTIVE_FILE_NAME, array($this, 'uninstall'));
|
25 |
+
// Uninstall hook
|
26 |
+
|
27 |
+
add_filter( 'plugin_action_links_' . KCSEO_WP_SCHEMA_PLUGIN_ACTIVE_FILE_NAME,
|
28 |
+
array( $this, 'schema_marketing' ) );
|
29 |
+
|
30 |
+
}
|
31 |
+
|
32 |
+
function schema_marketing( $links ) {
|
33 |
+
$links[] = '<a target="_blank" href="' . esc_url( 'https://wpsemplugins.com/documentation/' ) . '">' . __( "Documentation", "wp-seo-structured-data-schema" ) . '</a>';
|
34 |
+
$links[] = '<a target="_blank" href="' . esc_url( 'https://wpsemplugins.com/downloads/wordpress-schema-plugin/' ) . '">' . __( "Get Pro", "wp-seo-structured-data-schema" ) . '</a>';
|
35 |
+
|
36 |
+
return $links;
|
37 |
+
}
|
38 |
+
|
39 |
+
|
40 |
+
function update_queue( $plugin, $network_wide = null ) {
|
41 |
+
if ( ! $network_wide ) {
|
42 |
+
return;
|
43 |
+
}
|
44 |
+
list( $action ) = explode( '_', current_filter(), 2 );
|
45 |
+
|
46 |
+
$action = str_replace( 'activated', 'activate', $action );
|
47 |
+
$queue = get_site_option( "network_{$action}_queue", array() );
|
48 |
+
|
49 |
+
$queue[ $plugin ] = ( has_filter( $action . '_' . $plugin ) || has_filter( $action . '_plugin' ) );
|
50 |
+
update_site_option( "network_{$action}_queue", $queue );
|
51 |
+
}
|
52 |
+
|
53 |
+
function admin_enqueue_scripts() {
|
54 |
+
global $pagenow;
|
55 |
+
// validate page
|
56 |
+
$page = isset( $_REQUEST['page'] ) ? $_REQUEST['page'] : null;
|
57 |
+
if ( $pagenow == 'admin.php' && ( $page == 'wp-seo-schema' || $page == 'wp-seo-schema-settings' ) ) {
|
58 |
+
// scripts
|
59 |
+
wp_enqueue_media();
|
60 |
+
wp_enqueue_script( array(
|
61 |
+
'jquery',
|
62 |
+
'kcseo-datepicker',
|
63 |
+
'kcseo-select2-js',
|
64 |
+
'kcseo-tooltip-js',
|
65 |
+
'kcseo-admin-js',
|
66 |
+
) );
|
67 |
+
|
68 |
+
// styles
|
69 |
+
wp_enqueue_style( array(
|
70 |
+
'kcseo-datepicker',
|
71 |
+
'kcseo-select2-css',
|
72 |
+
'kcseo-tooltip-css',
|
73 |
+
'kcseo-admin-css',
|
74 |
+
) );
|
75 |
+
}
|
76 |
+
}
|
77 |
+
|
78 |
+
function kcSeoScript() {
|
79 |
+
global $KcSeoWPSchema;
|
80 |
+
// register team scripts and styles
|
81 |
+
$scripts = array();
|
82 |
+
$styles = array();
|
83 |
+
if ( is_admin() ) {
|
84 |
+
|
85 |
+
|
86 |
+
$scripts[] = array(
|
87 |
+
'handle' => 'kcseo-select2-js',
|
88 |
+
'src' => $KcSeoWPSchema->assetsUrl . 'js/select2.min.js',
|
89 |
+
'deps' => array( 'jquery' ),
|
90 |
+
'footer' => true
|
91 |
+
);
|
92 |
+
$scripts[] = array(
|
93 |
+
'handle' => 'kcseo-tooltip-js',
|
94 |
+
'src' => $KcSeoWPSchema->assetsUrl . 'js/jquery.qtip.js',
|
95 |
+
'deps' => array( 'jquery' ),
|
96 |
+
'footer' => true
|
97 |
+
);
|
98 |
+
|
99 |
+
$scripts[] = array(
|
100 |
+
'handle' => 'kcseo-datepicker',
|
101 |
+
'src' => $KcSeoWPSchema->assetsUrl . 'vendor/bootstrap-datepicker/bootstrap-datepicker.min.js',
|
102 |
+
'deps' => array( 'jquery' ),
|
103 |
+
'footer' => false
|
104 |
+
);
|
105 |
+
$scripts[] = array(
|
106 |
+
'handle' => 'kcseo-admin-js',
|
107 |
+
'src' => $KcSeoWPSchema->assetsUrl . 'js/admin.js',
|
108 |
+
'deps' => array( 'jquery' ),
|
109 |
+
'footer' => true
|
110 |
+
);
|
111 |
+
$styles['kcseo-datepicker'] = $KcSeoWPSchema->assetsUrl . 'vendor/bootstrap-datepicker/bootstrap-datepicker3.standalone.min.css';
|
112 |
+
$styles['kcseo-select2-css'] = $KcSeoWPSchema->assetsUrl . 'css/select2.min.css';
|
113 |
+
$styles['kcseo-tooltip-css'] = $KcSeoWPSchema->assetsUrl . 'css/jquery.qtip.css';
|
114 |
+
$styles['kcseo-admin-css'] = $KcSeoWPSchema->assetsUrl . 'css/admin.css';
|
115 |
+
}
|
116 |
+
foreach ( $scripts as $script ) {
|
117 |
+
wp_register_script( $script['handle'], $script['src'], $script['deps'], $this->version, $script['footer'] );
|
118 |
+
}
|
119 |
+
foreach ( $styles as $k => $v ) {
|
120 |
+
wp_register_style( $k, $v, false, $this->version );
|
121 |
+
}
|
122 |
+
}
|
123 |
+
|
124 |
+
function newSocial() {
|
125 |
+
$schemaModel = new KcSeoSchemaModel;
|
126 |
+
$id = ( $_REQUEST['id'] ? $_REQUEST['id'] + 1 : 0 );
|
127 |
+
$html = null;
|
128 |
+
$html = "<div class='sfield'>";
|
129 |
+
$html .= "<select name='social[$id][id]'>";
|
130 |
+
foreach ( KcSeoOptions::getSocialList() as $skey => $social ) {
|
131 |
+
$html .= "<option value='$skey'>$social</option>";
|
132 |
+
}
|
133 |
+
$html .= "</select>";
|
134 |
+
$html .= "<input type='text' name='social[$id][link]'>";
|
135 |
+
$html .= '<span class="dashicons dashicons-trash social-remove"></span>';
|
136 |
+
$html .= "</div>";
|
137 |
+
|
138 |
+
|
139 |
+
wp_send_json( array( 'data' => $html ) );
|
140 |
+
die();
|
141 |
+
}
|
142 |
+
|
143 |
+
function kcSeoWpSchemaSettings() {
|
144 |
+
global $KcSeoWPSchema;
|
145 |
+
$error = true;
|
146 |
+
$msg = null;
|
147 |
+
if ( $KcSeoWPSchema->verifyNonce() ) {
|
148 |
+
unset( $_REQUEST['action'] );
|
149 |
+
update_option( $KcSeoWPSchema->options['settings'], $_REQUEST );
|
150 |
+
$error = false;
|
151 |
+
$msg = __( 'Settings successfully updated', KCSEO_WP_SCHEMA_SLUG );
|
152 |
+
} else {
|
153 |
+
$msg = __( 'Security Error !!', KCSEO_WP_SCHEMA_SLUG );
|
154 |
+
}
|
155 |
+
$response = array(
|
156 |
+
'error' => $error,
|
157 |
+
'msg' => $msg
|
158 |
+
);
|
159 |
+
wp_send_json( $response );
|
160 |
+
die();
|
161 |
+
}
|
162 |
+
|
163 |
+
function kcSeoMainSettings_action() {
|
164 |
+
global $KcSeoWPSchema;
|
165 |
+
$error = true;
|
166 |
+
$msg = null;
|
167 |
+
if ( $KcSeoWPSchema->verifyNonce() ) {
|
168 |
+
unset( $_REQUEST['action'] );
|
169 |
+
unset( $_REQUEST['_kcseo_nonce'] );
|
170 |
+
unset( $_REQUEST['_wp_http_referer'] );
|
171 |
+
update_option( $KcSeoWPSchema->options['main_settings'], $_REQUEST );
|
172 |
+
$error = false;
|
173 |
+
$msg = __( 'Settings successfully updated', KCSEO_WP_SCHEMA_SLUG );
|
174 |
+
} else {
|
175 |
+
$msg = __( 'Security Error !!', KCSEO_WP_SCHEMA_SLUG );
|
176 |
+
}
|
177 |
+
$response = array(
|
178 |
+
'error' => $error,
|
179 |
+
'msg' => $msg
|
180 |
+
);
|
181 |
+
wp_send_json( $response );
|
182 |
+
die();
|
183 |
+
}
|
184 |
+
|
185 |
+
function wp_schema_page() {
|
186 |
+
global $KcSeoWPSchema;
|
187 |
+
$KcSeoWPSchema->render( 'schema-options' );
|
188 |
+
}
|
189 |
+
|
190 |
+
function wp_schema_setting_page() {
|
191 |
+
global $KcSeoWPSchema;
|
192 |
+
$KcSeoWPSchema->render( 'settings' );
|
193 |
+
}
|
194 |
+
|
195 |
+
function kcSeo_Wp_Schema_menu() {
|
196 |
+
global $KcSeoWPSchema;
|
197 |
+
add_menu_page( __( 'WP SEO Structured Data Schema', "wp-seo-structured-data-schema" ), __( 'WP SEO Schema', "wp-seo-structured-data-schema" ), 'manage_options', 'wp-seo-schema',
|
198 |
+
array( $this, 'wp_schema_page' ), $KcSeoWPSchema->assetsUrl . 'images/wp-seo-schema.png' );
|
199 |
+
add_submenu_page( 'wp-seo-schema', __( 'WP SEO Schema settings', "wp-seo-structured-data-schema" ), __( 'Settings', "wp-seo-structured-data-schema" ), 'manage_options',
|
200 |
+
'wp-seo-schema-settings',
|
201 |
+
array( $this, 'wp_schema_setting_page' ) );
|
202 |
+
|
203 |
+
}
|
204 |
+
|
205 |
+
|
206 |
+
function kcSeo_pluginInit() {
|
207 |
+
load_plugin_textdomain( KCSEO_WP_SCHEMA_SLUG, false, KCSEO_WP_SCHEMA_LANGUAGE_PATH );
|
208 |
+
$this->updateVariableAndFixIssue();
|
209 |
+
}
|
210 |
+
|
211 |
+
function activePlugin() {
|
212 |
+
$this->updateVariableAndFixIssue();
|
213 |
+
}
|
214 |
+
|
215 |
+
function updateVariableAndFixIssue() {
|
216 |
+
global $KcSeoWPSchema;
|
217 |
+
$KcSeoWPSchema->fix1_2DataMigration();
|
218 |
+
update_option( $KcSeoWPSchema->options['installed_version'], $KcSeoWPSchema->options['version'] );
|
219 |
+
}
|
220 |
+
|
221 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
222 |
endif;
|
lib/classes/KcSeoMetaData.php
CHANGED
@@ -1,134 +1,154 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
if (!class_exists('KcSeoMetaData')):
|
4 |
|
5 |
-
|
6 |
-
{
|
7 |
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
|
|
|
|
|
|
|
|
19 |
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
|
35 |
-
|
36 |
-
|
37 |
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
|
52 |
-
|
53 |
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
|
|
|
|
|
|
|
|
|
|
96 |
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
|
|
|
|
|
|
|
|
102 |
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
|
|
|
|
|
|
|
|
109 |
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
|
|
|
|
|
|
|
|
131 |
|
132 |
-
|
133 |
|
134 |
endif;
|
1 |
<?php
|
2 |
|
3 |
+
if ( ! class_exists( 'KcSeoMetaData' ) ):
|
4 |
|
5 |
+
class KcSeoMetaData {
|
|
|
6 |
|
7 |
+
function __construct() {
|
8 |
+
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
|
9 |
+
add_action( 'save_post', array( $this, 'save_KcSeo_schema_data' ), 10, 3 );
|
10 |
+
}
|
11 |
|
12 |
+
function admin_enqueue_scripts() {
|
13 |
+
global $pagenow, $typenow, $KcSeoWPSchema;
|
14 |
+
// validate page
|
15 |
+
$pt = $KcSeoWPSchema->kcSeoPostTypes();
|
16 |
+
if ( ! in_array( $pagenow, array( 'post.php', 'post-new.php' ) ) ) {
|
17 |
+
return;
|
18 |
+
}
|
19 |
+
if ( ! in_array( $typenow, $pt ) ) {
|
20 |
+
return;
|
21 |
+
}
|
22 |
|
23 |
+
// scripts
|
24 |
+
wp_enqueue_script( array(
|
25 |
+
'jquery',
|
26 |
+
'kcseo-datepicker',
|
27 |
+
'kcseo-select2-js',
|
28 |
+
'kcseo-admin-js',
|
29 |
+
) );
|
30 |
|
31 |
+
// styles
|
32 |
+
wp_enqueue_style( array(
|
33 |
+
'kcseo-datepicker',
|
34 |
+
'kcseo-select2-css',
|
35 |
+
'kcseo-admin-css',
|
36 |
+
) );
|
37 |
|
38 |
+
add_action( 'admin_head', array( $this, 'admin_head' ) );
|
39 |
+
}
|
40 |
|
41 |
+
function admin_head() {
|
42 |
+
global $KcSeoWPSchema;
|
43 |
+
$pt = $KcSeoWPSchema->kcSeoPostTypes();
|
44 |
+
foreach ( $pt as $postType ) {
|
45 |
+
add_meta_box(
|
46 |
+
'kcseo-wordpres-seo-structured-data-schema-meta-box',
|
47 |
+
__( 'WP SEO Structured Data Schema by <a href="https://wpsemplugins.com/">WPSEMPlugins.com</a>', KCSEO_WP_SCHEMA_SLUG ),
|
48 |
+
array( $this, 'meta_box_wp_schema' ),
|
49 |
+
$postType,
|
50 |
+
'normal',
|
51 |
+
'high'
|
52 |
+
);
|
53 |
+
}
|
54 |
|
55 |
+
}
|
56 |
|
57 |
+
function meta_box_wp_schema( $post ) {
|
58 |
+
global $KcSeoWPSchema;
|
59 |
+
wp_nonce_field( $KcSeoWPSchema->nonceText(), '_kcseo_nonce' );
|
60 |
+
$_kcseo_ative_tab = get_post_meta( $post->ID, '_kcseo_ative_tab', true );
|
61 |
+
$schemas = new KcSeoSchemaModel();
|
62 |
+
$html = null;
|
63 |
+
$html .= "<div class='schema-tips'>";
|
64 |
+
$html .= "<p><span>Tip:</span> " . __( "For more detailed information on how to configure this plugin, please visit:", "wp-seo-structured-data-schema" ) . " <a href='https://wpsemplugins.com/wordpress-seo-structured-data-schema-plugin/'>https://wpsemplugins.com/wordpress-seo-structured-data-schema-plugin/</a></p>";
|
65 |
+
$html .= "<p><span>Tip:</span> " . __( "Once you save these structured data schema settings, validate this page url here:", "wp-seo-structured-data-schema" ) . " <a href='https://developers.google.com/structured-data/testing-tool/'>https://developers.google.com/structured-data/testing-tool/</a></p>";
|
66 |
+
$html .= "</div>";
|
67 |
+
$html .= "<div class='schema-holder'>";
|
68 |
+
$html .= '<div id="meta-tab-holder" class="rt-tab-container">';
|
69 |
+
$htmlMenu = null;
|
70 |
+
$htmlCont = null;
|
71 |
+
$htmlMenu .= "<ul class='rt-tab-nav'>";
|
72 |
+
$schemaFields = KcSeoOptions::getSchemaTypes();
|
73 |
+
$i = 0;
|
74 |
+
foreach ( $schemaFields as $schemaID => $schema ) {
|
75 |
+
$tabId = $KcSeoWPSchema->KcSeoPrefix . $schemaID;
|
76 |
+
$activeClass = ( ( ! $_kcseo_ative_tab && $i === 0 ) || $tabId === $_kcseo_ative_tab ) ? ' active' : null;
|
77 |
+
$i ++;
|
78 |
+
$htmlMenu .= '<li data-id="' . $tabId . '" class="' . $activeClass . '"><a href="#' . $tabId . '">' . $schema['title'] . '</a></li>';
|
79 |
+
$htmlCont .= "<div id='{$tabId}' class='rt-tab-content{$activeClass}'>";
|
80 |
+
$htmlCont .= "<div class='kc-top-toolbar'><span class='disabled button button-primary'>" . __( "Auto Fill", "wp-seo-structured-data-schema-pro" ) . "</span><span class='kcseo-pro-label'>" . __( "PRO", "wp-seo-structured-data-schema-pro" ) . "</span></div>";
|
81 |
+
$metaData = get_post_meta( $post->ID, $tabId, true );
|
82 |
+
$metaData = ( is_array( $metaData ) ? $metaData : array() );
|
83 |
+
if ( ! empty( $schema['fields'] ) ) {
|
84 |
+
foreach ( $schema['fields'] as $fieldId => $data ) {
|
85 |
+
$data['fieldId'] = $fieldId;
|
86 |
+
$data['id'] = $tabId . "_" . $fieldId;
|
87 |
+
$data['name'] = $tabId . "[{$fieldId}]";
|
88 |
+
$data['value'] = ( ! empty( $metaData[ $fieldId ] ) ? $metaData[ $fieldId ] : null );
|
89 |
+
$htmlCont .= $schemas->get_field( $data );
|
90 |
+
}
|
91 |
+
}
|
92 |
+
if ( ! empty( $schema['pro'] ) && $schema['pro'] ) {
|
93 |
+
$htmlCont .= "<div class='kcseo-pro-feature'>" . __( "This is a Pro version feature.", "wp-seo-structured-data-schema-pro" ) . "<a href='https://wpsemplugins.com/downloads/wordpress-schema-plugin/' target='_blank'>(more info)</a></div>";
|
94 |
+
}
|
95 |
+
$htmlCont .= "</div>";
|
96 |
+
}
|
97 |
+
$htmlMenu .= "</ul>";
|
98 |
+
$html .= $htmlMenu . $htmlCont;
|
99 |
+
$html .= '<input type="hidden" id="_kcseo_ative_tab" name="_kcseo_ative_tab" value="' . $_kcseo_ative_tab . '" />';
|
100 |
+
$html .= "</div>";
|
101 |
+
$html .= "</div>";
|
102 |
+
echo $html;
|
103 |
+
}
|
104 |
|
105 |
+
function save_KcSeo_schema_data( $post_id, $post, $update ) {
|
106 |
+
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
|
107 |
+
return $post_id;
|
108 |
+
}
|
109 |
+
global $KcSeoWPSchema;
|
110 |
+
$nonce = ! empty( $_REQUEST['_kcseo_nonce'] ) ? $_REQUEST['_kcseo_nonce'] : null;
|
111 |
+
if ( ! wp_verify_nonce( $nonce, $KcSeoWPSchema->nonceText() ) ) {
|
112 |
+
return $post_id;
|
113 |
+
}
|
114 |
|
115 |
+
// Check permissions
|
116 |
+
if ( ! empty( $_GET['post_type'] ) ) {
|
117 |
+
if ( ! current_user_can( 'edit_' . $_GET['post_type'], $post_id ) ) {
|
118 |
+
return $post_id;
|
119 |
+
}
|
120 |
+
}
|
121 |
+
$pt = $KcSeoWPSchema->kcSeoPostTypes();
|
122 |
+
if ( ! in_array( $post->post_type, $pt ) ) {
|
123 |
+
return $post_id;
|
124 |
+
}
|
125 |
|
126 |
+
$meta = array();
|
127 |
+
$schemaModel = new KcSeoSchemaModel;
|
128 |
+
$schemaFields = KcSeoOptions::getSchemaTypes();
|
129 |
+
foreach ( $schemaFields as $schemaID => $schema ) {
|
130 |
+
$schemaMetaId = $KcSeoWPSchema->KcSeoPrefix . $schemaID;
|
131 |
+
$data = array();
|
132 |
+
if ( ! empty( $schema['fields'] ) ) {
|
133 |
+
foreach ( $schema['fields'] as $fieldId => $fieldData ) {
|
134 |
+
$value = ( ! empty( $_REQUEST[ $schemaMetaId ][ $fieldId ] ) ? $_REQUEST[ $schemaMetaId ][ $fieldId ] : null );
|
135 |
+
$value = $KcSeoWPSchema->sanitize( $fieldData, $value );
|
136 |
+
$data[ $fieldId ] = $value;
|
137 |
+
}
|
138 |
+
}
|
139 |
+
$meta[ $schemaMetaId ] = $data;
|
140 |
+
}
|
141 |
+
/* _kcseo_ative_tab */
|
142 |
+
if ( isset( $_POST['_kcseo_ative_tab'] ) ) {
|
143 |
+
$meta['_kcseo_ative_tab'] = sanitize_text_field( $_POST['_kcseo_ative_tab'] );
|
144 |
+
}
|
145 |
+
if ( count( $meta ) > 0 ) {
|
146 |
+
foreach ( $meta as $mKey => $mValue ) {
|
147 |
+
update_post_meta( $post_id, $mKey, $mValue );
|
148 |
+
}
|
149 |
+
}
|
150 |
+
}
|
151 |
|
152 |
+
}
|
153 |
|
154 |
endif;
|
lib/classes/KcSeoOutput.php
CHANGED
@@ -5,9 +5,10 @@ if (!class_exists('KcSeoOutput')):
|
|
5 |
class KcSeoOutput
|
6 |
{
|
7 |
function __construct() {
|
8 |
-
|
9 |
-
|
10 |
-
|
|
|
11 |
}
|
12 |
|
13 |
private function is_premium() {
|
@@ -204,7 +205,7 @@ if (!class_exists('KcSeoOutput')):
|
|
204 |
|
205 |
if (is_single() || is_page()) {
|
206 |
$post = get_queried_object();
|
207 |
-
foreach (
|
208 |
$schemaMetaId = $KcSeoWPSchema->KcSeoPrefix . $schemaID;
|
209 |
$metaData = get_post_meta($post->ID, $schemaMetaId, true);
|
210 |
$metaData = (is_array($metaData) ? $metaData : array());
|
5 |
class KcSeoOutput
|
6 |
{
|
7 |
function __construct() {
|
8 |
+
add_action('wp_footer', array($this, 'footer'), 99);
|
9 |
+
add_action('amp_post_template_footer', array($this, 'footer'), 999); // AMP support
|
10 |
+
add_action('kcseo_footer', array($this, 'debug_mark'), 2);
|
11 |
+
add_action('kcseo_footer', array($this, 'load_schema'), 3);
|
12 |
}
|
13 |
|
14 |
private function is_premium() {
|
205 |
|
206 |
if (is_single() || is_page()) {
|
207 |
$post = get_queried_object();
|
208 |
+
foreach (KcSeoOptions::getSchemaTypes() as $schemaID => $schema) {
|
209 |
$schemaMetaId = $KcSeoWPSchema->KcSeoPrefix . $schemaID;
|
210 |
$metaData = get_post_meta($post->ID, $schemaMetaId, true);
|
211 |
$metaData = (is_array($metaData) ? $metaData : array());
|
lib/functions/KcSeoOptions.php
ADDED
@@ -0,0 +1,1347 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class KcSeoOptions
|
4 |
+
{
|
5 |
+
|
6 |
+
static function getSchemaTypes() {
|
7 |
+
$schemas = array(
|
8 |
+
'article' => array(
|
9 |
+
'pro' => false,
|
10 |
+
'title' => __("Article", "wp-seo-structured-data-schema"),
|
11 |
+
'fields' => array(
|
12 |
+
'active' => array(
|
13 |
+
'type' => 'checkbox'
|
14 |
+
),
|
15 |
+
'headline' => array(
|
16 |
+
'title' => __('Headline', "wp-seo-structured-data-schema"),
|
17 |
+
'type' => 'text',
|
18 |
+
'desc' => __('Article title', "wp-seo-structured-data-schema"),
|
19 |
+
'required' => true
|
20 |
+
),
|
21 |
+
'mainEntityOfPage' => array(
|
22 |
+
'title' => __('Page URL', "wp-seo-structured-data-schema"),
|
23 |
+
'type' => 'url',
|
24 |
+
'desc' => __('The canonical URL of the article page', "wp-seo-structured-data-schema"),
|
25 |
+
'required' => true
|
26 |
+
),
|
27 |
+
'author' => array(
|
28 |
+
'title' => __('Author Name', "wp-seo-structured-data-schema"),
|
29 |
+
'type' => 'text',
|
30 |
+
'desc' => __('Author display name', "wp-seo-structured-data-schema"),
|
31 |
+
'required' => true
|
32 |
+
),
|
33 |
+
'image' => array(
|
34 |
+
'title' => __('Article Feature Image', "wp-seo-structured-data-schema"),
|
35 |
+
'type' => 'image',
|
36 |
+
'required' => true,
|
37 |
+
'desc' => __('Images should be at least 696 pixels wide.<br>Images should be in .jpg, .png, or. gif format.', "wp-seo-structured-data-schema")
|
38 |
+
),
|
39 |
+
'datePublished' => array(
|
40 |
+
'title' => __('Published date', "wp-seo-structured-data-schema"),
|
41 |
+
'type' => 'text',
|
42 |
+
'class' => 'kcseo-date',
|
43 |
+
'required' => true,
|
44 |
+
'desc' => __('Like this: 2015-12-25', "wp-seo-structured-data-schema")
|
45 |
+
),
|
46 |
+
'dateModified' => array(
|
47 |
+
'title' => __('Modified date', "wp-seo-structured-data-schema"),
|
48 |
+
'type' => 'text',
|
49 |
+
'class' => 'kcseo-date',
|
50 |
+
'required' => true,
|
51 |
+
'desc' => __('Like this: 2015-12-25', "wp-seo-structured-data-schema")
|
52 |
+
),
|
53 |
+
'publisher' => array(
|
54 |
+
'title' => __('Publisher', "wp-seo-structured-data-schema"),
|
55 |
+
'type' => 'text',
|
56 |
+
'desc' => __('Publisher name or Organization name', "wp-seo-structured-data-schema"),
|
57 |
+
'required' => true
|
58 |
+
),
|
59 |
+
'publisherImage' => array(
|
60 |
+
'title' => __('Publisher Logo', "wp-seo-structured-data-schema"),
|
61 |
+
'type' => 'image',
|
62 |
+
'desc' => __('Logos should have a wide aspect ratio, not a square icon.<br>Logos should be no wider than 600px, and no taller than 60px.<br>Always retain the original aspect ratio of the logo when resizing. Ideally, logos are exactly 60px tall with width <= 600px. If maintaining a height of 60px would cause the width to exceed 600px, downscale the logo to exactly 600px wide and reduce the height accordingly below 60px to maintain the original aspect ratio.<br>', "wp-seo-structured-data-schema"),
|
63 |
+
'required' => true
|
64 |
+
),
|
65 |
+
'description' => array(
|
66 |
+
'title' => __('Description', "wp-seo-structured-data-schema"),
|
67 |
+
'type' => 'textarea',
|
68 |
+
'desc' => __('Short description', "wp-seo-structured-data-schema")
|
69 |
+
),
|
70 |
+
'articleBody' => array(
|
71 |
+
'title' => __('Article body', "wp-seo-structured-data-schema"),
|
72 |
+
'type' => 'textarea',
|
73 |
+
'desc' => __('Article content', "wp-seo-structured-data-schema")
|
74 |
+
),
|
75 |
+
'alternativeHeadline' => array(
|
76 |
+
'title' => __('Alternative headline', "wp-seo-structured-data-schema"),
|
77 |
+
'type' => 'text',
|
78 |
+
'desc' => __('A secondary headline for the article.', "wp-seo-structured-data-schema")
|
79 |
+
),
|
80 |
+
)
|
81 |
+
),
|
82 |
+
'blog_posting' => array(
|
83 |
+
'pro' => false,
|
84 |
+
'title' => __('Blog Posting', "wp-seo-structured-data-schema"),
|
85 |
+
'fields' => array(
|
86 |
+
'active' => array(
|
87 |
+
'type' => 'checkbox'
|
88 |
+
),
|
89 |
+
'headline' => array(
|
90 |
+
'title' => __('Headline', "wp-seo-structured-data-schema"),
|
91 |
+
'type' => 'text',
|
92 |
+
'desc' => __('Blog posting title', "wp-seo-structured-data-schema"),
|
93 |
+
'required' => true
|
94 |
+
),
|
95 |
+
'mainEntityOfPage' => array(
|
96 |
+
'title' => __('Page URL', "wp-seo-structured-data-schema"),
|
97 |
+
'type' => 'url',
|
98 |
+
'desc' => __('The canonical URL of the article page', "wp-seo-structured-data-schema"),
|
99 |
+
'required' => true
|
100 |
+
),
|
101 |
+
'author' => array(
|
102 |
+
'title' => __('Author name', "wp-seo-structured-data-schema"),
|
103 |
+
'type' => 'text',
|
104 |
+
'desc' => __('Author display name', "wp-seo-structured-data-schema"),
|
105 |
+
'required' => true
|
106 |
+
),
|
107 |
+
'image' => array(
|
108 |
+
'title' => __('Feature Image', "wp-seo-structured-data-schema"),
|
109 |
+
'type' => 'image',
|
110 |
+
'desc' => __("The representative image of the article. Only a marked-up image that directly belongs to the article should be specified.<br> Images should be at least 696 pixels wide. <br>Images should be in .jpg, .png, or. gif format.", "wp-seo-structured-data-schema"),
|
111 |
+
'required' => true
|
112 |
+
),
|
113 |
+
'datePublished' => array(
|
114 |
+
'title' => __('Published date', "wp-seo-structured-data-schema"),
|
115 |
+
'type' => 'text',
|
116 |
+
'class' => 'kcseo-date',
|
117 |
+
'desc' => __('Like this: 2015-12-25', "wp-seo-structured-data-schema"),
|
118 |
+
'required' => true
|
119 |
+
),
|
120 |
+
'dateModified' => array(
|
121 |
+
'title' => __('Modified date', "wp-seo-structured-data-schema"),
|
122 |
+
'type' => 'text',
|
123 |
+
'class' => 'kcseo-date',
|
124 |
+
'desc' => __('Like this: 2015-12-25', "wp-seo-structured-data-schema"),
|
125 |
+
'required' => true
|
126 |
+
),
|
127 |
+
'publisher' => array(
|
128 |
+
'title' => __('Publisher', "wp-seo-structured-data-schema"),
|
129 |
+
'type' => 'text',
|
130 |
+
'desc' => __('Publisher name or Organization name', "wp-seo-structured-data-schema"),
|
131 |
+
'required' => true
|
132 |
+
),
|
133 |
+
'publisherImage' => array(
|
134 |
+
'title' => __('Publisher Logo', "wp-seo-structured-data-schema"),
|
135 |
+
'type' => 'image',
|
136 |
+
'desc' => __("Logos should have a wide aspect ratio, not a square icon.<br>Logos should be no wider than 600px, and no taller than 60px.<br>Always retain the original aspect ratio of the logo when resizing. Ideally, logos are exactly 60px tall with width <= 600px. If maintaining a height of 60px would cause the width to exceed 600px, downscale the logo to exactly 600px wide and reduce the height accordingly below 60px to maintain the original aspect ratio.<br>", "wp-seo-structured-data-schema"),
|
137 |
+
'required' => true
|
138 |
+
),
|
139 |
+
'description' => array(
|
140 |
+
'title' => __('Description', "wp-seo-structured-data-schema"),
|
141 |
+
'type' => 'textarea',
|
142 |
+
'desc' => __('Short description', "wp-seo-structured-data-schema")
|
143 |
+
),
|
144 |
+
'articleBody' => array(
|
145 |
+
'title' => __('Article body', "wp-seo-structured-data-schema"),
|
146 |
+
'type' => 'textarea',
|
147 |
+
'desc' => __('Article content', "wp-seo-structured-data-schema")
|
148 |
+
)
|
149 |
+
)
|
150 |
+
),
|
151 |
+
'news_article' => array(
|
152 |
+
'pro' => false,
|
153 |
+
'title' => __('News Article', "wp-seo-structured-data-schema"),
|
154 |
+
'fields' => array(
|
155 |
+
'active' => array(
|
156 |
+
'type' => 'checkbox'
|
157 |
+
),
|
158 |
+
'headline' => array(
|
159 |
+
'title' => __('Headline', "wp-seo-structured-data-schema"),
|
160 |
+
'type' => 'text',
|
161 |
+
'desc' => __('Article title', "wp-seo-structured-data-schema"),
|
162 |
+
'required' => true
|
163 |
+
),
|
164 |
+
'mainEntityOfPage' => array(
|
165 |
+
'title' => __('Page URL', "wp-seo-structured-data-schema"),
|
166 |
+
'type' => 'url',
|
167 |
+
'desc' => __('The canonical URL of the article page', "wp-seo-structured-data-schema"),
|
168 |
+
'required' => true
|
169 |
+
),
|
170 |
+
'author' => array(
|
171 |
+
'title' => __('Author', "wp-seo-structured-data-schema"),
|
172 |
+
'type' => 'text',
|
173 |
+
'desc' => __('Author display name', "wp-seo-structured-data-schema"),
|
174 |
+
'required' => true
|
175 |
+
),
|
176 |
+
'image' => array(
|
177 |
+
'title' => __('Image', "wp-seo-structured-data-schema"),
|
178 |
+
'type' => 'image',
|
179 |
+
'desc' => __("The representative image of the article. Only a marked-up image that directly belongs to the article should be specified.<br> Images should be at least 696 pixels wide. <br>Images should be in .jpg, .png, or. gif format.", "wp-seo-structured-data-schema"),
|
180 |
+
'required' => true
|
181 |
+
),
|
182 |
+
'datePublished' => array(
|
183 |
+
'title' => __('Published date', "wp-seo-structured-data-schema"),
|
184 |
+
'type' => 'text',
|
185 |
+
'class' => 'kcseo-date',
|
186 |
+
'desc' => __('Like this: 2015-12-25', "wp-seo-structured-data-schema"),
|
187 |
+
'required' => true
|
188 |
+
),
|
189 |
+
'dateModified' => array(
|
190 |
+
'title' => __('Modified date', "wp-seo-structured-data-schema"),
|
191 |
+
'type' => 'text',
|
192 |
+
'class' => 'kcseo-date',
|
193 |
+
'required' => true,
|
194 |
+
'desc' => __('Like this: 2015-12-25', "wp-seo-structured-data-schema")
|
195 |
+
),
|
196 |
+
'publisher' => array(
|
197 |
+
'title' => __('Publisher', "wp-seo-structured-data-schema"),
|
198 |
+
'type' => 'text',
|
199 |
+
'desc' => __('Publisher name or Organization name', "wp-seo-structured-data-schema"),
|
200 |
+
'required' => true
|
201 |
+
),
|
202 |
+
'publisherImage' => array(
|
203 |
+
'title' => __('Publisher Logo', "wp-seo-structured-data-schema"),
|
204 |
+
'type' => 'image',
|
205 |
+
'desc' => __('Logos should have a wide aspect ratio, not a square icon.<br>Logos should be no wider than 600px, and no taller than 60px.<br>Always retain the original aspect ratio of the logo when resizing. Ideally, logos are exactly 60px tall with width <= 600px. If maintaining a height of 60px would cause the width to exceed 600px, downscale the logo to exactly 600px wide and reduce the height accordingly below 60px to maintain the original aspect ratio.<br>', "wp-seo-structured-data-schema"),
|
206 |
+
'required' => true
|
207 |
+
),
|
208 |
+
'description' => array(
|
209 |
+
'title' => __('Description', "wp-seo-structured-data-schema"),
|
210 |
+
'type' => 'textarea',
|
211 |
+
'desc' => __('Short description', "wp-seo-structured-data-schema")
|
212 |
+
),
|
213 |
+
'articleBody' => array(
|
214 |
+
'title' => __('Article body', "wp-seo-structured-data-schema"),
|
215 |
+
'type' => 'textarea',
|
216 |
+
'desc' => __('Article body content', "wp-seo-structured-data-schema")
|
217 |
+
)
|
218 |
+
)
|
219 |
+
),
|
220 |
+
'event' => array(
|
221 |
+
'pro' => false,
|
222 |
+
'title' => __('Event', "wp-seo-structured-data-schema"),
|
223 |
+
'fields' => array(
|
224 |
+
'active' => array(
|
225 |
+
'type' => 'checkbox'
|
226 |
+
),
|
227 |
+
'name' => array(
|
228 |
+
'title' => __('Name', "wp-seo-structured-data-schema"),
|
229 |
+
'type' => 'text',
|
230 |
+
'required' => true,
|
231 |
+
'desc' => __("The name of the event.", "wp-seo-structured-data-schema")
|
232 |
+
),
|
233 |
+
'locationName' => array(
|
234 |
+
'title' => __('Location name', "wp-seo-structured-data-schema"),
|
235 |
+
'type' => 'text',
|
236 |
+
'required' => true,
|
237 |
+
'desc' => __("Event Location name", "wp-seo-structured-data-schema")
|
238 |
+
),
|
239 |
+
'locationAddress' => array(
|
240 |
+
'title' => __('Location address', "wp-seo-structured-data-schema"),
|
241 |
+
'type' => 'text',
|
242 |
+
'required' => true,
|
243 |
+
'desc' => __("The location of for example where the event is happening, an organization is located, or where an action takes place.", "wp-seo-structured-data-schema")
|
244 |
+
),
|
245 |
+
'startDate' => array(
|
246 |
+
'title' => __('Start date', "wp-seo-structured-data-schema"),
|
247 |
+
'type' => 'text',
|
248 |
+
'class' => 'kcseo-date',
|
249 |
+
'required' => true,
|
250 |
+
'desc' => __("Event start date", "wp-seo-structured-data-schema")
|
251 |
+
),
|
252 |
+
'endDate' => array(
|
253 |
+
'title' => __('End date', "wp-seo-structured-data-schema"),
|
254 |
+
'type' => 'text',
|
255 |
+
'recommended' => true,
|
256 |
+
'class' => 'kcseo-date',
|
257 |
+
'desc' => __("Event end date", "wp-seo-structured-data-schema")
|
258 |
+
),
|
259 |
+
'description' => array(
|
260 |
+
'title' => __('Description', "wp-seo-structured-data-schema"),
|
261 |
+
'type' => 'textarea',
|
262 |
+
'recommended' => true,
|
263 |
+
'desc' => __("Event description", "wp-seo-structured-data-schema")
|
264 |
+
),
|
265 |
+
'performerName' => array(
|
266 |
+
'title' => __('Performer Name', "wp-seo-structured-data-schema"),
|
267 |
+
'type' => 'text',
|
268 |
+
'recommended' => true,
|
269 |
+
'desc' => __("The performer's name.", "wp-seo-structured-data-schema")
|
270 |
+
),
|
271 |
+
'image' => array(
|
272 |
+
'title' => __('Image URL', "wp-seo-structured-data-schema"),
|
273 |
+
'type' => 'url',
|
274 |
+
'recommended' => true,
|
275 |
+
'desc' => __("URL of an image or logo for the event or tour", "wp-seo-structured-data-schema")
|
276 |
+
),
|
277 |
+
'price' => array(
|
278 |
+
'title' => __('Price', "wp-seo-structured-data-schema"),
|
279 |
+
'type' => 'number',
|
280 |
+
'recommended' => true,
|
281 |
+
'attr' => 'step="any"',
|
282 |
+
'desc' => __("This is highly recommended. The lowest available price, including service charges and fees, of this type of ticket. <span class='required'>Not required but (Recommended)</span>", "wp-seo-structured-data-schema")
|
283 |
+
),
|
284 |
+
'priceCurrency' => array(
|
285 |
+
'title' => __('Price currency', "wp-seo-structured-data-schema"),
|
286 |
+
'type' => 'text',
|
287 |
+
'desc' => __("The 3-letter currency code. (USD)", "wp-seo-structured-data-schema")
|
288 |
+
),
|
289 |
+
'availability' => array(
|
290 |
+
'title' => 'Availability',
|
291 |
+
'type' => 'select',
|
292 |
+
'recommended' => true,
|
293 |
+
'empty' => "Select one",
|
294 |
+
'options' => array(
|
295 |
+
'http://schema.org/InStock' => 'InStock',
|
296 |
+
'http://schema.org/SoldOut' => 'SoldOut',
|
297 |
+
'http://schema.org/PreOrder' => 'PreOrder',
|
298 |
+
),
|
299 |
+
),
|
300 |
+
'validFrom' => array(
|
301 |
+
'title' => __('Valid From', "wp-seo-structured-data-schema-pro"),
|
302 |
+
'type' => 'text',
|
303 |
+
'recommended' => true,
|
304 |
+
'class' => 'kcseo-date',
|
305 |
+
'desc' => __(sprintf("The date and time when tickets go on sale (only required on date-restricted offers), in <a href='%s' target='_blank'>ISO-8601 format</a>", 'https://en.wikipedia.org/wiki/ISO_8601'), "wp-seo-structured-data-schema-pro")
|
306 |
+
),
|
307 |
+
'url' => array(
|
308 |
+
'title' => 'URL',
|
309 |
+
'recommended' => true,
|
310 |
+
'type' => 'url',
|
311 |
+
'placeholder' => 'URL',
|
312 |
+
'desc' => __("A link to the event's details page. <span class='required'>Not required but (Recommended)</span>", "wp-seo-structured-data-schema")
|
313 |
+
),
|
314 |
+
)
|
315 |
+
),
|
316 |
+
'product' => array(
|
317 |
+
'pro' => false,
|
318 |
+
'title' => __('Product', "wp-seo-structured-data-schema"),
|
319 |
+
'fields' => array(
|
320 |
+
'active' => array(
|
321 |
+
'type' => 'checkbox'
|
322 |
+
),
|
323 |
+
'name' => array(
|
324 |
+
'title' => __('Name', "wp-seo-structured-data-schema"),
|
325 |
+
'type' => 'text',
|
326 |
+
'required' => true,
|
327 |
+
'desc' => __("The name of the product.", "wp-seo-structured-data-schema")
|
328 |
+
),
|
329 |
+
'image' => array(
|
330 |
+
'title' => __('Image', "wp-seo-structured-data-schema"),
|
331 |
+
'type' => 'image',
|
332 |
+
'desc' => __("The URL of a product photo. Pictures clearly showing the product, e.g. against a white background, are preferred.", "wp-seo-structured-data-schema")
|
333 |
+
),
|
334 |
+
'description' => array(
|
335 |
+
'title' => __('Description', "wp-seo-structured-data-schema"),
|
336 |
+
'type' => 'textarea',
|
337 |
+
'desc' => __("Product description.", "wp-seo-structured-data-schema")
|
338 |
+
),
|
339 |
+
'brand' => array(
|
340 |
+
'title' => __('Brand', "wp-seo-structured-data-schema"),
|
341 |
+
'type' => 'text',
|
342 |
+
'desc' => __("The brand of the product.", "wp-seo-structured-data-schema")
|
343 |
+
),
|
344 |
+
'reviewRatingValue' => array(
|
345 |
+
'title' => __('Review rating value', "wp-seo-structured-data-schema-pro"),
|
346 |
+
'type' => 'number',
|
347 |
+
'recommended' => true,
|
348 |
+
'attr' => 'step="any"',
|
349 |
+
'desc' => __("Rating value. (1 , 2.5, 3, 5 etc)", "wp-seo-structured-data-schema-pro")
|
350 |
+
),
|
351 |
+
'reviewBestRating' => array(
|
352 |
+
'title' => __('Review Best rating', "wp-seo-structured-data-schema-pro"),
|
353 |
+
'type' => 'number',
|
354 |
+
'recommended' => true,
|
355 |
+
'attr' => 'step="any"',
|
356 |
+
),
|
357 |
+
'reviewWorstRating' => array(
|
358 |
+
'title' => __('Review Worst rating', "wp-seo-structured-data-schema-pro"),
|
359 |
+
'type' => 'number',
|
360 |
+
'recommended' => true,
|
361 |
+
'attr' => 'step="any"',
|
362 |
+
),
|
363 |
+
'reviewAuthor' => array(
|
364 |
+
'title' => __('Review author', "wp-seo-structured-data-schema-pro"),
|
365 |
+
'type' => 'text'
|
366 |
+
),
|
367 |
+
'ratingValue' => array(
|
368 |
+
'title' => __('Rating value', "wp-seo-structured-data-schema"),
|
369 |
+
'type' => 'number',
|
370 |
+
'attr' => 'step="any"',
|
371 |
+
'desc' => __("Rating value. (1 , 2.5, 3, 5 etc)", "wp-seo-structured-data-schema")
|
372 |
+
),
|
373 |
+
'reviewCount' => array(
|
374 |
+
'title' => __('Total review count', "wp-seo-structured-data-schema"),
|
375 |
+
'type' => 'number',
|
376 |
+
'attr' => 'step="any"',
|
377 |
+
'desc' => __("Review rating value. <span class='required'>This is required if (Rating value) is given</span>", "wp-seo-structured-data-schema")
|
378 |
+
),
|
379 |
+
'price' => array(
|
380 |
+
'title' => __('Price', "wp-seo-structured-data-schema"),
|
381 |
+
'type' => 'number',
|
382 |
+
'attr' => 'step="any"',
|
383 |
+
'desc' => __("The lowest available price, including service charges and fees, of this type of ticket.", "wp-seo-structured-data-schema")
|
384 |
+
),
|
385 |
+
'priceValidUntil' => array(
|
386 |
+
'title' => __('PriceValidUntil', "wp-seo-structured-data-schema-pro"),
|
387 |
+
'type' => 'text',
|
388 |
+
'recommended' => true,
|
389 |
+
'class' => 'kcseo-date',
|
390 |
+
'desc' => __("The date (in ISO 8601 date format) after which the price will no longer be available.", "wp-seo-structured-data-schema-pro")
|
391 |
+
),
|
392 |
+
'priceCurrency' => array(
|
393 |
+
'title' => __('Price currency', "wp-seo-structured-data-schema"),
|
394 |
+
'type' => 'text',
|
395 |
+
'desc' => __("The 3-letter currency code.", "wp-seo-structured-data-schema")
|
396 |
+
),
|
397 |
+
'availability' => array(
|
398 |
+
'title' => 'Availability',
|
399 |
+
'type' => 'select',
|
400 |
+
'empty' => "Select one",
|
401 |
+
'options' => array(
|
402 |
+
'http://schema.org/InStock' => 'InStock',
|
403 |
+
'http://schema.org/InStoreOnly' => 'InStoreOnly',
|
404 |
+
'http://schema.org/OutOfStock' => 'OutOfStock',
|
405 |
+
'http://schema.org/SoldOut' => 'SoldOut',
|
406 |
+
'http://schema.org/OnlineOnly' => 'OnlineOnly',
|
407 |
+
'http://schema.org/LimitedAvailability' => 'LimitedAvailability',
|
408 |
+
'http://schema.org/Discontinued' => 'Discontinued',
|
409 |
+
'http://schema.org/PreOrder' => 'PreOrder',
|
410 |
+
),
|
411 |
+
'desc' => __("Select a availability type", "wp-seo-structured-data-schema")
|
412 |
+
),
|
413 |
+
'itemCondition' => array(
|
414 |
+
'title' => 'Product condition',
|
415 |
+
'type' => 'select',
|
416 |
+
'empty' => "Select one",
|
417 |
+
'options' => array(
|
418 |
+
'http://schema.org/NewCondition' => 'NewCondition',
|
419 |
+
'http://schema.org/UsedCondition' => 'UsedCondition',
|
420 |
+
'http://schema.org/DamagedCondition' => 'DamagedCondition',
|
421 |
+
'http://schema.org/RefurbishedCondition' => 'RefurbishedCondition',
|
422 |
+
),
|
423 |
+
'desc' => __("Select a condition", "wp-seo-structured-data-schema")
|
424 |
+
),
|
425 |
+
'url' => array(
|
426 |
+
'title' => __('Product URL', "wp-seo-structured-data-schema"),
|
427 |
+
'type' => 'url',
|
428 |
+
'desc' => __("A URL to the product web page (that includes the Offer). (Don't use offerURL for markup that appears on the product page itself.)", "wp-seo-structured-data-schema")
|
429 |
+
),
|
430 |
+
)
|
431 |
+
),
|
432 |
+
'video' => array(
|
433 |
+
'pro' => false,
|
434 |
+
'title' => __('Video', "wp-seo-structured-data-schema"),
|
435 |
+
'fields' => array(
|
436 |
+
'active' => array(
|
437 |
+
'type' => 'checkbox'
|
438 |
+
),
|
439 |
+
'name' => array(
|
440 |
+
'title' => __('Name', "wp-seo-structured-data-schema"),
|
441 |
+
'type' => 'text',
|
442 |
+
'required' => true,
|
443 |
+
'desc' => __("The title of the video", "wp-seo-structured-data-schema")
|
444 |
+
),
|
445 |
+
'description' => array(
|
446 |
+
'title' => __('Description', "wp-seo-structured-data-schema"),
|
447 |
+
'type' => 'textarea',
|
448 |
+
'required' => true,
|
449 |
+
'desc' => __("The description of the video", "wp-seo-structured-data-schema")
|
450 |
+
),
|
451 |
+
'thumbnailUrl' => array(
|
452 |
+
'title' => 'Thumbnail URL',
|
453 |
+
'type' => 'url',
|
454 |
+
'placeholder' => "URL",
|
455 |
+
'required' => true,
|
456 |
+
'desc' => __("A URL pointing to the video thumbnail image file. Images must be at least 160x90 pixels and at most 1920x1080 pixels.", "wp-seo-structured-data-schema")
|
457 |
+
),
|
458 |
+
'uploadDate' => array(
|
459 |
+
'title' => __('Updated date', "wp-seo-structured-data-schema"),
|
460 |
+
'type' => 'text',
|
461 |
+
'class' => 'kcseo-date',
|
462 |
+
'desc' => __('2015-02-05T08:00:00+08:00', "wp-seo-structured-data-schema")
|
463 |
+
),
|
464 |
+
'duration' => array(
|
465 |
+
'title' => __('Duration', "wp-seo-structured-data-schema"),
|
466 |
+
'type' => 'text',
|
467 |
+
'desc' => __("The duration of the video in ISO 8601 format.(PT1M33S)", "wp-seo-structured-data-schema")
|
468 |
+
),
|
469 |
+
'contentUrl' => array(
|
470 |
+
'title' => 'Content URL',
|
471 |
+
'type' => 'url',
|
472 |
+
'placeholder' => 'URL',
|
473 |
+
'desc' => __("A URL pointing to the actual video media file. This file should be in .mpg, .mpeg, .mp4, .m4v, .mov, .wmv, .asf, .avi, .ra, .ram, .rm, .flv, or other video file format.", "wp-seo-structured-data-schema")
|
474 |
+
),
|
475 |
+
'embedUrl' => array(
|
476 |
+
'title' => 'Embed URL',
|
477 |
+
'placeholder' => 'URL',
|
478 |
+
'type' => 'url',
|
479 |
+
'desc' => __("A URL pointing to a player for the specific video. Usually this is the information in the src element of an < embed> tag.Example: Dailymotion: http://www.dailymotion.com/swf/x1o2g.", "wp-seo-structured-data-schema")
|
480 |
+
),
|
481 |
+
'interactionCount' => array(
|
482 |
+
'title' => __('Interaction count', "wp-seo-structured-data-schema"),
|
483 |
+
'type' => 'text',
|
484 |
+
'desc' => __("The number of times the video has been viewed.", "wp-seo-structured-data-schema")
|
485 |
+
),
|
486 |
+
'expires' => array(
|
487 |
+
'title' => __('Expires', "wp-seo-structured-data-schema"),
|
488 |
+
'type' => 'text',
|
489 |
+
'class' => 'kcseo-date',
|
490 |
+
'desc' => __("Like this: 2015-12-25", "wp-seo-structured-data-schema")
|
491 |
+
),
|
492 |
+
)
|
493 |
+
),
|
494 |
+
'service' => array(
|
495 |
+
'pro' => false,
|
496 |
+
'title' => __('Service', "wp-seo-structured-data-schema"),
|
497 |
+
'fields' => array(
|
498 |
+
'active' => array(
|
499 |
+
'type' => 'checkbox'
|
500 |
+
),
|
501 |
+
'name' => array(
|
502 |
+
'title' => __('Name', "wp-seo-structured-data-schema"),
|
503 |
+
'type' => 'text',
|
504 |
+
'required' => true,
|
505 |
+
'desc' => __("The name of the Service.", "wp-seo-structured-data-schema")
|
506 |
+
),
|
507 |
+
'serviceType' => array(
|
508 |
+
'title' => __('Service type', "wp-seo-structured-data-schema"),
|
509 |
+
'type' => 'text',
|
510 |
+
'required' => true,
|
511 |
+
'desc' => __("The type of service being offered, e.g. veterans' benefits, emergency relief, etc.", "wp-seo-structured-data-schema")
|
512 |
+
),
|
513 |
+
'additionalType' => array(
|
514 |
+
'title' => 'Additional type(URL)',
|
515 |
+
'type' => 'url',
|
516 |
+
'placeholder' => 'URL',
|
517 |
+
'desc' => __("An additional type for the service, typically used for adding more specific types from external vocabularies in microdata syntax.", "wp-seo-structured-data-schema")
|
518 |
+
),
|
519 |
+
'award' => array(
|
520 |
+
'title' => __('Award', "wp-seo-structured-data-schema"),
|
521 |
+
'type' => 'text',
|
522 |
+
'desc' => __("An award won by or for this service.", "wp-seo-structured-data-schema")
|
523 |
+
),
|
524 |
+
'category' => array(
|
525 |
+
'title' => __('Category', "wp-seo-structured-data-schema"),
|
526 |
+
'type' => 'text',
|
527 |
+
'desc' => __("A category for the service.", "wp-seo-structured-data-schema")
|
528 |
+
),
|
529 |
+
'providerMobility' => array(
|
530 |
+
'title' => __('Provider mobility', "wp-seo-structured-data-schema"),
|
531 |
+
'type' => 'text',
|
532 |
+
'desc' => __("Indicates the mobility of a provided service (e.g. 'static', 'dynamic').", "wp-seo-structured-data-schema")
|
533 |
+
),
|
534 |
+
'description' => array(
|
535 |
+
'title' => 'Description',
|
536 |
+
'type' => 'textarea',
|
537 |
+
'require' => true,
|
538 |
+
'desc' => __("A short description of the service.", "wp-seo-structured-data-schema")
|
539 |
+
),
|
540 |
+
'image' => array(
|
541 |
+
'title' => 'Image URL',
|
542 |
+
'type' => 'url',
|
543 |
+
'require' => false,
|
544 |
+
'desc' => __("An image of the service. This should be a URL.", "wp-seo-structured-data-schema")
|
545 |
+
),
|
546 |
+
'mainEntityOfPage' => array(
|
547 |
+
'title' => 'Main entity of page URL',
|
548 |
+
'type' => 'url',
|
549 |
+
'require' => false,
|
550 |
+
'desc' => __("Indicates a page (or other CreativeWork) for which this thing is the main entity being described.", "wp-seo-structured-data-schema")
|
551 |
+
),
|
552 |
+
'sameAs' => array(
|
553 |
+
'title' => 'Same as URL',
|
554 |
+
'type' => 'url',
|
555 |
+
'placeholder' => 'URL',
|
556 |
+
'desc' => __("URL of a reference Web page that unambiguously indicates the service's identity. E.g. the URL of the service's Wikipedia page, Freebase page, or official website.", "wp-seo-structured-data-schema")
|
557 |
+
),
|
558 |
+
'url' => array(
|
559 |
+
'title' => 'Url of the service',
|
560 |
+
'type' => 'url',
|
561 |
+
'placeholder' => 'URL',
|
562 |
+
'desc' => __("URL of the service.", "wp-seo-structured-data-schema")
|
563 |
+
),
|
564 |
+
'alternateName' => array(
|
565 |
+
'title' => __('Alternate name', "wp-seo-structured-data-schema"),
|
566 |
+
'type' => 'text',
|
567 |
+
'desc' => __('An alias for the service.', "wp-seo-structured-data-schema")
|
568 |
+
),
|
569 |
+
)
|
570 |
+
),
|
571 |
+
'review' => array(
|
572 |
+
'pro' => false,
|
573 |
+
'title' => __('Review', "wp-seo-structured-data-schema"),
|
574 |
+
'fields' => array(
|
575 |
+
'active' => array(
|
576 |
+
'type' => 'checkbox'
|
577 |
+
),
|
578 |
+
'itemName' => array(
|
579 |
+
'title' => __('Name of the reviewed item', "wp-seo-structured-data-schema"),
|
580 |
+
'type' => 'text',
|
581 |
+
'required' => true,
|
582 |
+
'desc' => __("The item that is being reviewed.", "wp-seo-structured-data-schema")
|
583 |
+
),
|
584 |
+
'reviewBody' => array(
|
585 |
+
'title' => __('Review body', "wp-seo-structured-data-schema"),
|
586 |
+
'type' => 'textarea',
|
587 |
+
'required' => true,
|
588 |
+
'desc' => __("The actual body of the review.", "wp-seo-structured-data-schema")
|
589 |
+
),
|
590 |
+
'name' => array(
|
591 |
+
'title' => __('Review name', "wp-seo-structured-data-schema"),
|
592 |
+
'type' => 'text',
|
593 |
+
'required' => true,
|
594 |
+
'desc' => __("A particular name for the review.", "wp-seo-structured-data-schema")
|
595 |
+
),
|
596 |
+
'author' => array(
|
597 |
+
'title' => __('Author', "wp-seo-structured-data-schema"),
|
598 |
+
'type' => 'text',
|
599 |
+
'required' => true,
|
600 |
+
'author' => 'Author name',
|
601 |
+
'desc' => __("The author of the review. The reviewer’s name needs to be a valid name.", "wp-seo-structured-data-schema")
|
602 |
+
),
|
603 |
+
'datePublished' => array(
|
604 |
+
'title' => __('Date of Published', "wp-seo-structured-data-schema"),
|
605 |
+
'type' => 'text',
|
606 |
+
'class' => 'kcseo-date',
|
607 |
+
'desc' => __("Like this: 2015-12-25", "wp-seo-structured-data-schema")
|
608 |
+
),
|
609 |
+
'ratingValue' => array(
|
610 |
+
'title' => __('Rating value', "wp-seo-structured-data-schema"),
|
611 |
+
'type' => 'number',
|
612 |
+
'attr' => 'step="any"',
|
613 |
+
'desc' => __("A numerical quality rating for the item.", "wp-seo-structured-data-schema")
|
614 |
+
),
|
615 |
+
'bestRating' => array(
|
616 |
+
'title' => __('Best rating', "wp-seo-structured-data-schema"),
|
617 |
+
'type' => 'number',
|
618 |
+
'attr' => 'step="any"',
|
619 |
+
'desc' => __("The highest value allowed in this rating system.", "wp-seo-structured-data-schema")
|
620 |
+
),
|
621 |
+
'worstRating' => array(
|
622 |
+
'title' => __('Worst rating', "wp-seo-structured-data-schema"),
|
623 |
+
'type' => 'number',
|
624 |
+
'attr' => 'step="any"',
|
625 |
+
'desc' => __("The lowest value allowed in this rating system. * Required if the rating system is not on a 5-point scale. If worstRating is omitted, 1 is assumed.", "wp-seo-structured-data-schema")
|
626 |
+
),
|
627 |
+
'publisher' => array(
|
628 |
+
'title' => __('Name of the organization', "wp-seo-structured-data-schema"),
|
629 |
+
'type' => 'text',
|
630 |
+
'desc' => __('The publisher of the review.', "wp-seo-structured-data-schema")
|
631 |
+
)
|
632 |
+
)
|
633 |
+
),
|
634 |
+
'aggregate_rating' => array(
|
635 |
+
'pro' => false,
|
636 |
+
'title' => __('Aggregate Ratings', "wp-seo-structured-data-schema"),
|
637 |
+
'fields' => array(
|
638 |
+
'active' => array(
|
639 |
+
'type' => 'checkbox'
|
640 |
+
),
|
641 |
+
'schema_type' => array(
|
642 |
+
'title' => __('Schema type', "wp-seo-structured-data-schema"),
|
643 |
+
'type' => 'schema_type',
|
644 |
+
'required' => true,
|
645 |
+
'options' => self::getSiteTypes(),
|
646 |
+
'empty' => "Select one",
|
647 |
+
'desc' => __("Use the most appropriate schema type for what is being reviewed.", "wp-seo-structured-data-schema")
|
648 |
+
),
|
649 |
+
'name' => array(
|
650 |
+
'title' => __('Name of the item', "wp-seo-structured-data-schema"),
|
651 |
+
'type' => 'text',
|
652 |
+
'required' => true,
|
653 |
+
'desc' => __("The item that is being rated.", "wp-seo-structured-data-schema")
|
654 |
+
),
|
655 |
+
'image' => array(
|
656 |
+
'title' => 'Image',
|
657 |
+
'type' => 'image',
|
658 |
+
'required' => true,
|
659 |
+
'holderClass' => 'kSeo-hidden aggregate-except-organization-holder'
|
660 |
+
),
|
661 |
+
'priceRange' => array(
|
662 |
+
'title' => 'Price Range',
|
663 |
+
'recommended' => true,
|
664 |
+
'type' => 'text',
|
665 |
+
'holderClass' => 'kSeo-hidden aggregate-except-organization-holder',
|
666 |
+
'desc' => __("The price range of the business, for example $$$.", "wp-seo-structured-data-schema")
|
667 |
+
),
|
668 |
+
'telephone' => array(
|
669 |
+
'title' => 'Telephone',
|
670 |
+
'recommended' => true,
|
671 |
+
'type' => 'text',
|
672 |
+
'holderClass' => 'kSeo-hidden aggregate-except-organization-holder'
|
673 |
+
),
|
674 |
+
'address' => array(
|
675 |
+
'title' => 'Address',
|
676 |
+
'recommended' => true,
|
677 |
+
'type' => 'text',
|
678 |
+
'holderClass' => 'kSeo-hidden aggregate-except-organization-holder',
|
679 |
+
),
|
680 |
+
'description' => array(
|
681 |
+
'title' => __('Description', "wp-seo-structured-data-schema"),
|
682 |
+
'type' => 'textarea',
|
683 |
+
'desc' => __("Description for thr review", "wp-seo-structured-data-schema")
|
684 |
+
),
|
685 |
+
'ratingCount' => array(
|
686 |
+
'title' => __('Rating Count', "wp-seo-structured-data-schema"),
|
687 |
+
'type' => 'number',
|
688 |
+
'attr' => 'step="any"',
|
689 |
+
'required' => true,
|
690 |
+
'desc' => __("The total number of ratings for the item on your site. <span class='required'>* At least one of ratingCount or reviewCount is required.</span>", "wp-seo-structured-data-schema")
|
691 |
+
),
|
692 |
+
'reviewCount' => array(
|
693 |
+
'title' => __('Review Count', "wp-seo-structured-data-schema"),
|
694 |
+
'type' => 'number',
|
695 |
+
'attr' => 'step="any"',
|
696 |
+
'required' => true,
|
697 |
+
'desc' => __("Specifies the number of people who provided a review with or without an accompanying rating. At least one of ratingCount or reviewCount is required.", "wp-seo-structured-data-schema")
|
698 |
+
),
|
699 |
+
'ratingValue' => array(
|
700 |
+
'title' => __('Rating Value', "wp-seo-structured-data-schema"),
|
701 |
+
'type' => 'number',
|
702 |
+
'attr' => 'step="any"',
|
703 |
+
'required' => true,
|
704 |
+
'desc' => __("A numerical quality rating for the item.", "wp-seo-structured-data-schema")
|
705 |
+
),
|
706 |
+
'ratingValue' => array(
|
707 |
+
'title' => __('Rating Value', "wp-seo-structured-data-schema"),
|
708 |
+
'attr' => 'step="any"',
|
709 |
+
'type' => 'number',
|
710 |
+
'required' => true,
|
711 |
+
'desc' => __("A numerical quality rating for the item.", "wp-seo-structured-data-schema")
|
712 |
+
),
|
713 |
+
'bestRating' => array(
|
714 |
+
'title' => __('Best Rating', "wp-seo-structured-data-schema"),
|
715 |
+
'type' => 'number',
|
716 |
+
'attr' => 'step="any"',
|
717 |
+
'required' => true,
|
718 |
+
'desc' => __("The highest value allowed in this rating system. <span class='required'>* Required if the rating system is not a 5-point scale.</span> If bestRating is omitted, 5 is assumed.", "wp-seo-structured-data-schema")
|
719 |
+
),
|
720 |
+
'worstRating' => array(
|
721 |
+
'title' => __('Worst Rating', "wp-seo-structured-data-schema"),
|
722 |
+
'type' => 'number',
|
723 |
+
'attr' => 'step="any"',
|
724 |
+
'required' => true,
|
725 |
+
'desc' => __("The lowest value allowed in this rating system. <span class='required'>* Required if the rating system is not a 5-point scale.</span> If worstRating is omitted, 1 is assumed.", "wp-seo-structured-data-schema")
|
726 |
+
)
|
727 |
+
)
|
728 |
+
),
|
729 |
+
'restaurant' => array(
|
730 |
+
'pro' => false,
|
731 |
+
'title' => __('Restaurant', "wp-seo-structured-data-schema"),
|
732 |
+
'fields' => array(
|
733 |
+
'active' => array(
|
734 |
+
'type' => 'checkbox'
|
735 |
+
),
|
736 |
+
'name' => array(
|
737 |
+
'title' => __('Name of the Restaurant', "wp-seo-structured-data-schema"),
|
738 |
+
'type' => 'text',
|
739 |
+
'required' => true
|
740 |
+
),
|
741 |
+
'description' => array(
|
742 |
+
'title' => __('Description of the Restaurant', "wp-seo-structured-data-schema"),
|
743 |
+
'type' => 'textarea',
|
744 |
+
),
|
745 |
+
'openingHours' => array(
|
746 |
+
'title' => __('Opening Hours', "wp-seo-structured-data-schema"),
|
747 |
+
'type' => 'textarea',
|
748 |
+
'desc' => __('Mo,Tu,We,Th,Fr,Sa,Su 11:30-23:00', "wp-seo-structured-data-schema")
|
749 |
+
),
|
750 |
+
'telephone' => array(
|
751 |
+
'title' => __('Telephone', "wp-seo-structured-data-schema"),
|
752 |
+
'type' => 'text',
|
753 |
+
'desc' => __('+155501003333', "wp-seo-structured-data-schema")
|
754 |
+
),
|
755 |
+
'menu' => array(
|
756 |
+
'title' => __('Menu', "wp-seo-structured-data-schema"),
|
757 |
+
'type' => 'text',
|
758 |
+
'desc' => __('http://example.com/menu', "wp-seo-structured-data-schema")
|
759 |
+
),
|
760 |
+
'image' => array(
|
761 |
+
'title' => __('Image', "wp-seo-structured-data-schema"),
|
762 |
+
'type' => 'image',
|
763 |
+
'required' => true
|
764 |
+
),
|
765 |
+
'address' => array(
|
766 |
+
'title' => __('Address', "wp-seo-structured-data-schema"),
|
767 |
+
'type' => 'textarea'
|
768 |
+
),
|
769 |
+
'priceRange' => array(
|
770 |
+
'title' => __('Price Range', "wp-seo-structured-data-schema"),
|
771 |
+
'type' => 'text',
|
772 |
+
'desc' => __('The price range of the business, for example $$$', "wp-seo-structured-data-schema")
|
773 |
+
),
|
774 |
+
'servesCuisine' => array(
|
775 |
+
'title' => __('Serves Cuisine', "wp-seo-structured-data-schema"),
|
776 |
+
'type' => 'text',
|
777 |
+
'desc' => __('The cuisine of the restaurant.', "wp-seo-structured-data-schema")
|
778 |
+
)
|
779 |
+
)
|
780 |
+
),
|
781 |
+
'localBusiness' => array(
|
782 |
+
'pro' => false,
|
783 |
+
'title' => __('Local Business', "wp-seo-structured-data-schema"),
|
784 |
+
'fields' => array(
|
785 |
+
'active' => array(
|
786 |
+
'type' => 'checkbox'
|
787 |
+
),
|
788 |
+
'name' => array(
|
789 |
+
'title' => __('Name', "wp-seo-structured-data-schema"),
|
790 |
+
'type' => 'text',
|
791 |
+
'required' => true
|
792 |
+
),
|
793 |
+
'description' => array(
|
794 |
+
'title' => __('Description', "wp-seo-structured-data-schema"),
|
795 |
+
'type' => 'textarea',
|
796 |
+
),
|
797 |
+
'image' => array(
|
798 |
+
'title' => __('Business Logo', "wp-seo-structured-data-schema"),
|
799 |
+
'type' => 'image',
|
800 |
+
'required' => true
|
801 |
+
),
|
802 |
+
'priceRange' => array(
|
803 |
+
'title' => __('Price Range', "wp-seo-structured-data-schema"),
|
804 |
+
'type' => 'text',
|
805 |
+
'recommended' => true,
|
806 |
+
'desc' => __("The price range of the business, for example $$$.", "wp-seo-structured-data-schema")
|
807 |
+
),
|
808 |
+
'addressLocality' => array(
|
809 |
+
'title' => __('Address locality', "wp-seo-structured-data-schema"),
|
810 |
+
'type' => 'text',
|
811 |
+
'desc' => __('City (i.e Kansas city)', "wp-seo-structured-data-schema")
|
812 |
+
),
|
813 |
+
'addressRegion' => array(
|
814 |
+
'title' => __('Address region', "wp-seo-structured-data-schema"),
|
815 |
+
'type' => 'text',
|
816 |
+
'desc' => __('State (i.e. MO)', "wp-seo-structured-data-schema")
|
817 |
+
),
|
818 |
+
'postalCode' => array(
|
819 |
+
'title' => __('Postal code', "wp-seo-structured-data-schema"),
|
820 |
+
'type' => 'text',
|
821 |
+
),
|
822 |
+
'streetAddress' => array(
|
823 |
+
'title' => __('Street address', "wp-seo-structured-data-schema"),
|
824 |
+
'type' => 'text',
|
825 |
+
),
|
826 |
+
'telephone' => array(
|
827 |
+
'title' => __('Telephone', "wp-seo-structured-data-schema"),
|
828 |
+
'type' => 'text',
|
829 |
+
'recommended' => true,
|
830 |
+
)
|
831 |
+
)
|
832 |
+
),
|
833 |
+
'book' => array(
|
834 |
+
'pro' => true,
|
835 |
+
'title' => __("Book", "wp-seo-structured-data-schema"),
|
836 |
+
),
|
837 |
+
'course' => array(
|
838 |
+
'pro' => true,
|
839 |
+
'title' => __("Course", "wp-seo-structured-data-schema"),
|
840 |
+
),
|
841 |
+
'JobPosting' => array(
|
842 |
+
'pro' => true,
|
843 |
+
'title' => __("Job Posting", "wp-seo-structured-data-schema"),
|
844 |
+
),
|
845 |
+
'movie' => array(
|
846 |
+
'pro' => true,
|
847 |
+
'title' => __("Movie", "wp-seo-structured-data-schema"),
|
848 |
+
),
|
849 |
+
'music' => array(
|
850 |
+
'pro' => true,
|
851 |
+
'title' => __("Music", "wp-seo-structured-data-schema"),
|
852 |
+
),
|
853 |
+
'recipe' => array(
|
854 |
+
'pro' => true,
|
855 |
+
'title' => __("Recipe", "wp-seo-structured-data-schema"),
|
856 |
+
),
|
857 |
+
'TVEpisode' => array(
|
858 |
+
'pro' => true,
|
859 |
+
'title' => __("TVEpisode", "wp-seo-structured-data-schema"),
|
860 |
+
),
|
861 |
+
'question' => array(
|
862 |
+
'pro' => true,
|
863 |
+
'title' => __("QAPage", "wp-seo-structured-data-schema"),
|
864 |
+
),
|
865 |
+
'itemList' => array(
|
866 |
+
'pro' => true,
|
867 |
+
'title' => __("Item List", "wp-seo-structured-data-schema"),
|
868 |
+
)
|
869 |
+
);
|
870 |
+
|
871 |
+
return apply_filters('kcseo_schema_types', $schemas);
|
872 |
+
}
|
873 |
+
|
874 |
+
static function getSiteTypes() {
|
875 |
+
$siteTypes = array(
|
876 |
+
'Organization',
|
877 |
+
'LocalBusiness' => array(
|
878 |
+
'AnimalShelter',
|
879 |
+
'AutomotiveBusiness' => array(
|
880 |
+
'AutoBodyShop',
|
881 |
+
'AutoDealer',
|
882 |
+
'AutoPartsStore',
|
883 |
+
'AutoRental',
|
884 |
+
'AutoRepair',
|
885 |
+
'AutoWash',
|
886 |
+
'GasStation',
|
887 |
+
'MotorcycleDealer',
|
888 |
+
'MotorcycleRepair'
|
889 |
+
),
|
890 |
+
'ChildCare',
|
891 |
+
'DryCleaningOrLaundry',
|
892 |
+
'EmergencyService',
|
893 |
+
'EmploymentAgency',
|
894 |
+
'EntertainmentBusiness' => array(
|
895 |
+
'AdultEntertainment',
|
896 |
+
'AmusementPark',
|
897 |
+
'ArtGallery',
|
898 |
+
'Casino',
|
899 |
+
'ComedyClub',
|
900 |
+
'MovieTheater',
|
901 |
+
'NightClub',
|
902 |
+
|
903 |
+
),
|
904 |
+
'FinancialService' => array(
|
905 |
+
'AccountingService',
|
906 |
+
'AutomatedTeller',
|
907 |
+
'BankOrCreditUnion',
|
908 |
+
'InsuranceAgency',
|
909 |
+
),
|
910 |
+
'FoodEstablishment' => array(
|
911 |
+
'Bakery',
|
912 |
+
'BarOrPub',
|
913 |
+
'Brewery',
|
914 |
+
'CafeOrCoffeeShop',
|
915 |
+
'FastFoodRestaurant',
|
916 |
+
'IceCreamShop',
|
917 |
+
'Restaurant',
|
918 |
+
'Winery',
|
919 |
+
),
|
920 |
+
'GovernmentOffice',
|
921 |
+
'HealthAndBeautyBusiness' => array(
|
922 |
+
'BeautySalon',
|
923 |
+
'DaySpa',
|
924 |
+
'HairSalon',
|
925 |
+
'HealthClub',
|
926 |
+
'NailSalon',
|
927 |
+
'TattooParlor',
|
928 |
+
),
|
929 |
+
'HomeAndConstructionBusiness' => array(
|
930 |
+
'Electrician',
|
931 |
+
'GeneralContractor',
|
932 |
+
'HVACBusiness',
|
933 |
+
'HousePainter',
|
934 |
+
'Locksmith',
|
935 |
+
'MovingCompany',
|
936 |
+
'Plumber',
|
937 |
+
'RoofingContractor',
|
938 |
+
),
|
939 |
+
'InternetCafe',
|
940 |
+
'LegalService' => array(
|
941 |
+
'Attorney',
|
942 |
+
'Notary',
|
943 |
+
),
|
944 |
+
'Library',
|
945 |
+
'MedicalBusiness' => array(
|
946 |
+
'CommunityHealth',
|
947 |
+
'Dentist',
|
948 |
+
'Dermatology',
|
949 |
+
'DietNutrition',
|
950 |
+
'Emergency',
|
951 |
+
'Geriatric',
|
952 |
+
'Gynecologic',
|
953 |
+
'MedicalClinic',
|
954 |
+
'Midwifery',
|
955 |
+
'Nursing',
|
956 |
+
'Obstetric',
|
957 |
+
'Oncologic',
|
958 |
+
'Optician',
|
959 |
+
'Optometric',
|
960 |
+
'Otolaryngologic',
|
961 |
+
'Pediatric',
|
962 |
+
'Pharmacy',
|
963 |
+
'Physician',
|
964 |
+
'Physiotherapy',
|
965 |
+
'PlasticSurgery',
|
966 |
+
'Podiatric',
|
967 |
+
'PrimaryCare',
|
968 |
+
'Psychiatric',
|
969 |
+
'PublicHealth',
|
970 |
+
),
|
971 |
+
'LodgingBusiness' => array(
|
972 |
+
'BedAndBreakfast',
|
973 |
+
'Campground',
|
974 |
+
'Hostel',
|
975 |
+
'Hotel',
|
976 |
+
'Motel',
|
977 |
+
'Resort',
|
978 |
+
),
|
979 |
+
'ProfessionalService',
|
980 |
+
'RadioStation',
|
981 |
+
'RealEstateAgent',
|
982 |
+
'RecyclingCenter',
|
983 |
+
'SelfStorage',
|
984 |
+
'ShoppingCenter',
|
985 |
+
'SportsActivityLocation' => array(
|
986 |
+
'BowlingAlley',
|
987 |
+
'ExerciseGym',
|
988 |
+
'GolfCourse',
|
989 |
+
'HealthClub',
|
990 |
+
'PublicSwimmingPool',
|
991 |
+
'SkiResort',
|
992 |
+
'SportsClub',
|
993 |
+
'StadiumOrArena',
|
994 |
+
'TennisComplex',
|
995 |
+
),
|
996 |
+
'Store' => array(
|
997 |
+
'AutoPartsStore',
|
998 |
+
'BikeStore',
|
999 |
+
'BookStore',
|
1000 |
+
'ClothingStore',
|
1001 |
+
'ComputerStore',
|
1002 |
+
'ConvenienceStore',
|
1003 |
+
'DepartmentStore',
|
1004 |
+
'ElectronicsStore',
|
1005 |
+
'Florist',
|
1006 |
+
'FurnitureStore',
|
1007 |
+
'GardenStore',
|
1008 |
+
'GroceryStore',
|
1009 |
+
'HardwareStore',
|
1010 |
+
'HobbyShop',
|
1011 |
+
'HomeGoodsStore',
|
1012 |
+
'JewelryStore',
|
1013 |
+
'LiquorStore',
|
1014 |
+
'MensClothingStore',
|
1015 |
+
'MobilePhoneStore',
|
1016 |
+
'MovieRentalStore',
|
1017 |
+
'MusicStore',
|
1018 |
+
'OfficeEquipmentStore',
|
1019 |
+
'OutletStore',
|
1020 |
+
'PawnShop',
|
1021 |
+
'PetStore',
|
1022 |
+
'ShoeStore',
|
1023 |
+
'SportingGoodsStore',
|
1024 |
+
'TireShop',
|
1025 |
+
'ToyStore',
|
1026 |
+
'WholesaleStore'
|
1027 |
+
),
|
1028 |
+
'TelevisionStation',
|
1029 |
+
'TouristInformationCenter',
|
1030 |
+
'TravelAgency'
|
1031 |
+
)
|
1032 |
+
);
|
1033 |
+
|
1034 |
+
return apply_filters('kcseo_site_types', $siteTypes);
|
1035 |
+
}
|
1036 |
+
|
1037 |
+
static function getCountryList() {
|
1038 |
+
$countryList = array(
|
1039 |
+
"AF" => "Afghanistan",
|
1040 |
+
"AX" => "Aland Islands",
|
1041 |
+
"AL" => "Albania",
|
1042 |
+
"DZ" => "Algeria",
|
1043 |
+
"AS" => "American Samoa",
|
1044 |
+
"AD" => "Andorra",
|
1045 |
+
"AO" => "Angola",
|
1046 |
+
"AI" => "Anguilla",
|
1047 |
+
"AQ" => "Antarctica",
|
1048 |
+
"AG" => "Antigua and Barbuda",
|
1049 |
+
"AR" => "Argentina",
|
1050 |
+
"AM" => "Armenia",
|
1051 |
+
"AW" => "Aruba",
|
1052 |
+
"AU" => "Australia",
|
1053 |
+
"AT" => "Austria",
|
1054 |
+
"AZ" => "Azerbaijan",
|
1055 |
+
"BS" => "Bahamas",
|
1056 |
+
"BH" => "Bahrain",
|
1057 |
+
"BD" => "Bangladesh",
|
1058 |
+
"BB" => "Barbados",
|
1059 |
+
"BY" => "Belarus",
|
1060 |
+
"BE" => "Belgium",
|
1061 |
+
"BZ" => "Belize",
|
1062 |
+
"BJ" => "Benin",
|
1063 |
+
"BM" => "Bermuda",
|
1064 |
+
"BT" => "Bhutan",
|
1065 |
+
"BO" => "Bolivia, Plurinational State of",
|
1066 |
+
"BQ" => "Bonaire, Sint Eustatius and Saba",
|
1067 |
+
"BA" => "Bosnia and Herzegovina",
|
1068 |
+
"BW" => "Botswana",
|
1069 |
+
"BV" => "Bouvet Island",
|
1070 |
+
"BR" => "Brazil",
|
1071 |
+
"IO" => "British Indian Ocean Territory",
|
1072 |
+
"BN" => "Brunei Darussalam",
|
1073 |
+
"BG" => "Bulgaria",
|
1074 |
+
"BF" => "Burkina Faso",
|
1075 |
+
"BI" => "Burundi",
|
1076 |
+
"KH" => "Cambodia",
|
1077 |
+
"CM" => "Cameroon",
|
1078 |
+
"CA" => "Canada",
|
1079 |
+
"CV" => "Cape Verde",
|
1080 |
+
"KY" => "Cayman Islands",
|
1081 |
+
"CF" => "Central African Republic",
|
1082 |
+
"TD" => "Chad",
|
1083 |
+
"CL" => "Chile",
|
1084 |
+
"CN" => "China",
|
1085 |
+
"CX" => "Christmas Island",
|
1086 |
+
"CC" => "Cocos (Keeling) Islands",
|
1087 |
+
"CO" => "Colombia",
|
1088 |
+
"KM" => "Comoros",
|
1089 |
+
"CG" => "Congo",
|
1090 |
+
"CD" => "Congo, the Democratic Republic of the",
|
1091 |
+
"CK" => "Cook Islands",
|
1092 |
+
"CR" => "Costa Rica",
|
1093 |
+
"CI" => "Côte d Ivoire",
|
1094 |
+
"HR" => "Croatia",
|
1095 |
+
"CU" => "Cuba",
|
1096 |
+
"CW" => "Curaçao",
|
1097 |
+
"CY" => "Cyprus",
|
1098 |
+
"CZ" => "Czech Republic",
|
1099 |
+
"DK" => "Denmark",
|
1100 |
+
"DJ" => "Djibouti",
|
1101 |
+
"DM" => "Dominica",
|
1102 |
+
"DO" => "Dominican Republic",
|
1103 |
+
"EC" => "Ecuador",
|
1104 |
+
"EG" => "Egypt",
|
1105 |
+
"SV" => "El Salvador",
|
1106 |
+
"GQ" => "Equatorial Guinea",
|
1107 |
+
"ER" => "Eritrea",
|
1108 |
+
"EE" => "Estonia",
|
1109 |
+
"ET" => "Ethiopia",
|
1110 |
+
"FK" => "Falkland Islands (Malvinas)",
|
1111 |
+
"FO" => "Faroe Islands",
|
1112 |
+
"FJ" => "Fiji",
|
1113 |
+
"FI" => "Finland",
|
1114 |
+
"FR" => "France",
|
1115 |
+
"GF" => "French Guiana",
|
1116 |
+
"PF" => "French Polynesia",
|
1117 |
+
"TF" => "French Southern Territories",
|
1118 |
+
"GA" => "Gabon",
|
1119 |
+
"GM" => "Gambia",
|
1120 |
+
"GE" => "Georgia",
|
1121 |
+
"DE" => "Germany",
|
1122 |
+
"GH" => "Ghana",
|
1123 |
+
"GI" => "Gibraltar",
|
1124 |
+
"GR" => "Greece",
|
1125 |
+
"GL" => "Greenland",
|
1126 |
+
"GD" => "Grenada",
|
1127 |
+
"GP" => "Guadeloupe",
|
1128 |
+
"GU" => "Guam",
|
1129 |
+
"GT" => "Guatemala",
|
1130 |
+
"GG" => "Guernsey",
|
1131 |
+
"GN" => "Guinea",
|
1132 |
+
"GW" => "Guinea-Bissau",
|
1133 |
+
"GY" => "Guyana",
|
1134 |
+
"HT" => "Haiti",
|
1135 |
+
"HM" => "Heard Island and McDonald Islands",
|
1136 |
+
"VA" => "Holy See (Vatican City State)",
|
1137 |
+
"HN" => "Honduras",
|
1138 |
+
"HK" => "Hong Kong",
|
1139 |
+
"HU" => "Hungary",
|
1140 |
+
"IS" => "Iceland",
|
1141 |
+
"IN" => "India",
|
1142 |
+
"ID" => "Indonesia",
|
1143 |
+
"IR" => "Iran, Islamic Republic of",
|
1144 |
+
"IQ" => "Iraq",
|
1145 |
+
"IE" => "Ireland",
|
1146 |
+
"IM" => "Isle of Man",
|
1147 |
+
"IL" => "Israel",
|
1148 |
+
"IT" => "Italy",
|
1149 |
+
"JM" => "Jamaica",
|
1150 |
+
"JP" => "Japan",
|
1151 |
+
"JE" => "Jersey",
|
1152 |
+
"JO" => "Jordan",
|
1153 |
+
"KZ" => "Kazakhstan",
|
1154 |
+
"KE" => "Kenya",
|
1155 |
+
"KI" => "Kiribati",
|
1156 |
+
"KP" => "Korea, Democratic People's Republic of",
|
1157 |
+
"KR" => "Korea, Republic of,",
|
1158 |
+
"KW" => "Kuwait",
|
1159 |
+
"KG" => "Kyrgyzstan",
|
1160 |
+
"LA" => "Lao Peoples Democratic Republic",
|
1161 |
+
"LV" => "Latvia",
|
1162 |
+
"LB" => "Lebanon",
|
1163 |
+
"LS" => "Lesotho",
|
1164 |
+
"LR" => "Liberia",
|
1165 |
+
"LY" => "Libya",
|
1166 |
+
"LI" => "Liechtenstein",
|
1167 |
+
"LT" => "Lithuania",
|
1168 |
+
"LU" => "Luxembourg",
|
1169 |
+
"MO" => "Macao",
|
1170 |
+
"MK" => "Macedonia, the former Yugoslav Republic of",
|
1171 |
+
"MG" => "Madagascar",
|
1172 |
+
"MW" => "Malawi",
|
1173 |
+
"MY" => "Malaysia",
|
1174 |
+
"MV" => "Maldives",
|
1175 |
+
"ML" => "Mali",
|
1176 |
+
"MT" => "Malta",
|
1177 |
+
"MH" => "Marshall Islands",
|
1178 |
+
"MQ" => "Martinique",
|
1179 |
+
"MR" => "Mauritania",
|
1180 |
+
"MU" => "Mauritius",
|
1181 |
+
"YT" => "Mayotte",
|
1182 |
+
"MX" => "Mexico",
|
1183 |
+
"FM" => "Micronesia, Federated States of",
|
1184 |
+
"MD" => "Moldova, Republic of",
|
1185 |
+
"MC" => "Monaco",
|
1186 |
+
"MN" => "Mongolia",
|
1187 |
+
"ME" => "Montenegro",
|
1188 |
+
"MS" => "Montserrat",
|
1189 |
+
"MA" => "Morocco",
|
1190 |
+
"MZ" => "Mozambique",
|
1191 |
+
"MM" => "Myanmar",
|
1192 |
+
"NA" => "Namibia",
|
1193 |
+
"NR" => "Nauru",
|
1194 |
+
"NP" => "Nepal",
|
1195 |
+
"NL" => "Netherlands",
|
1196 |
+
"NC" => "New Caledonia",
|
1197 |
+
"NZ" => "New Zealand",
|
1198 |
+
"NI" => "Nicaragua",
|
1199 |
+
"NE" => "Niger",
|
1200 |
+
"NG" => "Nigeria",
|
1201 |
+
"NU" => "Niue",
|
1202 |
+
"NF" => "Norfolk Island",
|
1203 |
+
"MP" => "Northern Mariana Islands",
|
1204 |
+
"NO" => "Norway",
|
1205 |
+
"OM" => "Oman",
|
1206 |
+
"PK" => "Pakistan",
|
1207 |
+
"PW" => "Palau",
|
1208 |
+
"PS" => "Palestine, State of",
|
1209 |
+
"PA" => "Panama",
|
1210 |
+
"PG" => "Papua New Guinea",
|
1211 |
+
"PY" => "Paraguay",
|
1212 |
+
"PE" => "Peru",
|
1213 |
+
"PH" => "Philippines",
|
1214 |
+
"PN" => "Pitcairn",
|
1215 |
+
"PL" => "Poland",
|
1216 |
+
"PT" => "Portugal",
|
1217 |
+
"PR" => "Puerto Rico",
|
1218 |
+
"QA" => "Qatar",
|
1219 |
+
"RE" => "Reunion",
|
1220 |
+
"RO" => "Romania",
|
1221 |
+
"RU" => "Russian Federation",
|
1222 |
+
"RW" => "Rwanda",
|
1223 |
+
"BL" => "Saint Barthélemy",
|
1224 |
+
"SH" => "Saint Helena, Ascension and Tristan da Cunha",
|
1225 |
+
"KN" => "Saint Kitts and Nevis",
|
1226 |
+
"LC" => "Saint Lucia",
|
1227 |
+
"MF" => "Saint Martin (French part)",
|
1228 |
+
"PM" => "Saint Pierre and Miquelon",
|
1229 |
+
"VC" => "Saint Vincent and the Grenadines",
|
1230 |
+
"WS" => "Samoa",
|
1231 |
+
"SM" => "San Marino",
|
1232 |
+
"ST" => "Sao Tome and Principe",
|
1233 |
+
"SA" => "Saudi Arabia",
|
1234 |
+
"SN" => "Senegal",
|
1235 |
+
"RS" => "Serbia",
|
1236 |
+
"SC" => "Seychelles",
|
1237 |
+
"SL" => "Sierra Leone",
|
1238 |
+
"SG" => "Singapore",
|
1239 |
+
"SX" => "Sint Maarten (Dutch part)",
|
1240 |
+
"SK" => "Slovakia",
|
1241 |
+
"SI" => "Slovenia",
|
1242 |
+
"SB" => "Solomon Islands",
|
1243 |
+
"SO" => "Somalia",
|
1244 |
+
"ZA" => "South Africa",
|
1245 |
+
"GS" => "South Georgia and the South Sandwich Islands",
|
1246 |
+
"SS" => "South Sudan",
|
1247 |
+
"ES" => "Spain",
|
1248 |
+
"LK" => "Sri Lanka",
|
1249 |
+
"SD" => "Sudan",
|
1250 |
+
"SR" => "Suriname",
|
1251 |
+
"SJ" => "Svalbard and Jan Mayen",
|
1252 |
+
"SZ" => "Swaziland",
|
1253 |
+
"SE" => "Sweden",
|
1254 |
+
"CH" => "Switzerland",
|
1255 |
+
"SY" => "Syrian Arab Republic",
|
1256 |
+
"TW" => "Taiwan, Province of China",
|
1257 |
+
"TJ" => "Tajikistan",
|
1258 |
+
"TZ" => "Tanzania, United Republic of",
|
1259 |
+
"TH" => "Thailand",
|
1260 |
+
"TL" => "Timor-Leste",
|
1261 |
+
"TG" => "Togo",
|
1262 |
+
"TK" => "Tokelau",
|
1263 |
+
"TO" => "Tonga",
|
1264 |
+
"TT" => "Trinidad and Tobago",
|
1265 |
+
"TN" => "Tunisia",
|
1266 |
+
"TR" => "Turkey",
|
1267 |
+
"TM" => "Turkmenistan",
|
1268 |
+
"TC" => "Turks and Caicos Islands",
|
1269 |
+
"TV" => "Tuvalu",
|
1270 |
+
"UG" => "Uganda",
|
1271 |
+
"UA" => "Ukraine",
|
1272 |
+
"AE" => "United Arab Emirates",
|
1273 |
+
"GB" => "United Kingdom",
|
1274 |
+
"US" => "United States",
|
1275 |
+
"UM" => "United States Minor Outlying Islands",
|
1276 |
+
"UY" => "Uruguay",
|
1277 |
+
"UZ" => "Uzbekistan",
|
1278 |
+
"VU" => "Vanuatu",
|
1279 |
+
"VE" => "Venezuela, Bolivarian Republic of",
|
1280 |
+
"VN" => "Viet Nam",
|
1281 |
+
"VG" => "Virgin Islands, British",
|
1282 |
+
"VI" => "Virgin Islands, U.S.",
|
1283 |
+
"WF" => "Wallis and Futuna",
|
1284 |
+
"EH" => "Western Sahara",
|
1285 |
+
"YE" => "Yemen",
|
1286 |
+
"ZM" => "Zambia",
|
1287 |
+
"ZW" => "Zimbabwe",
|
1288 |
+
);
|
1289 |
+
|
1290 |
+
return apply_filters('kcseo_country_list', $countryList);
|
1291 |
+
}
|
1292 |
+
|
1293 |
+
static function getContactTypes() {
|
1294 |
+
$contact_types = array(
|
1295 |
+
"Customer Service",
|
1296 |
+
"Technical Support",
|
1297 |
+
"Billing Support",
|
1298 |
+
"Bill Payment",
|
1299 |
+
"Sales",
|
1300 |
+
"Reservations",
|
1301 |
+
"Credit Card Support",
|
1302 |
+
"Emergency",
|
1303 |
+
"Baggage Tracking",
|
1304 |
+
"Roadside Assistance",
|
1305 |
+
"Package Tracking"
|
1306 |
+
);
|
1307 |
+
|
1308 |
+
return apply_filters('kcseo_contact_types', $contact_types);
|
1309 |
+
}
|
1310 |
+
|
1311 |
+
static function getLanguageList() {
|
1312 |
+
$language_list = array(
|
1313 |
+
'facebook' => __('Facebook'),
|
1314 |
+
'twitter' => __('Twitter'),
|
1315 |
+
'google-plus' => __('Google+'),
|
1316 |
+
'instagram' => __('Instagram'),
|
1317 |
+
'youtube' => __('Youtube'),
|
1318 |
+
'linkedin' => __('LinkedIn'),
|
1319 |
+
'myspace' => __('Myspace'),
|
1320 |
+
'pinterest' => __('Pinterest'),
|
1321 |
+
'soundcloud' => __('SoundCloud'),
|
1322 |
+
'tumblr' => __('Tumblr'),
|
1323 |
+
'wikidata' => __('Wikidata'),
|
1324 |
+
);
|
1325 |
+
|
1326 |
+
return apply_filters('kcseo_language_list', $language_list);
|
1327 |
+
}
|
1328 |
+
|
1329 |
+
static function getSocialList() {
|
1330 |
+
$socialList = array(
|
1331 |
+
'facebook' => __('Facebook'),
|
1332 |
+
'twitter' => __('Twitter'),
|
1333 |
+
'google-plus' => __('Google+'),
|
1334 |
+
'instagram' => __('Instagram'),
|
1335 |
+
'youtube' => __('Youtube'),
|
1336 |
+
'linkedin' => __('LinkedIn'),
|
1337 |
+
'myspace' => __('Myspace'),
|
1338 |
+
'pinterest' => __('Pinterest'),
|
1339 |
+
'soundcloud' => __('SoundCloud'),
|
1340 |
+
'tumblr' => __('Tumblr'),
|
1341 |
+
'wikidata' => __('Wikidata'),
|
1342 |
+
);
|
1343 |
+
|
1344 |
+
return apply_filters('kcseo_social_list', $socialList);
|
1345 |
+
}
|
1346 |
+
|
1347 |
+
}
|
lib/models/KcSeoSchemaModel.php
CHANGED
@@ -1,345 +1,372 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
if (!class_exists('KcSeoSchemaModel')):
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
343 |
if ( ! empty( $metaData['locationName'] ) ) {
|
344 |
$service["location"] = array(
|
345 |
"@type" => "Place",
|
@@ -347,1723 +374,371 @@ if (!class_exists('KcSeoSchemaModel')):
|
|
347 |
"address" => $KcSeoWPSchema->sanitizeOutPut( $metaData['locationAddress'] )
|
348 |
);
|
349 |
}*/
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
|
538 |
-
|
539 |
-
|
540 |
-
|
541 |
-
|
542 |
-
|
543 |
-
|
544 |
-
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
|
616 |
-
|
617 |
-
|
618 |
-
|
619 |
-
|
620 |
-
|
621 |
-
|
622 |
-
|
623 |
-
|
624 |
-
|
625 |
-
|
626 |
-
|
627 |
-
|
628 |
-
|
629 |
-
|
630 |
-
|
631 |
-
|
632 |
-
|
633 |
-
|
634 |
-
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
639 |
-
|
640 |
-
|
641 |
-
|
642 |
-
|
643 |
-
|
644 |
-
|
645 |
-
|
646 |
-
|
647 |
-
|
648 |
-
|
649 |
-
|
650 |
-
|
651 |
-
|
652 |
-
|
653 |
-
|
654 |
-
|
655 |
-
|
656 |
-
|
657 |
-
|
658 |
-
|
659 |
-
|
660 |
-
|
661 |
-
|
662 |
-
|
663 |
-
|
664 |
-
|
665 |
-
|
666 |
-
|
667 |
-
|
668 |
-
|
669 |
-
|
670 |
-
|
671 |
-
|
672 |
-
|
673 |
-
|
674 |
-
|
675 |
-
|
676 |
-
|
677 |
-
|
678 |
-
|
679 |
-
|
680 |
-
|
681 |
-
|
682 |
-
|
683 |
-
|
684 |
-
|
685 |
-
|
686 |
-
|
687 |
-
|
688 |
-
|
689 |
-
|
690 |
-
|
691 |
-
|
692 |
-
|
693 |
-
|
694 |
-
|
695 |
-
|
696 |
-
|
697 |
-
|
698 |
-
|
699 |
-
|
700 |
-
|
701 |
-
|
702 |
-
|
703 |
-
|
704 |
-
|
705 |
-
|
706 |
-
|
707 |
-
|
708 |
-
|
709 |
-
|
710 |
-
|
711 |
-
|
712 |
-
|
713 |
-
|
714 |
-
|
715 |
-
|
716 |
-
|
717 |
-
'class' => 'kcseo-date',
|
718 |
-
'required' => true,
|
719 |
-
'desc' => __('Like this: 2015-12-25', "wp-seo-structured-data-schema")
|
720 |
-
),
|
721 |
-
'dateModified' => array(
|
722 |
-
'title' => __('Modified date', "wp-seo-structured-data-schema"),
|
723 |
-
'type' => 'text',
|
724 |
-
'class' => 'kcseo-date',
|
725 |
-
'required' => true,
|
726 |
-
'desc' => __('Like this: 2015-12-25', "wp-seo-structured-data-schema")
|
727 |
-
),
|
728 |
-
'publisher' => array(
|
729 |
-
'title' => __('Publisher', "wp-seo-structured-data-schema"),
|
730 |
-
'type' => 'text',
|
731 |
-
'desc' => __('Publisher name or Organization name', "wp-seo-structured-data-schema"),
|
732 |
-
'required' => true
|
733 |
-
),
|
734 |
-
'publisherImage' => array(
|
735 |
-
'title' => __('Publisher Logo', "wp-seo-structured-data-schema"),
|
736 |
-
'type' => 'image',
|
737 |
-
'desc' => __('Logos should have a wide aspect ratio, not a square icon.<br>Logos should be no wider than 600px, and no taller than 60px.<br>Always retain the original aspect ratio of the logo when resizing. Ideally, logos are exactly 60px tall with width <= 600px. If maintaining a height of 60px would cause the width to exceed 600px, downscale the logo to exactly 600px wide and reduce the height accordingly below 60px to maintain the original aspect ratio.<br>', "wp-seo-structured-data-schema"),
|
738 |
-
'required' => true
|
739 |
-
),
|
740 |
-
'description' => array(
|
741 |
-
'title' => __('Description', "wp-seo-structured-data-schema"),
|
742 |
-
'type' => 'textarea',
|
743 |
-
'desc' => __('Short description', "wp-seo-structured-data-schema")
|
744 |
-
),
|
745 |
-
'articleBody' => array(
|
746 |
-
'title' => __('Article body', "wp-seo-structured-data-schema"),
|
747 |
-
'type' => 'textarea',
|
748 |
-
'desc' => __('Article content', "wp-seo-structured-data-schema")
|
749 |
-
),
|
750 |
-
'alternativeHeadline' => array(
|
751 |
-
'title' => __('Alternative headline', "wp-seo-structured-data-schema"),
|
752 |
-
'type' => 'text',
|
753 |
-
'desc' => __('A secondary headline for the article.', "wp-seo-structured-data-schema")
|
754 |
-
),
|
755 |
-
)
|
756 |
-
),
|
757 |
-
'blog_posting' => array(
|
758 |
-
'pro' => false,
|
759 |
-
'title' => __('Blog Posting', "wp-seo-structured-data-schema"),
|
760 |
-
'fields' => array(
|
761 |
-
'active' => array(
|
762 |
-
'type' => 'checkbox'
|
763 |
-
),
|
764 |
-
'headline' => array(
|
765 |
-
'title' => __('Headline', "wp-seo-structured-data-schema"),
|
766 |
-
'type' => 'text',
|
767 |
-
'desc' => __('Blog posting title', "wp-seo-structured-data-schema"),
|
768 |
-
'required' => true
|
769 |
-
),
|
770 |
-
'mainEntityOfPage' => array(
|
771 |
-
'title' => __('Page URL', "wp-seo-structured-data-schema"),
|
772 |
-
'type' => 'url',
|
773 |
-
'desc' => __('The canonical URL of the article page', "wp-seo-structured-data-schema"),
|
774 |
-
'required' => true
|
775 |
-
),
|
776 |
-
'author' => array(
|
777 |
-
'title' => __('Author name', "wp-seo-structured-data-schema"),
|
778 |
-
'type' => 'text',
|
779 |
-
'desc' => __('Author display name', "wp-seo-structured-data-schema"),
|
780 |
-
'required' => true
|
781 |
-
),
|
782 |
-
'image' => array(
|
783 |
-
'title' => __('Feature Image', "wp-seo-structured-data-schema"),
|
784 |
-
'type' => 'image',
|
785 |
-
'desc' => __("The representative image of the article. Only a marked-up image that directly belongs to the article should be specified.<br> Images should be at least 696 pixels wide. <br>Images should be in .jpg, .png, or. gif format.", "wp-seo-structured-data-schema"),
|
786 |
-
'required' => true
|
787 |
-
),
|
788 |
-
'datePublished' => array(
|
789 |
-
'title' => __('Published date', "wp-seo-structured-data-schema"),
|
790 |
-
'type' => 'text',
|
791 |
-
'class' => 'kcseo-date',
|
792 |
-
'desc' => __('Like this: 2015-12-25', "wp-seo-structured-data-schema"),
|
793 |
-
'required' => true
|
794 |
-
),
|
795 |
-
'dateModified' => array(
|
796 |
-
'title' => __('Modified date', "wp-seo-structured-data-schema"),
|
797 |
-
'type' => 'text',
|
798 |
-
'class' => 'kcseo-date',
|
799 |
-
'desc' => __('Like this: 2015-12-25', "wp-seo-structured-data-schema"),
|
800 |
-
'required' => true
|
801 |
-
),
|
802 |
-
'publisher' => array(
|
803 |
-
'title' => __('Publisher', "wp-seo-structured-data-schema"),
|
804 |
-
'type' => 'text',
|
805 |
-
'desc' => __('Publisher name or Organization name', "wp-seo-structured-data-schema"),
|
806 |
-
'required' => true
|
807 |
-
),
|
808 |
-
'publisherImage' => array(
|
809 |
-
'title' => __('Publisher Logo', "wp-seo-structured-data-schema"),
|
810 |
-
'type' => 'image',
|
811 |
-
'desc' => __("Logos should have a wide aspect ratio, not a square icon.<br>Logos should be no wider than 600px, and no taller than 60px.<br>Always retain the original aspect ratio of the logo when resizing. Ideally, logos are exactly 60px tall with width <= 600px. If maintaining a height of 60px would cause the width to exceed 600px, downscale the logo to exactly 600px wide and reduce the height accordingly below 60px to maintain the original aspect ratio.<br>", "wp-seo-structured-data-schema"),
|
812 |
-
'required' => true
|
813 |
-
),
|
814 |
-
'description' => array(
|
815 |
-
'title' => __('Description', "wp-seo-structured-data-schema"),
|
816 |
-
'type' => 'textarea',
|
817 |
-
'desc' => __('Short description', "wp-seo-structured-data-schema")
|
818 |
-
),
|
819 |
-
'articleBody' => array(
|
820 |
-
'title' => __('Article body', "wp-seo-structured-data-schema"),
|
821 |
-
'type' => 'textarea',
|
822 |
-
'desc' => __('Article content', "wp-seo-structured-data-schema")
|
823 |
-
)
|
824 |
-
)
|
825 |
-
),
|
826 |
-
'news_article' => array(
|
827 |
-
'pro' => false,
|
828 |
-
'title' => __('News Article', "wp-seo-structured-data-schema"),
|
829 |
-
'fields' => array(
|
830 |
-
'active' => array(
|
831 |
-
'type' => 'checkbox'
|
832 |
-
),
|
833 |
-
'headline' => array(
|
834 |
-
'title' => __('Headline', "wp-seo-structured-data-schema"),
|
835 |
-
'type' => 'text',
|
836 |
-
'desc' => __('Article title', "wp-seo-structured-data-schema"),
|
837 |
-
'required' => true
|
838 |
-
),
|
839 |
-
'mainEntityOfPage' => array(
|
840 |
-
'title' => __('Page URL', "wp-seo-structured-data-schema"),
|
841 |
-
'type' => 'url',
|
842 |
-
'desc' => __('The canonical URL of the article page', "wp-seo-structured-data-schema"),
|
843 |
-
'required' => true
|
844 |
-
),
|
845 |
-
'author' => array(
|
846 |
-
'title' => __('Author', "wp-seo-structured-data-schema"),
|
847 |
-
'type' => 'text',
|
848 |
-
'desc' => __('Author display name', "wp-seo-structured-data-schema"),
|
849 |
-
'required' => true
|
850 |
-
),
|
851 |
-
'image' => array(
|
852 |
-
'title' => __('Image', "wp-seo-structured-data-schema"),
|
853 |
-
'type' => 'image',
|
854 |
-
'desc' => __("The representative image of the article. Only a marked-up image that directly belongs to the article should be specified.<br> Images should be at least 696 pixels wide. <br>Images should be in .jpg, .png, or. gif format.", "wp-seo-structured-data-schema"),
|
855 |
-
'required' => true
|
856 |
-
),
|
857 |
-
'datePublished' => array(
|
858 |
-
'title' => __('Published date', "wp-seo-structured-data-schema"),
|
859 |
-
'type' => 'text',
|
860 |
-
'class' => 'kcseo-date',
|
861 |
-
'desc' => __('Like this: 2015-12-25', "wp-seo-structured-data-schema"),
|
862 |
-
'required' => true
|
863 |
-
),
|
864 |
-
'dateModified' => array(
|
865 |
-
'title' => __('Modified date', "wp-seo-structured-data-schema"),
|
866 |
-
'type' => 'text',
|
867 |
-
'class' => 'kcseo-date',
|
868 |
-
'required' => true,
|
869 |
-
'desc' => __('Like this: 2015-12-25', "wp-seo-structured-data-schema")
|
870 |
-
),
|
871 |
-
'publisher' => array(
|
872 |
-
'title' => __('Publisher', "wp-seo-structured-data-schema"),
|
873 |
-
'type' => 'text',
|
874 |
-
'desc' => __('Publisher name or Organization name', "wp-seo-structured-data-schema"),
|
875 |
-
'required' => true
|
876 |
-
),
|
877 |
-
'publisherImage' => array(
|
878 |
-
'title' => __('Publisher Logo', "wp-seo-structured-data-schema"),
|
879 |
-
'type' => 'image',
|
880 |
-
'desc' => __('Logos should have a wide aspect ratio, not a square icon.<br>Logos should be no wider than 600px, and no taller than 60px.<br>Always retain the original aspect ratio of the logo when resizing. Ideally, logos are exactly 60px tall with width <= 600px. If maintaining a height of 60px would cause the width to exceed 600px, downscale the logo to exactly 600px wide and reduce the height accordingly below 60px to maintain the original aspect ratio.<br>', "wp-seo-structured-data-schema"),
|
881 |
-
'required' => true
|
882 |
-
),
|
883 |
-
'description' => array(
|
884 |
-
'title' => __('Description', "wp-seo-structured-data-schema"),
|
885 |
-
'type' => 'textarea',
|
886 |
-
'desc' => __('Short description', "wp-seo-structured-data-schema")
|
887 |
-
),
|
888 |
-
'articleBody' => array(
|
889 |
-
'title' => __('Article body', "wp-seo-structured-data-schema"),
|
890 |
-
'type' => 'textarea',
|
891 |
-
'desc' => __('Article body content', "wp-seo-structured-data-schema")
|
892 |
-
)
|
893 |
-
)
|
894 |
-
),
|
895 |
-
'event' => array(
|
896 |
-
'pro' => false,
|
897 |
-
'title' => __('Event', "wp-seo-structured-data-schema"),
|
898 |
-
'fields' => array(
|
899 |
-
'active' => array(
|
900 |
-
'type' => 'checkbox'
|
901 |
-
),
|
902 |
-
'name' => array(
|
903 |
-
'title' => __('Name', "wp-seo-structured-data-schema"),
|
904 |
-
'type' => 'text',
|
905 |
-
'required' => true,
|
906 |
-
'desc' => __("The name of the event.", "wp-seo-structured-data-schema")
|
907 |
-
),
|
908 |
-
'locationName' => array(
|
909 |
-
'title' => __('Location name', "wp-seo-structured-data-schema"),
|
910 |
-
'type' => 'text',
|
911 |
-
'required' => true,
|
912 |
-
'desc' => __("Event Location name", "wp-seo-structured-data-schema")
|
913 |
-
),
|
914 |
-
'locationAddress' => array(
|
915 |
-
'title' => __('Location address', "wp-seo-structured-data-schema"),
|
916 |
-
'type' => 'text',
|
917 |
-
'required' => true,
|
918 |
-
'desc' => __("The location of for example where the event is happening, an organization is located, or where an action takes place.", "wp-seo-structured-data-schema")
|
919 |
-
),
|
920 |
-
'startDate' => array(
|
921 |
-
'title' => __('Start date', "wp-seo-structured-data-schema"),
|
922 |
-
'type' => 'text',
|
923 |
-
'class' => 'kcseo-date',
|
924 |
-
'required' => true,
|
925 |
-
'desc' => __("Event start date", "wp-seo-structured-data-schema")
|
926 |
-
),
|
927 |
-
'endDate' => array(
|
928 |
-
'title' => __('End date (Recommended)', "wp-seo-structured-data-schema"),
|
929 |
-
'type' => 'text',
|
930 |
-
'class' => 'kcseo-date',
|
931 |
-
'desc' => __("Event end date", "wp-seo-structured-data-schema")
|
932 |
-
),
|
933 |
-
'description' => array(
|
934 |
-
'title' => __('Description (Recommended)', "wp-seo-structured-data-schema"),
|
935 |
-
'type' => 'textarea',
|
936 |
-
'desc' => __("Event description", "wp-seo-structured-data-schema")
|
937 |
-
),
|
938 |
-
'performerName' => array(
|
939 |
-
'title' => __('Performer Name (Recommended)', "wp-seo-structured-data-schema"),
|
940 |
-
'type' => 'text',
|
941 |
-
'desc' => __("The performer's name.", "wp-seo-structured-data-schema")
|
942 |
-
),
|
943 |
-
'image' => array(
|
944 |
-
'title' => __('Image URL (Recommended)', "wp-seo-structured-data-schema"),
|
945 |
-
'type' => 'url',
|
946 |
-
'desc' => __("URL of an image or logo for the event or tour", "wp-seo-structured-data-schema")
|
947 |
-
),
|
948 |
-
'price' => array(
|
949 |
-
'title' => __('Price (Recommended)', "wp-seo-structured-data-schema"),
|
950 |
-
'type' => 'number',
|
951 |
-
'attr' => 'step="any"',
|
952 |
-
'desc' => __("This is highly recommended. The lowest available price, including service charges and fees, of this type of ticket. <span class='required'>Not required but (Recommended)</span>", "wp-seo-structured-data-schema")
|
953 |
-
),
|
954 |
-
'priceCurrency' => array(
|
955 |
-
'title' => __('Price currency', "wp-seo-structured-data-schema"),
|
956 |
-
'type' => 'text',
|
957 |
-
'desc' => __("The 3-letter currency code. (USD)", "wp-seo-structured-data-schema")
|
958 |
-
),
|
959 |
-
'url' => array(
|
960 |
-
'title' => 'URL (Recommended)',
|
961 |
-
'type' => 'url',
|
962 |
-
'placeholder' => 'URL',
|
963 |
-
'desc' => __("A link to the event's details page. <span class='required'>Not required but (Recommended)</span>", "wp-seo-structured-data-schema")
|
964 |
-
),
|
965 |
-
)
|
966 |
-
),
|
967 |
-
'product' => array(
|
968 |
-
'pro' => false,
|
969 |
-
'title' => __('Product', "wp-seo-structured-data-schema"),
|
970 |
-
'fields' => array(
|
971 |
-
'active' => array(
|
972 |
-
'type' => 'checkbox'
|
973 |
-
),
|
974 |
-
'name' => array(
|
975 |
-
'title' => __('Name', "wp-seo-structured-data-schema"),
|
976 |
-
'type' => 'text',
|
977 |
-
'required' => true,
|
978 |
-
'desc' => __("The name of the product.", "wp-seo-structured-data-schema")
|
979 |
-
),
|
980 |
-
'image' => array(
|
981 |
-
'title' => __('Image', "wp-seo-structured-data-schema"),
|
982 |
-
'type' => 'image',
|
983 |
-
'desc' => __("The URL of a product photo. Pictures clearly showing the product, e.g. against a white background, are preferred.", "wp-seo-structured-data-schema")
|
984 |
-
),
|
985 |
-
'description' => array(
|
986 |
-
'title' => __('Description', "wp-seo-structured-data-schema"),
|
987 |
-
'type' => 'textarea',
|
988 |
-
'desc' => __("Product description.", "wp-seo-structured-data-schema")
|
989 |
-
),
|
990 |
-
'brand' => array(
|
991 |
-
'title' => __('Brand', "wp-seo-structured-data-schema"),
|
992 |
-
'type' => 'text',
|
993 |
-
'desc' => __("The brand of the product.", "wp-seo-structured-data-schema")
|
994 |
-
),
|
995 |
-
'ratingValue' => array(
|
996 |
-
'title' => __('Ratting value', "wp-seo-structured-data-schema"),
|
997 |
-
'type' => 'number',
|
998 |
-
'attr' => 'step="any"',
|
999 |
-
'desc' => __("Rating value. (1 , 2.5, 3, 5 etc)", "wp-seo-structured-data-schema")
|
1000 |
-
),
|
1001 |
-
'reviewCount' => array(
|
1002 |
-
'title' => __('Total review count', "wp-seo-structured-data-schema"),
|
1003 |
-
'type' => 'number',
|
1004 |
-
'attr' => 'step="any"',
|
1005 |
-
'desc' => __("Rating ratting value. <span class='required'>This is required if (Ratting value) is given</span>", "wp-seo-structured-data-schema")
|
1006 |
-
),
|
1007 |
-
'price' => array(
|
1008 |
-
'title' => __('Price', "wp-seo-structured-data-schema"),
|
1009 |
-
'type' => 'number',
|
1010 |
-
'attr' => 'step="any"',
|
1011 |
-
'desc' => __("The lowest available price, including service charges and fees, of this type of ticket.", "wp-seo-structured-data-schema")
|
1012 |
-
),
|
1013 |
-
'priceCurrency' => array(
|
1014 |
-
'title' => __('Price currency', "wp-seo-structured-data-schema"),
|
1015 |
-
'type' => 'text',
|
1016 |
-
'desc' => __("The 3-letter currency code.", "wp-seo-structured-data-schema")
|
1017 |
-
),
|
1018 |
-
'availability' => array(
|
1019 |
-
'title' => 'Availability',
|
1020 |
-
'type' => 'select',
|
1021 |
-
'empty' => "Select one",
|
1022 |
-
'options' => array(
|
1023 |
-
'http://schema.org/InStock' => 'InStock',
|
1024 |
-
'http://schema.org/InStoreOnly' => 'InStoreOnly',
|
1025 |
-
'http://schema.org/OutOfStock' => 'OutOfStock',
|
1026 |
-
'http://schema.org/SoldOut' => 'SoldOut',
|
1027 |
-
'http://schema.org/OnlineOnly' => 'OnlineOnly',
|
1028 |
-
'http://schema.org/LimitedAvailability' => 'LimitedAvailability',
|
1029 |
-
'http://schema.org/Discontinued' => 'Discontinued',
|
1030 |
-
'http://schema.org/PreOrder' => 'PreOrder',
|
1031 |
-
),
|
1032 |
-
'desc' => __("Select a availability type", "wp-seo-structured-data-schema")
|
1033 |
-
),
|
1034 |
-
'itemCondition' => array(
|
1035 |
-
'title' => 'Product condition',
|
1036 |
-
'type' => 'select',
|
1037 |
-
'empty' => "Select one",
|
1038 |
-
'options' => array(
|
1039 |
-
'http://schema.org/NewCondition' => 'NewCondition',
|
1040 |
-
'http://schema.org/UsedCondition' => 'UsedCondition',
|
1041 |
-
'http://schema.org/DamagedCondition' => 'DamagedCondition',
|
1042 |
-
'http://schema.org/RefurbishedCondition' => 'RefurbishedCondition',
|
1043 |
-
),
|
1044 |
-
'desc' => __("Select a condition", "wp-seo-structured-data-schema")
|
1045 |
-
),
|
1046 |
-
'url' => array(
|
1047 |
-
'title' => __('Product URL', "wp-seo-structured-data-schema"),
|
1048 |
-
'type' => 'url',
|
1049 |
-
'desc' => __("A URL to the product web page (that includes the Offer). (Don't use offerURL for markup that appears on the product page itself.)", "wp-seo-structured-data-schema")
|
1050 |
-
),
|
1051 |
-
)
|
1052 |
-
),
|
1053 |
-
'video' => array(
|
1054 |
-
'pro' => false,
|
1055 |
-
'title' => __('Video', "wp-seo-structured-data-schema"),
|
1056 |
-
'fields' => array(
|
1057 |
-
'active' => array(
|
1058 |
-
'type' => 'checkbox'
|
1059 |
-
),
|
1060 |
-
'name' => array(
|
1061 |
-
'title' => __('Name', "wp-seo-structured-data-schema"),
|
1062 |
-
'type' => 'text',
|
1063 |
-
'required' => true,
|
1064 |
-
'desc' => __("The title of the video", "wp-seo-structured-data-schema")
|
1065 |
-
),
|
1066 |
-
'description' => array(
|
1067 |
-
'title' => __('Description', "wp-seo-structured-data-schema"),
|
1068 |
-
'type' => 'textarea',
|
1069 |
-
'required' => true,
|
1070 |
-
'desc' => __("The description of the video", "wp-seo-structured-data-schema")
|
1071 |
-
),
|
1072 |
-
'thumbnailUrl' => array(
|
1073 |
-
'title' => 'Thumbnail URL',
|
1074 |
-
'type' => 'url',
|
1075 |
-
'placeholder' => "URL",
|
1076 |
-
'required' => true,
|
1077 |
-
'desc' => __("A URL pointing to the video thumbnail image file. Images must be at least 160x90 pixels and at most 1920x1080 pixels.", "wp-seo-structured-data-schema")
|
1078 |
-
),
|
1079 |
-
'uploadDate' => array(
|
1080 |
-
'title' => __('Updated date', "wp-seo-structured-data-schema"),
|
1081 |
-
'type' => 'text',
|
1082 |
-
'class' => 'kcseo-date',
|
1083 |
-
'desc' => __('2015-02-05T08:00:00+08:00', "wp-seo-structured-data-schema")
|
1084 |
-
),
|
1085 |
-
'duration' => array(
|
1086 |
-
'title' => __('Duration', "wp-seo-structured-data-schema"),
|
1087 |
-
'type' => 'text',
|
1088 |
-
'desc' => __("The duration of the video in ISO 8601 format.(PT1M33S)", "wp-seo-structured-data-schema")
|
1089 |
-
),
|
1090 |
-
'contentUrl' => array(
|
1091 |
-
'title' => 'Content URL',
|
1092 |
-
'type' => 'url',
|
1093 |
-
'placeholder' => 'URL',
|
1094 |
-
'desc' => __("A URL pointing to the actual video media file. This file should be in .mpg, .mpeg, .mp4, .m4v, .mov, .wmv, .asf, .avi, .ra, .ram, .rm, .flv, or other video file format.", "wp-seo-structured-data-schema")
|
1095 |
-
),
|
1096 |
-
'embedUrl' => array(
|
1097 |
-
'title' => 'Embed URL',
|
1098 |
-
'placeholder' => 'URL',
|
1099 |
-
'type' => 'url',
|
1100 |
-
'desc' => __("A URL pointing to a player for the specific video. Usually this is the information in the src element of an < embed> tag.Example: Dailymotion: http://www.dailymotion.com/swf/x1o2g.", "wp-seo-structured-data-schema")
|
1101 |
-
),
|
1102 |
-
'interactionCount' => array(
|
1103 |
-
'title' => __('Interaction count', "wp-seo-structured-data-schema"),
|
1104 |
-
'type' => 'text',
|
1105 |
-
'desc' => __("The number of times the video has been viewed.", "wp-seo-structured-data-schema")
|
1106 |
-
),
|
1107 |
-
'expires' => array(
|
1108 |
-
'title' => __('Expires', "wp-seo-structured-data-schema"),
|
1109 |
-
'type' => 'text',
|
1110 |
-
'class' => 'kcseo-date',
|
1111 |
-
'desc' => __("Like this: 2015-12-25", "wp-seo-structured-data-schema")
|
1112 |
-
),
|
1113 |
-
)
|
1114 |
-
),
|
1115 |
-
'service' => array(
|
1116 |
-
'pro' => false,
|
1117 |
-
'title' => __('Service', "wp-seo-structured-data-schema"),
|
1118 |
-
'fields' => array(
|
1119 |
-
'active' => array(
|
1120 |
-
'type' => 'checkbox'
|
1121 |
-
),
|
1122 |
-
'name' => array(
|
1123 |
-
'title' => __('Name', "wp-seo-structured-data-schema"),
|
1124 |
-
'type' => 'text',
|
1125 |
-
'required' => true,
|
1126 |
-
'desc' => __("The name of the Service.", "wp-seo-structured-data-schema")
|
1127 |
-
),
|
1128 |
-
'serviceType' => array(
|
1129 |
-
'title' => __('Service type', "wp-seo-structured-data-schema"),
|
1130 |
-
'type' => 'text',
|
1131 |
-
'required' => true,
|
1132 |
-
'desc' => __("The type of service being offered, e.g. veterans' benefits, emergency relief, etc.", "wp-seo-structured-data-schema")
|
1133 |
-
),
|
1134 |
-
'additionalType' => array(
|
1135 |
-
'title' => 'Additional type(URL)',
|
1136 |
-
'type' => 'url',
|
1137 |
-
'placeholder' => 'URL',
|
1138 |
-
'desc' => __("An additional type for the service, typically used for adding more specific types from external vocabularies in microdata syntax.", "wp-seo-structured-data-schema")
|
1139 |
-
),
|
1140 |
-
'award' => array(
|
1141 |
-
'title' => __('Award', "wp-seo-structured-data-schema"),
|
1142 |
-
'type' => 'text',
|
1143 |
-
'desc' => __("An award won by or for this service.", "wp-seo-structured-data-schema")
|
1144 |
-
),
|
1145 |
-
'category' => array(
|
1146 |
-
'title' => __('Category', "wp-seo-structured-data-schema"),
|
1147 |
-
'type' => 'text',
|
1148 |
-
'desc' => __("A category for the service.", "wp-seo-structured-data-schema")
|
1149 |
-
),
|
1150 |
-
'providerMobility' => array(
|
1151 |
-
'title' => __('Provider mobility', "wp-seo-structured-data-schema"),
|
1152 |
-
'type' => 'text',
|
1153 |
-
'desc' => __("Indicates the mobility of a provided service (e.g. 'static', 'dynamic').", "wp-seo-structured-data-schema")
|
1154 |
-
),
|
1155 |
-
'description' => array(
|
1156 |
-
'title' => 'Description',
|
1157 |
-
'type' => 'textarea',
|
1158 |
-
'require' => true,
|
1159 |
-
'desc' => __("A short description of the service.", "wp-seo-structured-data-schema")
|
1160 |
-
),
|
1161 |
-
'image' => array(
|
1162 |
-
'title' => 'Image URL',
|
1163 |
-
'type' => 'url',
|
1164 |
-
'require' => false,
|
1165 |
-
'desc' => __("An image of the service. This should be a URL.", "wp-seo-structured-data-schema")
|
1166 |
-
),
|
1167 |
-
'mainEntityOfPage' => array(
|
1168 |
-
'title' => 'Main entity of page URL',
|
1169 |
-
'type' => 'url',
|
1170 |
-
'require' => false,
|
1171 |
-
'desc' => __("Indicates a page (or other CreativeWork) for which this thing is the main entity being described.", "wp-seo-structured-data-schema")
|
1172 |
-
),
|
1173 |
-
'sameAs' => array(
|
1174 |
-
'title' => 'Same as URL',
|
1175 |
-
'type' => 'url',
|
1176 |
-
'placeholder' => 'URL',
|
1177 |
-
'desc' => __("URL of a reference Web page that unambiguously indicates the service's identity. E.g. the URL of the service's Wikipedia page, Freebase page, or official website.", "wp-seo-structured-data-schema")
|
1178 |
-
),
|
1179 |
-
'url' => array(
|
1180 |
-
'title' => 'Url of the service',
|
1181 |
-
'type' => 'url',
|
1182 |
-
'placeholder' => 'URL',
|
1183 |
-
'desc' => __("URL of the service.", "wp-seo-structured-data-schema")
|
1184 |
-
),
|
1185 |
-
'alternateName' => array(
|
1186 |
-
'title' => __('Alternate name', "wp-seo-structured-data-schema"),
|
1187 |
-
'type' => 'text',
|
1188 |
-
'desc' => __('An alias for the service.', "wp-seo-structured-data-schema")
|
1189 |
-
),
|
1190 |
-
)
|
1191 |
-
),
|
1192 |
-
'review' => array(
|
1193 |
-
'pro' => false,
|
1194 |
-
'title' => __('Review', "wp-seo-structured-data-schema"),
|
1195 |
-
'fields' => array(
|
1196 |
-
'active' => array(
|
1197 |
-
'type' => 'checkbox'
|
1198 |
-
),
|
1199 |
-
'itemName' => array(
|
1200 |
-
'title' => __('Name of the reviewed item', "wp-seo-structured-data-schema"),
|
1201 |
-
'type' => 'text',
|
1202 |
-
'required' => true,
|
1203 |
-
'desc' => __("The item that is being reviewed.", "wp-seo-structured-data-schema")
|
1204 |
-
),
|
1205 |
-
'reviewBody' => array(
|
1206 |
-
'title' => __('Review body', "wp-seo-structured-data-schema"),
|
1207 |
-
'type' => 'textarea',
|
1208 |
-
'required' => true,
|
1209 |
-
'desc' => __("The actual body of the review.", "wp-seo-structured-data-schema")
|
1210 |
-
),
|
1211 |
-
'name' => array(
|
1212 |
-
'title' => __('Review name', "wp-seo-structured-data-schema"),
|
1213 |
-
'type' => 'text',
|
1214 |
-
'required' => true,
|
1215 |
-
'desc' => __("A particular name for the review.", "wp-seo-structured-data-schema")
|
1216 |
-
),
|
1217 |
-
'author' => array(
|
1218 |
-
'title' => __('Author', "wp-seo-structured-data-schema"),
|
1219 |
-
'type' => 'text',
|
1220 |
-
'required' => true,
|
1221 |
-
'author' => 'Author name',
|
1222 |
-
'desc' => __("The author of the review. The reviewer’s name needs to be a valid name.", "wp-seo-structured-data-schema")
|
1223 |
-
),
|
1224 |
-
'datePublished' => array(
|
1225 |
-
'title' => __('Date of Published', "wp-seo-structured-data-schema"),
|
1226 |
-
'type' => 'text',
|
1227 |
-
'class' => 'kcseo-date',
|
1228 |
-
'desc' => __("Like this: 2015-12-25", "wp-seo-structured-data-schema")
|
1229 |
-
),
|
1230 |
-
'ratingValue' => array(
|
1231 |
-
'title' => __('Rating value', "wp-seo-structured-data-schema"),
|
1232 |
-
'type' => 'number',
|
1233 |
-
'attr' => 'step="any"',
|
1234 |
-
'desc' => __("A numerical quality rating for the item.", "wp-seo-structured-data-schema")
|
1235 |
-
),
|
1236 |
-
'bestRating' => array(
|
1237 |
-
'title' => __('Best rating', "wp-seo-structured-data-schema"),
|
1238 |
-
'type' => 'number',
|
1239 |
-
'attr' => 'step="any"',
|
1240 |
-
'desc' => __("The highest value allowed in this rating system.", "wp-seo-structured-data-schema")
|
1241 |
-
),
|
1242 |
-
'worstRating' => array(
|
1243 |
-
'title' => __('Worst rating', "wp-seo-structured-data-schema"),
|
1244 |
-
'type' => 'number',
|
1245 |
-
'attr' => 'step="any"',
|
1246 |
-
'desc' => __("The lowest value allowed in this rating system. * Required if the rating system is not on a 5-point scale. If worstRating is omitted, 1 is assumed.", "wp-seo-structured-data-schema")
|
1247 |
-
),
|
1248 |
-
'publisher' => array(
|
1249 |
-
'title' => __('Name of the organization', "wp-seo-structured-data-schema"),
|
1250 |
-
'type' => 'text',
|
1251 |
-
'desc' => __('The publisher of the review.', "wp-seo-structured-data-schema")
|
1252 |
-
)
|
1253 |
-
)
|
1254 |
-
),
|
1255 |
-
'aggregate_rating' => array(
|
1256 |
-
'pro' => false,
|
1257 |
-
'title' => __('Aggregate Ratings', "wp-seo-structured-data-schema"),
|
1258 |
-
'fields' => array(
|
1259 |
-
'active' => array(
|
1260 |
-
'type' => 'checkbox'
|
1261 |
-
),
|
1262 |
-
'schema_type' => array(
|
1263 |
-
'title' => __('Schema type', "wp-seo-structured-data-schema"),
|
1264 |
-
'type' => 'schema_type',
|
1265 |
-
'required' => true,
|
1266 |
-
'options' => $this->site_type(),
|
1267 |
-
'empty' => "Select one",
|
1268 |
-
'desc' => __("Use the most appropriate schema type for what is being reviewed.", "wp-seo-structured-data-schema")
|
1269 |
-
),
|
1270 |
-
'name' => array(
|
1271 |
-
'title' => __('Name of the item', "wp-seo-structured-data-schema"),
|
1272 |
-
'type' => 'text',
|
1273 |
-
'required' => true,
|
1274 |
-
'desc' => __("The item that is being rated.", "wp-seo-structured-data-schema")
|
1275 |
-
),
|
1276 |
-
'image' => array(
|
1277 |
-
'title' => 'Image',
|
1278 |
-
'type' => 'image',
|
1279 |
-
'required' => true,
|
1280 |
-
'holderClass' => 'kSeo-hidden aggregate-except-organization-holder'
|
1281 |
-
),
|
1282 |
-
'priceRange' => array(
|
1283 |
-
'title' => 'Price Range (Recommended)',
|
1284 |
-
'type' => 'text',
|
1285 |
-
'holderClass' => 'kSeo-hidden aggregate-except-organization-holder',
|
1286 |
-
'desc' => __("The price range of the business, for example $$$.", "wp-seo-structured-data-schema")
|
1287 |
-
),
|
1288 |
-
'telephone' => array(
|
1289 |
-
'title' => 'Telephone (Recommended)',
|
1290 |
-
'type' => 'text',
|
1291 |
-
'holderClass' => 'kSeo-hidden aggregate-except-organization-holder'
|
1292 |
-
),
|
1293 |
-
'address' => array(
|
1294 |
-
'title' => 'Address (Recommended)',
|
1295 |
-
'type' => 'text',
|
1296 |
-
'holderClass' => 'kSeo-hidden aggregate-except-organization-holder',
|
1297 |
-
),
|
1298 |
-
'description' => array(
|
1299 |
-
'title' => __('Description', "wp-seo-structured-data-schema"),
|
1300 |
-
'type' => 'textarea',
|
1301 |
-
'desc' => __("Description for thr review", "wp-seo-structured-data-schema")
|
1302 |
-
),
|
1303 |
-
'ratingCount' => array(
|
1304 |
-
'title' => __('Rating Count', "wp-seo-structured-data-schema"),
|
1305 |
-
'type' => 'number',
|
1306 |
-
'attr' => 'step="any"',
|
1307 |
-
'required' => true,
|
1308 |
-
'desc' => __("The total number of ratings for the item on your site. <span class='required'>* At least one of ratingCount or reviewCount is required.</span>", "wp-seo-structured-data-schema")
|
1309 |
-
),
|
1310 |
-
'reviewCount' => array(
|
1311 |
-
'title' => __('Review Count', "wp-seo-structured-data-schema"),
|
1312 |
-
'type' => 'number',
|
1313 |
-
'attr' => 'step="any"',
|
1314 |
-
'required' => true,
|
1315 |
-
'desc' => __("Specifies the number of people who provided a review with or without an accompanying rating. At least one of ratingCount or reviewCount is required.", "wp-seo-structured-data-schema")
|
1316 |
-
),
|
1317 |
-
'ratingValue' => array(
|
1318 |
-
'title' => __('Rating Value', "wp-seo-structured-data-schema"),
|
1319 |
-
'type' => 'number',
|
1320 |
-
'attr' => 'step="any"',
|
1321 |
-
'required' => true,
|
1322 |
-
'desc' => __("A numerical quality rating for the item.", "wp-seo-structured-data-schema")
|
1323 |
-
),
|
1324 |
-
'ratingValue' => array(
|
1325 |
-
'title' => __('Rating Value', "wp-seo-structured-data-schema"),
|
1326 |
-
'attr' => 'step="any"',
|
1327 |
-
'type' => 'number',
|
1328 |
-
'required' => true,
|
1329 |
-
'desc' => __("A numerical quality rating for the item.", "wp-seo-structured-data-schema")
|
1330 |
-
),
|
1331 |
-
'bestRating' => array(
|
1332 |
-
'title' => __('Best Rating', "wp-seo-structured-data-schema"),
|
1333 |
-
'type' => 'number',
|
1334 |
-
'attr' => 'step="any"',
|
1335 |
-
'required' => true,
|
1336 |
-
'desc' => __("The highest value allowed in this rating system. <span class='required'>* Required if the rating system is not a 5-point scale.</span> If bestRating is omitted, 5 is assumed.", "wp-seo-structured-data-schema")
|
1337 |
-
),
|
1338 |
-
'worstRating' => array(
|
1339 |
-
'title' => __('Worst Rating', "wp-seo-structured-data-schema"),
|
1340 |
-
'type' => 'number',
|
1341 |
-
'attr' => 'step="any"',
|
1342 |
-
'required' => true,
|
1343 |
-
'desc' => __("The lowest value allowed in this rating system. <span class='required'>* Required if the rating system is not a 5-point scale.</span> If worstRating is omitted, 1 is assumed.", "wp-seo-structured-data-schema")
|
1344 |
-
)
|
1345 |
-
)
|
1346 |
-
),
|
1347 |
-
'restaurant' => array(
|
1348 |
-
'pro' => false,
|
1349 |
-
'title' => __('Restaurant', "wp-seo-structured-data-schema"),
|
1350 |
-
'fields' => array(
|
1351 |
-
'active' => array(
|
1352 |
-
'type' => 'checkbox'
|
1353 |
-
),
|
1354 |
-
'name' => array(
|
1355 |
-
'title' => __('Name of the Restaurant', "wp-seo-structured-data-schema"),
|
1356 |
-
'type' => 'text',
|
1357 |
-
'required' => true
|
1358 |
-
),
|
1359 |
-
'description' => array(
|
1360 |
-
'title' => __('Description of the Restaurant', "wp-seo-structured-data-schema"),
|
1361 |
-
'type' => 'textarea',
|
1362 |
-
),
|
1363 |
-
'openingHours' => array(
|
1364 |
-
'title' => __('Opening Hours', "wp-seo-structured-data-schema"),
|
1365 |
-
'type' => 'textarea',
|
1366 |
-
'desc' => __('Mo,Tu,We,Th,Fr,Sa,Su 11:30-23:00', "wp-seo-structured-data-schema")
|
1367 |
-
),
|
1368 |
-
'telephone' => array(
|
1369 |
-
'title' => __('Opening Hours', "wp-seo-structured-data-schema"),
|
1370 |
-
'type' => 'text',
|
1371 |
-
'desc' => __('+155501003333', "wp-seo-structured-data-schema")
|
1372 |
-
),
|
1373 |
-
'menu' => array(
|
1374 |
-
'title' => __('Menu', "wp-seo-structured-data-schema"),
|
1375 |
-
'type' => 'text',
|
1376 |
-
'desc' => __('http://example.com/menu', "wp-seo-structured-data-schema")
|
1377 |
-
),
|
1378 |
-
'image' => array(
|
1379 |
-
'title' => __('Image', "wp-seo-structured-data-schema"),
|
1380 |
-
'type' => 'image',
|
1381 |
-
'required' => true
|
1382 |
-
),
|
1383 |
-
'address' => array(
|
1384 |
-
'title' => __('Address', "wp-seo-structured-data-schema"),
|
1385 |
-
'type' => 'textarea'
|
1386 |
-
),
|
1387 |
-
'priceRange' => array(
|
1388 |
-
'title' => __('Price Range', "wp-seo-structured-data-schema"),
|
1389 |
-
'type' => 'text',
|
1390 |
-
'desc' => __('The price range of the business, for example $$$', "wp-seo-structured-data-schema")
|
1391 |
-
),
|
1392 |
-
'servesCuisine' => array(
|
1393 |
-
'title' => __('Serves Cuisine', "wp-seo-structured-data-schema"),
|
1394 |
-
'type' => 'text',
|
1395 |
-
'desc' => __('The cuisine of the restaurant.', "wp-seo-structured-data-schema")
|
1396 |
-
)
|
1397 |
-
)
|
1398 |
-
),
|
1399 |
-
'localBusiness' => array(
|
1400 |
-
'pro' => false,
|
1401 |
-
'title' => __('Local Business', "wp-seo-structured-data-schema"),
|
1402 |
-
'fields' => array(
|
1403 |
-
'active' => array(
|
1404 |
-
'type' => 'checkbox'
|
1405 |
-
),
|
1406 |
-
'name' => array(
|
1407 |
-
'title' => __('Name', "wp-seo-structured-data-schema"),
|
1408 |
-
'type' => 'text',
|
1409 |
-
'required' => true
|
1410 |
-
),
|
1411 |
-
'description' => array(
|
1412 |
-
'title' => __('Description', "wp-seo-structured-data-schema"),
|
1413 |
-
'type' => 'textarea',
|
1414 |
-
),
|
1415 |
-
'image' => array(
|
1416 |
-
'title' => __('Business Logo', "wp-seo-structured-data-schema"),
|
1417 |
-
'type' => 'image',
|
1418 |
-
'required' => true
|
1419 |
-
),
|
1420 |
-
'priceRange' => array(
|
1421 |
-
'title' => __('Price Range (Recommended)', "wp-seo-structured-data-schema"),
|
1422 |
-
'type' => 'text',
|
1423 |
-
'desc' => __("The price range of the business, for example $$$.", "wp-seo-structured-data-schema")
|
1424 |
-
),
|
1425 |
-
'addressLocality' => array(
|
1426 |
-
'title' => __('Address locality', "wp-seo-structured-data-schema"),
|
1427 |
-
'type' => 'text',
|
1428 |
-
'desc' => __('City (i.e Kansas city)', "wp-seo-structured-data-schema")
|
1429 |
-
),
|
1430 |
-
'addressRegion' => array(
|
1431 |
-
'title' => __('Address region', "wp-seo-structured-data-schema"),
|
1432 |
-
'type' => 'text',
|
1433 |
-
'desc' => __('State (i.e. MO)', "wp-seo-structured-data-schema")
|
1434 |
-
),
|
1435 |
-
'postalCode' => array(
|
1436 |
-
'title' => __('Postal code', "wp-seo-structured-data-schema"),
|
1437 |
-
'type' => 'text',
|
1438 |
-
),
|
1439 |
-
'streetAddress' => array(
|
1440 |
-
'title' => __('Street address', "wp-seo-structured-data-schema"),
|
1441 |
-
'type' => 'text',
|
1442 |
-
),
|
1443 |
-
'telephone' => array(
|
1444 |
-
'title' => __('Telephone (Recommended)', "wp-seo-structured-data-schema"),
|
1445 |
-
'type' => 'text',
|
1446 |
-
)
|
1447 |
-
)
|
1448 |
-
),
|
1449 |
-
'book' => array(
|
1450 |
-
'pro' => true,
|
1451 |
-
'title' => __("Book", "wp-seo-structured-data-schema"),
|
1452 |
-
),
|
1453 |
-
'course' => array(
|
1454 |
-
'pro' => true,
|
1455 |
-
'title' => __("Course", "wp-seo-structured-data-schema"),
|
1456 |
-
),
|
1457 |
-
'JobPosting' => array(
|
1458 |
-
'pro' => true,
|
1459 |
-
'title' => __("Job Posting", "wp-seo-structured-data-schema"),
|
1460 |
-
),
|
1461 |
-
'movie' => array(
|
1462 |
-
'pro' => true,
|
1463 |
-
'title' => __("Movie", "wp-seo-structured-data-schema"),
|
1464 |
-
),
|
1465 |
-
'music' => array(
|
1466 |
-
'pro' => true,
|
1467 |
-
'title' => __("Music", "wp-seo-structured-data-schema"),
|
1468 |
-
),
|
1469 |
-
'recipe' => array(
|
1470 |
-
'pro' => true,
|
1471 |
-
'title' => __("Recipe", "wp-seo-structured-data-schema"),
|
1472 |
-
),
|
1473 |
-
'TVEpisode' => array(
|
1474 |
-
'pro' => true,
|
1475 |
-
'title' => __("TVEpisode", "wp-seo-structured-data-schema"),
|
1476 |
-
),
|
1477 |
-
'question' => array(
|
1478 |
-
'pro' => true,
|
1479 |
-
'title' => __("QAPage", "wp-seo-structured-data-schema"),
|
1480 |
-
),
|
1481 |
-
);
|
1482 |
-
}
|
1483 |
-
|
1484 |
-
function get_jsonEncode($data = array()) {
|
1485 |
-
$html = null;
|
1486 |
-
/** @var TYPE_NAME $data */
|
1487 |
-
if (!empty($data) && is_array($data)) {
|
1488 |
-
$html .= '<script type="application/ld+json">' . json_encode($data,
|
1489 |
-
JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES) . '</script>';
|
1490 |
-
}
|
1491 |
-
|
1492 |
-
return $html;
|
1493 |
-
}
|
1494 |
-
|
1495 |
-
function site_type() {
|
1496 |
-
return array(
|
1497 |
-
'Organization',
|
1498 |
-
'LocalBusiness' => array(
|
1499 |
-
'AnimalShelter',
|
1500 |
-
'AutomotiveBusiness' => array(
|
1501 |
-
'AutoBodyShop',
|
1502 |
-
'AutoDealer',
|
1503 |
-
'AutoPartsStore',
|
1504 |
-
'AutoRental',
|
1505 |
-
'AutoRepair',
|
1506 |
-
'AutoWash',
|
1507 |
-
'GasStation',
|
1508 |
-
'MotorcycleDealer',
|
1509 |
-
'MotorcycleRepair'
|
1510 |
-
),
|
1511 |
-
'ChildCare',
|
1512 |
-
'DryCleaningOrLaundry',
|
1513 |
-
'EmergencyService',
|
1514 |
-
'EmploymentAgency',
|
1515 |
-
'EntertainmentBusiness' => array(
|
1516 |
-
'AdultEntertainment',
|
1517 |
-
'AmusementPark',
|
1518 |
-
'ArtGallery',
|
1519 |
-
'Casino',
|
1520 |
-
'ComedyClub',
|
1521 |
-
'MovieTheater',
|
1522 |
-
'NightClub',
|
1523 |
-
|
1524 |
-
),
|
1525 |
-
'FinancialService' => array(
|
1526 |
-
'AccountingService',
|
1527 |
-
'AutomatedTeller',
|
1528 |
-
'BankOrCreditUnion',
|
1529 |
-
'InsuranceAgency',
|
1530 |
-
),
|
1531 |
-
'FoodEstablishment' => array(
|
1532 |
-
'Bakery',
|
1533 |
-
'BarOrPub',
|
1534 |
-
'Brewery',
|
1535 |
-
'CafeOrCoffeeShop',
|
1536 |
-
'FastFoodRestaurant',
|
1537 |
-
'IceCreamShop',
|
1538 |
-
'Restaurant',
|
1539 |
-
'Winery',
|
1540 |
-
),
|
1541 |
-
'GovernmentOffice',
|
1542 |
-
'HealthAndBeautyBusiness' => array(
|
1543 |
-
'BeautySalon',
|
1544 |
-
'DaySpa',
|
1545 |
-
'HairSalon',
|
1546 |
-
'HealthClub',
|
1547 |
-
'NailSalon',
|
1548 |
-
'TattooParlor',
|
1549 |
-
),
|
1550 |
-
'HomeAndConstructionBusiness' => array(
|
1551 |
-
'Electrician',
|
1552 |
-
'GeneralContractor',
|
1553 |
-
'HVACBusiness',
|
1554 |
-
'HousePainter',
|
1555 |
-
'Locksmith',
|
1556 |
-
'MovingCompany',
|
1557 |
-
'Plumber',
|
1558 |
-
'RoofingContractor',
|
1559 |
-
),
|
1560 |
-
'InternetCafe',
|
1561 |
-
'LegalService' => array(
|
1562 |
-
'Attorney',
|
1563 |
-
'Notary',
|
1564 |
-
),
|
1565 |
-
'Library',
|
1566 |
-
'MedicalBusiness' => array(
|
1567 |
-
'CommunityHealth',
|
1568 |
-
'Dentist',
|
1569 |
-
'Dermatology',
|
1570 |
-
'DietNutrition',
|
1571 |
-
'Emergency',
|
1572 |
-
'Geriatric',
|
1573 |
-
'Gynecologic',
|
1574 |
-
'MedicalClinic',
|
1575 |
-
'Midwifery',
|
1576 |
-
'Nursing',
|
1577 |
-
'Obstetric',
|
1578 |
-
'Oncologic',
|
1579 |
-
'Optician',
|
1580 |
-
'Optometric',
|
1581 |
-
'Otolaryngologic',
|
1582 |
-
'Pediatric',
|
1583 |
-
'Pharmacy',
|
1584 |
-
'Physician',
|
1585 |
-
'Physiotherapy',
|
1586 |
-
'PlasticSurgery',
|
1587 |
-
'Podiatric',
|
1588 |
-
'PrimaryCare',
|
1589 |
-
'Psychiatric',
|
1590 |
-
'PublicHealth',
|
1591 |
-
),
|
1592 |
-
'LodgingBusiness' => array(
|
1593 |
-
'BedAndBreakfast',
|
1594 |
-
'Campground',
|
1595 |
-
'Hostel',
|
1596 |
-
'Hotel',
|
1597 |
-
'Motel',
|
1598 |
-
'Resort',
|
1599 |
-
),
|
1600 |
-
'ProfessionalService',
|
1601 |
-
'RadioStation',
|
1602 |
-
'RealEstateAgent',
|
1603 |
-
'RecyclingCenter',
|
1604 |
-
'SelfStorage',
|
1605 |
-
'ShoppingCenter',
|
1606 |
-
'SportsActivityLocation' => array(
|
1607 |
-
'BowlingAlley',
|
1608 |
-
'ExerciseGym',
|
1609 |
-
'GolfCourse',
|
1610 |
-
'HealthClub',
|
1611 |
-
'PublicSwimmingPool',
|
1612 |
-
'SkiResort',
|
1613 |
-
'SportsClub',
|
1614 |
-
'StadiumOrArena',
|
1615 |
-
'TennisComplex',
|
1616 |
-
),
|
1617 |
-
'Store' => array(
|
1618 |
-
'AutoPartsStore',
|
1619 |
-
'BikeStore',
|
1620 |
-
'BookStore',
|
1621 |
-
'ClothingStore',
|
1622 |
-
'ComputerStore',
|
1623 |
-
'ConvenienceStore',
|
1624 |
-
'DepartmentStore',
|
1625 |
-
'ElectronicsStore',
|
1626 |
-
'Florist',
|
1627 |
-
'FurnitureStore',
|
1628 |
-
'GardenStore',
|
1629 |
-
'GroceryStore',
|
1630 |
-
'HardwareStore',
|
1631 |
-
'HobbyShop',
|
1632 |
-
'HomeGoodsStore',
|
1633 |
-
'JewelryStore',
|
1634 |
-
'LiquorStore',
|
1635 |
-
'MensClothingStore',
|
1636 |
-
'MobilePhoneStore',
|
1637 |
-
'MovieRentalStore',
|
1638 |
-
'MusicStore',
|
1639 |
-
'OfficeEquipmentStore',
|
1640 |
-
'OutletStore',
|
1641 |
-
'PawnShop',
|
1642 |
-
'PetStore',
|
1643 |
-
'ShoeStore',
|
1644 |
-
'SportingGoodsStore',
|
1645 |
-
'TireShop',
|
1646 |
-
'ToyStore',
|
1647 |
-
'WholesaleStore'
|
1648 |
-
),
|
1649 |
-
'TelevisionStation',
|
1650 |
-
'TouristInformationCenter',
|
1651 |
-
'TravelAgency'
|
1652 |
-
)
|
1653 |
-
);
|
1654 |
-
}
|
1655 |
-
|
1656 |
-
function countryList() {
|
1657 |
-
return array(
|
1658 |
-
"AF" => "Afghanistan",
|
1659 |
-
"AX" => "Aland Islands",
|
1660 |
-
"AL" => "Albania",
|
1661 |
-
"DZ" => "Algeria",
|
1662 |
-
"AS" => "American Samoa",
|
1663 |
-
"AD" => "Andorra",
|
1664 |
-
"AO" => "Angola",
|
1665 |
-
"AI" => "Anguilla",
|
1666 |
-
"AQ" => "Antarctica",
|
1667 |
-
"AG" => "Antigua and Barbuda",
|
1668 |
-
"AR" => "Argentina",
|
1669 |
-
"AM" => "Armenia",
|
1670 |
-
"AW" => "Aruba",
|
1671 |
-
"AU" => "Australia",
|
1672 |
-
"AT" => "Austria",
|
1673 |
-
"AZ" => "Azerbaijan",
|
1674 |
-
"BS" => "Bahamas",
|
1675 |
-
"BH" => "Bahrain",
|
1676 |
-
"BD" => "Bangladesh",
|
1677 |
-
"BB" => "Barbados",
|
1678 |
-
"BY" => "Belarus",
|
1679 |
-
"BE" => "Belgium",
|
1680 |
-
"BZ" => "Belize",
|
1681 |
-
"BJ" => "Benin",
|
1682 |
-
"BM" => "Bermuda",
|
1683 |
-
"BT" => "Bhutan",
|
1684 |
-
"BO" => "Bolivia, Plurinational State of",
|
1685 |
-
"BQ" => "Bonaire, Sint Eustatius and Saba",
|
1686 |
-
"BA" => "Bosnia and Herzegovina",
|
1687 |
-
"BW" => "Botswana",
|
1688 |
-
"BV" => "Bouvet Island",
|
1689 |
-
"BR" => "Brazil",
|
1690 |
-
"IO" => "British Indian Ocean Territory",
|
1691 |
-
"BN" => "Brunei Darussalam",
|
1692 |
-
"BG" => "Bulgaria",
|
1693 |
-
"BF" => "Burkina Faso",
|
1694 |
-
"BI" => "Burundi",
|
1695 |
-
"KH" => "Cambodia",
|
1696 |
-
"CM" => "Cameroon",
|
1697 |
-
"CA" => "Canada",
|
1698 |
-
"CV" => "Cape Verde",
|
1699 |
-
"KY" => "Cayman Islands",
|
1700 |
-
"CF" => "Central African Republic",
|
1701 |
-
"TD" => "Chad",
|
1702 |
-
"CL" => "Chile",
|
1703 |
-
"CN" => "China",
|
1704 |
-
"CX" => "Christmas Island",
|
1705 |
-
"CC" => "Cocos (Keeling) Islands",
|
1706 |
-
"CO" => "Colombia",
|
1707 |
-
"KM" => "Comoros",
|
1708 |
-
"CG" => "Congo",
|
1709 |
-
"CD" => "Congo, the Democratic Republic of the",
|
1710 |
-
"CK" => "Cook Islands",
|
1711 |
-
"CR" => "Costa Rica",
|
1712 |
-
"CI" => "Côte d Ivoire",
|
1713 |
-
"HR" => "Croatia",
|
1714 |
-
"CU" => "Cuba",
|
1715 |
-
"CW" => "Curaçao",
|
1716 |
-
"CY" => "Cyprus",
|
1717 |
-
"CZ" => "Czech Republic",
|
1718 |
-
"DK" => "Denmark",
|
1719 |
-
"DJ" => "Djibouti",
|
1720 |
-
"DM" => "Dominica",
|
1721 |
-
"DO" => "Dominican Republic",
|
1722 |
-
"EC" => "Ecuador",
|
1723 |
-
"EG" => "Egypt",
|
1724 |
-
"SV" => "El Salvador",
|
1725 |
-
"GQ" => "Equatorial Guinea",
|
1726 |
-
"ER" => "Eritrea",
|
1727 |
-
"EE" => "Estonia",
|
1728 |
-
"ET" => "Ethiopia",
|
1729 |
-
"FK" => "Falkland Islands (Malvinas)",
|
1730 |
-
"FO" => "Faroe Islands",
|
1731 |
-
"FJ" => "Fiji",
|
1732 |
-
"FI" => "Finland",
|
1733 |
-
"FR" => "France",
|
1734 |
-
"GF" => "French Guiana",
|
1735 |
-
"PF" => "French Polynesia",
|
1736 |
-
"TF" => "French Southern Territories",
|
1737 |
-
"GA" => "Gabon",
|
1738 |
-
"GM" => "Gambia",
|
1739 |
-
"GE" => "Georgia",
|
1740 |
-
"DE" => "Germany",
|
1741 |
-
"GH" => "Ghana",
|
1742 |
-
"GI" => "Gibraltar",
|
1743 |
-
"GR" => "Greece",
|
1744 |
-
"GL" => "Greenland",
|
1745 |
-
"GD" => "Grenada",
|
1746 |
-
"GP" => "Guadeloupe",
|
1747 |
-
"GU" => "Guam",
|
1748 |
-
"GT" => "Guatemala",
|
1749 |
-
"GG" => "Guernsey",
|
1750 |
-
"GN" => "Guinea",
|
1751 |
-
"GW" => "Guinea-Bissau",
|
1752 |
-
"GY" => "Guyana",
|
1753 |
-
"HT" => "Haiti",
|
1754 |
-
"HM" => "Heard Island and McDonald Islands",
|
1755 |
-
"VA" => "Holy See (Vatican City State)",
|
1756 |
-
"HN" => "Honduras",
|
1757 |
-
"HK" => "Hong Kong",
|
1758 |
-
"HU" => "Hungary",
|
1759 |
-
"IS" => "Iceland",
|
1760 |
-
"IN" => "India",
|
1761 |
-
"ID" => "Indonesia",
|
1762 |
-
"IR" => "Iran, Islamic Republic of",
|
1763 |
-
"IQ" => "Iraq",
|
1764 |
-
"IE" => "Ireland",
|
1765 |
-
"IM" => "Isle of Man",
|
1766 |
-
"IL" => "Israel",
|
1767 |
-
"IT" => "Italy",
|
1768 |
-
"JM" => "Jamaica",
|
1769 |
-
"JP" => "Japan",
|
1770 |
-
"JE" => "Jersey",
|
1771 |
-
"JO" => "Jordan",
|
1772 |
-
"KZ" => "Kazakhstan",
|
1773 |
-
"KE" => "Kenya",
|
1774 |
-
"KI" => "Kiribati",
|
1775 |
-
"KP" => "Korea, Democratic People's Republic of",
|
1776 |
-
"KR" => "Korea, Republic of,",
|
1777 |
-
"KW" => "Kuwait",
|
1778 |
-
"KG" => "Kyrgyzstan",
|
1779 |
-
"LA" => "Lao Peoples Democratic Republic",
|
1780 |
-
"LV" => "Latvia",
|
1781 |
-
"LB" => "Lebanon",
|
1782 |
-
"LS" => "Lesotho",
|
1783 |
-
"LR" => "Liberia",
|
1784 |
-
"LY" => "Libya",
|
1785 |
-
"LI" => "Liechtenstein",
|
1786 |
-
"LT" => "Lithuania",
|
1787 |
-
"LU" => "Luxembourg",
|
1788 |
-
"MO" => "Macao",
|
1789 |
-
"MK" => "Macedonia, the former Yugoslav Republic of",
|
1790 |
-
"MG" => "Madagascar",
|
1791 |
-
"MW" => "Malawi",
|
1792 |
-
"MY" => "Malaysia",
|
1793 |
-
"MV" => "Maldives",
|
1794 |
-
"ML" => "Mali",
|
1795 |
-
"MT" => "Malta",
|
1796 |
-
"MH" => "Marshall Islands",
|
1797 |
-
"MQ" => "Martinique",
|
1798 |
-
"MR" => "Mauritania",
|
1799 |
-
"MU" => "Mauritius",
|
1800 |
-
"YT" => "Mayotte",
|
1801 |
-
"MX" => "Mexico",
|
1802 |
-
"FM" => "Micronesia, Federated States of",
|
1803 |
-
"MD" => "Moldova, Republic of",
|
1804 |
-
"MC" => "Monaco",
|
1805 |
-
"MN" => "Mongolia",
|
1806 |
-
"ME" => "Montenegro",
|
1807 |
-
"MS" => "Montserrat",
|
1808 |
-
"MA" => "Morocco",
|
1809 |
-
"MZ" => "Mozambique",
|
1810 |
-
"MM" => "Myanmar",
|
1811 |
-
"NA" => "Namibia",
|
1812 |
-
"NR" => "Nauru",
|
1813 |
-
"NP" => "Nepal",
|
1814 |
-
"NL" => "Netherlands",
|
1815 |
-
"NC" => "New Caledonia",
|
1816 |
-
"NZ" => "New Zealand",
|
1817 |
-
"NI" => "Nicaragua",
|
1818 |
-
"NE" => "Niger",
|
1819 |
-
"NG" => "Nigeria",
|
1820 |
-
"NU" => "Niue",
|
1821 |
-
"NF" => "Norfolk Island",
|
1822 |
-
"MP" => "Northern Mariana Islands",
|
1823 |
-
"NO" => "Norway",
|
1824 |
-
"OM" => "Oman",
|
1825 |
-
"PK" => "Pakistan",
|
1826 |
-
"PW" => "Palau",
|
1827 |
-
"PS" => "Palestine, State of",
|
1828 |
-
"PA" => "Panama",
|
1829 |
-
"PG" => "Papua New Guinea",
|
1830 |
-
"PY" => "Paraguay",
|
1831 |
-
"PE" => "Peru",
|
1832 |
-
"PH" => "Philippines",
|
1833 |
-
"PN" => "Pitcairn",
|
1834 |
-
"PL" => "Poland",
|
1835 |
-
"PT" => "Portugal",
|
1836 |
-
"PR" => "Puerto Rico",
|
1837 |
-
"QA" => "Qatar",
|
1838 |
-
"RE" => "Reunion",
|
1839 |
-
"RO" => "Romania",
|
1840 |
-
"RU" => "Russian Federation",
|
1841 |
-
"RW" => "Rwanda",
|
1842 |
-
"BL" => "Saint Barthélemy",
|
1843 |
-
"SH" => "Saint Helena, Ascension and Tristan da Cunha",
|
1844 |
-
"KN" => "Saint Kitts and Nevis",
|
1845 |
-
"LC" => "Saint Lucia",
|
1846 |
-
"MF" => "Saint Martin (French part)",
|
1847 |
-
"PM" => "Saint Pierre and Miquelon",
|
1848 |
-
"VC" => "Saint Vincent and the Grenadines",
|
1849 |
-
"WS" => "Samoa",
|
1850 |
-
"SM" => "San Marino",
|
1851 |
-
"ST" => "Sao Tome and Principe",
|
1852 |
-
"SA" => "Saudi Arabia",
|
1853 |
-
"SN" => "Senegal",
|
1854 |
-
"RS" => "Serbia",
|
1855 |
-
"SC" => "Seychelles",
|
1856 |
-
"SL" => "Sierra Leone",
|
1857 |
-
"SG" => "Singapore",
|
1858 |
-
"SX" => "Sint Maarten (Dutch part)",
|
1859 |
-
"SK" => "Slovakia",
|
1860 |
-
"SI" => "Slovenia",
|
1861 |
-
"SB" => "Solomon Islands",
|
1862 |
-
"SO" => "Somalia",
|
1863 |
-
"ZA" => "South Africa",
|
1864 |
-
"GS" => "South Georgia and the South Sandwich Islands",
|
1865 |
-
"SS" => "South Sudan",
|
1866 |
-
"ES" => "Spain",
|
1867 |
-
"LK" => "Sri Lanka",
|
1868 |
-
"SD" => "Sudan",
|
1869 |
-
"SR" => "Suriname",
|
1870 |
-
"SJ" => "Svalbard and Jan Mayen",
|
1871 |
-
"SZ" => "Swaziland",
|
1872 |
-
"SE" => "Sweden",
|
1873 |
-
"CH" => "Switzerland",
|
1874 |
-
"SY" => "Syrian Arab Republic",
|
1875 |
-
"TW" => "Taiwan, Province of China",
|
1876 |
-
"TJ" => "Tajikistan",
|
1877 |
-
"TZ" => "Tanzania, United Republic of",
|
1878 |
-
"TH" => "Thailand",
|
1879 |
-
"TL" => "Timor-Leste",
|
1880 |
-
"TG" => "Togo",
|
1881 |
-
"TK" => "Tokelau",
|
1882 |
-
"TO" => "Tonga",
|
1883 |
-
"TT" => "Trinidad and Tobago",
|
1884 |
-
"TN" => "Tunisia",
|
1885 |
-
"TR" => "Turkey",
|
1886 |
-
"TM" => "Turkmenistan",
|
1887 |
-
"TC" => "Turks and Caicos Islands",
|
1888 |
-
"TV" => "Tuvalu",
|
1889 |
-
"UG" => "Uganda",
|
1890 |
-
"UA" => "Ukraine",
|
1891 |
-
"AE" => "United Arab Emirates",
|
1892 |
-
"GB" => "United Kingdom",
|
1893 |
-
"US" => "United States",
|
1894 |
-
"UM" => "United States Minor Outlying Islands",
|
1895 |
-
"UY" => "Uruguay",
|
1896 |
-
"UZ" => "Uzbekistan",
|
1897 |
-
"VU" => "Vanuatu",
|
1898 |
-
"VE" => "Venezuela, Bolivarian Republic of",
|
1899 |
-
"VN" => "Viet Nam",
|
1900 |
-
"VG" => "Virgin Islands, British",
|
1901 |
-
"VI" => "Virgin Islands, U.S.",
|
1902 |
-
"WF" => "Wallis and Futuna",
|
1903 |
-
"EH" => "Western Sahara",
|
1904 |
-
"YE" => "Yemen",
|
1905 |
-
"ZM" => "Zambia",
|
1906 |
-
"ZW" => "Zimbabwe",
|
1907 |
-
);
|
1908 |
-
}
|
1909 |
-
|
1910 |
-
function contactType() {
|
1911 |
-
return array(
|
1912 |
-
"Customer Service",
|
1913 |
-
"Technical Support",
|
1914 |
-
"Billing Support",
|
1915 |
-
"Bill Payment",
|
1916 |
-
"Sales",
|
1917 |
-
"Reservations",
|
1918 |
-
"Credit Card Support",
|
1919 |
-
"Emergency",
|
1920 |
-
"Baggage Tracking",
|
1921 |
-
"Roadside Assistance",
|
1922 |
-
"Package Tracking"
|
1923 |
-
);
|
1924 |
-
}
|
1925 |
-
|
1926 |
-
function languageList() {
|
1927 |
-
return array(
|
1928 |
-
"Akan",
|
1929 |
-
"Amharic",
|
1930 |
-
"Arabic",
|
1931 |
-
"Assamese",
|
1932 |
-
"Awadhi",
|
1933 |
-
"Azerbaijani",
|
1934 |
-
"Balochi",
|
1935 |
-
"Belarusian",
|
1936 |
-
"Bengali",
|
1937 |
-
"Bhojpuri",
|
1938 |
-
"Burmese",
|
1939 |
-
"Cantonese",
|
1940 |
-
"Cebuano",
|
1941 |
-
"Chewa",
|
1942 |
-
"Chhattisgarhi",
|
1943 |
-
"Chittagonian",
|
1944 |
-
"Czech",
|
1945 |
-
"Deccan",
|
1946 |
-
"Dhundhari",
|
1947 |
-
"Dutch",
|
1948 |
-
"English",
|
1949 |
-
"French",
|
1950 |
-
"Fula",
|
1951 |
-
"Gan",
|
1952 |
-
"German",
|
1953 |
-
"Greek",
|
1954 |
-
"Gujarati",
|
1955 |
-
"Haitian Creole",
|
1956 |
-
"Hakka",
|
1957 |
-
"Haryanvi",
|
1958 |
-
"Hausa",
|
1959 |
-
"Hiligaynon",
|
1960 |
-
"Hindi / Urdu",
|
1961 |
-
"Hmong",
|
1962 |
-
"Hungarian",
|
1963 |
-
"Igbo",
|
1964 |
-
"Ilokano",
|
1965 |
-
"Italian",
|
1966 |
-
"Japanese",
|
1967 |
-
"Javanese",
|
1968 |
-
"Jin",
|
1969 |
-
"Kannada",
|
1970 |
-
"Kazakh",
|
1971 |
-
"Khmer",
|
1972 |
-
"Kinyarwanda",
|
1973 |
-
"Kirundi",
|
1974 |
-
"Konkani",
|
1975 |
-
"Korean",
|
1976 |
-
"Kurdish",
|
1977 |
-
"Madurese",
|
1978 |
-
"Magahi",
|
1979 |
-
"Maithili",
|
1980 |
-
"Malagasy",
|
1981 |
-
"Malay/Indonesian",
|
1982 |
-
"Malayalam",
|
1983 |
-
"Mandarin",
|
1984 |
-
"Marathi",
|
1985 |
-
"Marwari",
|
1986 |
-
"Min Bei",
|
1987 |
-
"Min Dong",
|
1988 |
-
"Min Nan",
|
1989 |
-
"Mossi",
|
1990 |
-
"Nepali",
|
1991 |
-
"Oriya",
|
1992 |
-
"Oromo",
|
1993 |
-
"Pashto",
|
1994 |
-
"Persian",
|
1995 |
-
"Polish",
|
1996 |
-
"Portuguese",
|
1997 |
-
"Punjabi",
|
1998 |
-
"Quechua",
|
1999 |
-
"Romanian",
|
2000 |
-
"Russian",
|
2001 |
-
"Saraiki",
|
2002 |
-
"Serbo-Croatian",
|
2003 |
-
"Shona",
|
2004 |
-
"Sindhi",
|
2005 |
-
"Sinhalese",
|
2006 |
-
"Somali",
|
2007 |
-
"Spanish",
|
2008 |
-
"Sundanese",
|
2009 |
-
"Swahili",
|
2010 |
-
"Swedish",
|
2011 |
-
"Sylheti",
|
2012 |
-
"Tagalog",
|
2013 |
-
"Tamil",
|
2014 |
-
"Telugu",
|
2015 |
-
"Thai",
|
2016 |
-
"Turkish",
|
2017 |
-
"Ukrainian",
|
2018 |
-
"Uyghur",
|
2019 |
-
"Uzbek",
|
2020 |
-
"Vietnamese",
|
2021 |
-
"Wu",
|
2022 |
-
"Xhosa",
|
2023 |
-
"Xiang",
|
2024 |
-
"Yoruba",
|
2025 |
-
"Zulu",
|
2026 |
-
);
|
2027 |
-
}
|
2028 |
-
|
2029 |
-
function socialList() {
|
2030 |
-
return array(
|
2031 |
-
'facebook' => __('Facebook'),
|
2032 |
-
'twitter' => __('Twitter'),
|
2033 |
-
'google-plus' => __('Google+'),
|
2034 |
-
'instagram' => __('Instagram'),
|
2035 |
-
'youtube' => __('Youtube'),
|
2036 |
-
'linkedin' => __('LinkedIn'),
|
2037 |
-
'myspace' => __('Myspace'),
|
2038 |
-
'pinterest' => __('Pinterest'),
|
2039 |
-
'soundcloud' => __('SoundCloud'),
|
2040 |
-
'tumblr' => __('Tumblr'),
|
2041 |
-
'wikidata' => __('Wikidata'),
|
2042 |
-
);
|
2043 |
-
}
|
2044 |
-
|
2045 |
-
function imgInfo($url = null) {
|
2046 |
-
$img = array();
|
2047 |
-
if ($url) {
|
2048 |
-
$imgA = @getimagesize($url);
|
2049 |
-
if (is_array($imgA) && !empty($imgA)) {
|
2050 |
-
$img['width'] = $imgA[0];
|
2051 |
-
$img['height'] = $imgA[1];
|
2052 |
-
} else {
|
2053 |
-
$img['width'] = 0;
|
2054 |
-
$img['height'] = 0;
|
2055 |
-
}
|
2056 |
-
}
|
2057 |
-
|
2058 |
-
return $img;
|
2059 |
-
}
|
2060 |
-
|
2061 |
-
function isAssoc($array) {
|
2062 |
-
$keys = array_keys($array);
|
2063 |
-
|
2064 |
-
return $keys !== array_keys($keys);
|
2065 |
-
}
|
2066 |
-
|
2067 |
-
|
2068 |
-
}
|
2069 |
endif;
|
1 |
<?php
|
2 |
|
3 |
+
if ( ! class_exists( 'KcSeoSchemaModel' ) ):
|
4 |
+
class KcSeoSchemaModel {
|
5 |
+
|
6 |
+
function __construct() {
|
7 |
+
|
8 |
+
}
|
9 |
+
|
10 |
+
function schemaOutput( $schemaID, $metaData ) {
|
11 |
+
$html = null;
|
12 |
+
|
13 |
+
if ( $schemaID ) {
|
14 |
+
global $KcSeoWPSchema;
|
15 |
+
switch ( $schemaID ) {
|
16 |
+
case "article":
|
17 |
+
$article = array();
|
18 |
+
$article["@context"] = "http://schema.org";
|
19 |
+
$article["@type"] = "Article";
|
20 |
+
if ( ! empty( $metaData['headline'] ) ) {
|
21 |
+
$article["headline"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['headline'] );
|
22 |
+
}
|
23 |
+
if ( ! empty( $metaData['mainEntityOfPage'] ) ) {
|
24 |
+
$article["mainEntityOfPage"] = array(
|
25 |
+
"@type" => "WebPage",
|
26 |
+
"@id" => $KcSeoWPSchema->sanitizeOutPut( $metaData["mainEntityOfPage"] )
|
27 |
+
);
|
28 |
+
}
|
29 |
+
if ( ! empty( $metaData['author'] ) ) {
|
30 |
+
$article["author"] = array(
|
31 |
+
"@type" => "Person",
|
32 |
+
"name" => $KcSeoWPSchema->sanitizeOutPut( $metaData['author'] )
|
33 |
+
);
|
34 |
+
}
|
35 |
+
if ( ! empty( $metaData['publisher'] ) ) {
|
36 |
+
if ( ! empty( $metaData['publisherImage'] ) ) {
|
37 |
+
$img = $KcSeoWPSchema->imageInfo( absint( $metaData['publisherImage'] ) );
|
38 |
+
$plA = array(
|
39 |
+
"@type" => "ImageObject",
|
40 |
+
"url" => $KcSeoWPSchema->sanitizeOutPut( $img['url'], 'url' ),
|
41 |
+
"height" => $img['height'],
|
42 |
+
"width" => $img['width']
|
43 |
+
);
|
44 |
+
} else {
|
45 |
+
$plA = array();
|
46 |
+
}
|
47 |
+
$article["publisher"] = array(
|
48 |
+
"@type" => "Organization",
|
49 |
+
"name" => $KcSeoWPSchema->sanitizeOutPut( $metaData['publisher'] ),
|
50 |
+
"logo" => $plA
|
51 |
+
);
|
52 |
+
}
|
53 |
+
if ( ! empty( $metaData['alternativeHeadline'] ) ) {
|
54 |
+
$article["alternativeHeadline"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['alternativeHeadline'] );
|
55 |
+
}
|
56 |
+
if ( ! empty( $metaData['image'] ) ) {
|
57 |
+
$img = $KcSeoWPSchema->imageInfo( absint( $metaData['image'] ) );
|
58 |
+
$article["image"] = array(
|
59 |
+
"@type" => "ImageObject",
|
60 |
+
"url" => $KcSeoWPSchema->sanitizeOutPut( $img['url'], 'url' ),
|
61 |
+
"height" => $img['height'],
|
62 |
+
"width" => $img['width']
|
63 |
+
);
|
64 |
+
}
|
65 |
+
if ( ! empty( $metaData['datePublished'] ) ) {
|
66 |
+
$article["datePublished"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['datePublished'] );
|
67 |
+
}
|
68 |
+
if ( ! empty( $metaData['dateModified'] ) ) {
|
69 |
+
$article["dateModified"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['dateModified'] );
|
70 |
+
}
|
71 |
+
if ( ! empty( $metaData['description'] ) ) {
|
72 |
+
$article["description"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['description'],
|
73 |
+
'textarea' );
|
74 |
+
}
|
75 |
+
if ( ! empty( $metaData['articleBody'] ) ) {
|
76 |
+
$article["articleBody"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['articleBody'],
|
77 |
+
'textarea' );
|
78 |
+
}
|
79 |
+
$html .= $this->get_jsonEncode( $article );
|
80 |
+
break;
|
81 |
+
|
82 |
+
case "news_article":
|
83 |
+
$newsArticle = array();
|
84 |
+
$newsArticle["@context"] = "http://schema.org";
|
85 |
+
$newsArticle["@type"] = "NewsArticle";
|
86 |
+
if ( ! empty( $metaData['headline'] ) ) {
|
87 |
+
$newsArticle["headline"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['headline'] );
|
88 |
+
}
|
89 |
+
if ( ! empty( $metaData['mainEntityOfPage'] ) ) {
|
90 |
+
$newsArticle["mainEntityOfPage"] = array(
|
91 |
+
"@type" => "WebPage",
|
92 |
+
"@id" => $KcSeoWPSchema->sanitizeOutPut( $metaData["mainEntityOfPage"] )
|
93 |
+
);
|
94 |
+
}
|
95 |
+
if ( ! empty( $metaData['author'] ) ) {
|
96 |
+
$newsArticle["author"] = array(
|
97 |
+
"@type" => "Person",
|
98 |
+
"name" => $KcSeoWPSchema->sanitizeOutPut( $metaData['author'] )
|
99 |
+
);
|
100 |
+
}
|
101 |
+
if ( ! empty( $metaData['image'] ) ) {
|
102 |
+
$img = $KcSeoWPSchema->imageInfo( absint( $metaData['image'] ) );
|
103 |
+
$newsArticle["image"] = array(
|
104 |
+
"@type" => "ImageObject",
|
105 |
+
"url" => $KcSeoWPSchema->sanitizeOutPut( $img['url'], 'url' ),
|
106 |
+
"height" => $img['height'],
|
107 |
+
"width" => $img['width']
|
108 |
+
);
|
109 |
+
}
|
110 |
+
if ( ! empty( $metaData['datePublished'] ) ) {
|
111 |
+
$newsArticle["datePublished"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['datePublished'] );
|
112 |
+
}
|
113 |
+
if ( ! empty( $metaData['dateModified'] ) ) {
|
114 |
+
$newsArticle["dateModified"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['dateModified'] );
|
115 |
+
}
|
116 |
+
if ( ! empty( $metaData['publisher'] ) ) {
|
117 |
+
if ( ! empty( $metaData['publisherImage'] ) ) {
|
118 |
+
$img = $KcSeoWPSchema->imageInfo( absint( $metaData['publisherImage'] ) );
|
119 |
+
$plA = array(
|
120 |
+
"@type" => "ImageObject",
|
121 |
+
"url" => $KcSeoWPSchema->sanitizeOutPut( $img['url'], 'url' ),
|
122 |
+
"height" => $img['height'],
|
123 |
+
"width" => $img['width']
|
124 |
+
);
|
125 |
+
} else {
|
126 |
+
$plA = array();
|
127 |
+
}
|
128 |
+
$newsArticle["publisher"] = array(
|
129 |
+
"@type" => "Organization",
|
130 |
+
"name" => $KcSeoWPSchema->sanitizeOutPut( $metaData['publisher'] ),
|
131 |
+
"logo" => $plA
|
132 |
+
);
|
133 |
+
}
|
134 |
+
if ( ! empty( $metaData['description'] ) ) {
|
135 |
+
$newsArticle["description"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['description'],
|
136 |
+
'textarea' );
|
137 |
+
}
|
138 |
+
if ( ! empty( $metaData['articleBody'] ) ) {
|
139 |
+
$newsArticle["articleBody"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['articleBody'],
|
140 |
+
'textarea' );
|
141 |
+
}
|
142 |
+
$html .= $this->get_jsonEncode( $newsArticle );
|
143 |
+
break;
|
144 |
+
|
145 |
+
case "blog_posting":
|
146 |
+
$blogPosting = array();
|
147 |
+
$blogPosting["@context"] = "http://schema.org";
|
148 |
+
$blogPosting["@type"] = "BlogPosting";
|
149 |
+
if ( ! empty( $metaData['headline'] ) ) {
|
150 |
+
$blogPosting["headline"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['headline'] );
|
151 |
+
}
|
152 |
+
if ( ! empty( $metaData['mainEntityOfPage'] ) ) {
|
153 |
+
$blogPosting["mainEntityOfPage"] = array(
|
154 |
+
"@type" => "WebPage",
|
155 |
+
"@id" => $KcSeoWPSchema->sanitizeOutPut( $metaData["mainEntityOfPage"] )
|
156 |
+
);
|
157 |
+
}
|
158 |
+
if ( ! empty( $metaData['author'] ) ) {
|
159 |
+
$blogPosting["author"] = array(
|
160 |
+
"@type" => "Person",
|
161 |
+
"name" => $KcSeoWPSchema->sanitizeOutPut( $metaData['author'] )
|
162 |
+
);
|
163 |
+
}
|
164 |
+
if ( ! empty( $metaData['image'] ) ) {
|
165 |
+
$img = $KcSeoWPSchema->imageInfo( absint( $metaData['image'] ) );
|
166 |
+
$blogPosting["image"] = array(
|
167 |
+
"@type" => "ImageObject",
|
168 |
+
"url" => $KcSeoWPSchema->sanitizeOutPut( $img['url'], 'url' ),
|
169 |
+
"height" => $img['height'],
|
170 |
+
"width" => $img['width']
|
171 |
+
);
|
172 |
+
}
|
173 |
+
if ( ! empty( $metaData['datePublished'] ) ) {
|
174 |
+
$blogPosting["datePublished"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['datePublished'] );
|
175 |
+
}
|
176 |
+
if ( ! empty( $metaData['dateModified'] ) ) {
|
177 |
+
$blogPosting["dateModified"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['dateModified'] );
|
178 |
+
}
|
179 |
+
if ( ! empty( $metaData['publisher'] ) ) {
|
180 |
+
if ( ! empty( $metaData['publisherImage'] ) ) {
|
181 |
+
$img = $KcSeoWPSchema->imageInfo( absint( $metaData['publisherImage'] ) );
|
182 |
+
$plA = array(
|
183 |
+
"@type" => "ImageObject",
|
184 |
+
"url" => $KcSeoWPSchema->sanitizeOutPut( $img['url'], 'url' ),
|
185 |
+
"height" => $img['height'],
|
186 |
+
"width" => $img['width']
|
187 |
+
);
|
188 |
+
} else {
|
189 |
+
$plA = array();
|
190 |
+
}
|
191 |
+
$blogPosting["publisher"] = array(
|
192 |
+
"@type" => "Organization",
|
193 |
+
"name" => $KcSeoWPSchema->sanitizeOutPut( $metaData['publisher'] ),
|
194 |
+
"logo" => $plA
|
195 |
+
);
|
196 |
+
}
|
197 |
+
if ( ! empty( $metaData['description'] ) ) {
|
198 |
+
$blogPosting["description"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['description'],
|
199 |
+
'textarea' );
|
200 |
+
}
|
201 |
+
if ( ! empty( $metaData['articleBody'] ) ) {
|
202 |
+
$blogPosting["articleBody"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['articleBody'],
|
203 |
+
'textarea' );
|
204 |
+
}
|
205 |
+
$html .= $this->get_jsonEncode( $blogPosting );
|
206 |
+
break;
|
207 |
+
|
208 |
+
case 'event':
|
209 |
+
$event = array();
|
210 |
+
$event["@context"] = "http://schema.org";
|
211 |
+
$event["@type"] = "Event";
|
212 |
+
if ( ! empty( $metaData['name'] ) ) {
|
213 |
+
$event["name"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['name'] );
|
214 |
+
}
|
215 |
+
if ( ! empty( $metaData['startDate'] ) ) {
|
216 |
+
$event["startDate"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['startDate'] );
|
217 |
+
}
|
218 |
+
if ( ! empty( $metaData['endDate'] ) ) {
|
219 |
+
$event["endDate"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['endDate'] );
|
220 |
+
}
|
221 |
+
if ( ! empty( $metaData['description'] ) ) {
|
222 |
+
$event["description"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['description'],
|
223 |
+
'textarea' );
|
224 |
+
}
|
225 |
+
if ( ! empty( $metaData['performerName'] ) ) {
|
226 |
+
$event["performer"] = array(
|
227 |
+
"@type" => "Person",
|
228 |
+
"name" => $KcSeoWPSchema->sanitizeOutPut( $metaData['performerName'] )
|
229 |
+
);
|
230 |
+
}
|
231 |
+
if ( ! empty( $metaData['image'] ) ) {
|
232 |
+
$event["image"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['image'], 'url' );
|
233 |
+
}
|
234 |
+
if ( ! empty( $metaData['locationName'] ) ) {
|
235 |
+
$event["location"] = array(
|
236 |
+
"@type" => "Place",
|
237 |
+
"name" => $KcSeoWPSchema->sanitizeOutPut( $metaData['locationName'] ),
|
238 |
+
"address" => $KcSeoWPSchema->sanitizeOutPut( $metaData['locationAddress'] )
|
239 |
+
);
|
240 |
+
}
|
241 |
+
if ( ! empty( $metaData['price'] ) ) {
|
242 |
+
$event["offers"] = array(
|
243 |
+
"@type" => "Offer",
|
244 |
+
"price" => $KcSeoWPSchema->sanitizeOutPut( $metaData['price'] )
|
245 |
+
);
|
246 |
+
if ( ! empty( $metaData['priceCurrency'] ) ) {
|
247 |
+
$event["offers"]['priceCurrency'] = $KcSeoWPSchema->sanitizeOutPut( $metaData['priceCurrency'] );
|
248 |
+
}
|
249 |
+
if ( ! empty( $metaData['url'] ) ) {
|
250 |
+
$event["offers"]['url'] = $KcSeoWPSchema->sanitizeOutPut( $metaData['url'], 'url' );
|
251 |
+
}
|
252 |
+
if ( ! empty( $metaData['availability'] ) ) {
|
253 |
+
$event["offers"]['availability'] = $KcSeoWPSchema->sanitizeOutPut( $metaData['availability'] );
|
254 |
+
}
|
255 |
+
if ( ! empty( $metaData['validFrom'] ) ) {
|
256 |
+
$event["offers"]['validFrom'] = $KcSeoWPSchema->sanitizeOutPut( $metaData['validFrom'] );
|
257 |
+
}
|
258 |
+
}
|
259 |
+
if ( ! empty( $metaData['url'] ) ) {
|
260 |
+
$event["url"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['url'], 'url' );
|
261 |
+
}
|
262 |
+
$html .= $this->get_jsonEncode( $event );
|
263 |
+
break;
|
264 |
+
|
265 |
+
case 'product':
|
266 |
+
$product = array();
|
267 |
+
$product["@context"] = "http://schema.org";
|
268 |
+
$product["@type"] = "Product";
|
269 |
+
if ( ! empty( $metaData['name'] ) ) {
|
270 |
+
$product["name"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['name'] );
|
271 |
+
}
|
272 |
+
if ( ! empty( $metaData['image'] ) ) {
|
273 |
+
$img = $KcSeoWPSchema->imageInfo( absint( $metaData['image'] ) );
|
274 |
+
$product["image"] = $KcSeoWPSchema->sanitizeOutPut( $img['url'], 'url' );
|
275 |
+
}
|
276 |
+
if ( ! empty( $metaData['description'] ) ) {
|
277 |
+
$product["description"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['description'] );
|
278 |
+
}
|
279 |
+
if ( ! empty( $metaData['sku'] ) ) {
|
280 |
+
$product["sku"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['sku'] );
|
281 |
+
}
|
282 |
+
if ( ! empty( $metaData['brand'] ) ) {
|
283 |
+
$product["brand"] = array(
|
284 |
+
"@type" => "Thing",
|
285 |
+
"name" => $KcSeoWPSchema->sanitizeOutPut( $metaData['brand'] )
|
286 |
+
);
|
287 |
+
}
|
288 |
+
if ( ! empty( $metaData['ratingValue'] ) ) {
|
289 |
+
$product["aggregateRating"] = array(
|
290 |
+
"@type" => "AggregateRating",
|
291 |
+
"ratingValue" => ! empty( $metaData['ratingValue'] ) ? $KcSeoWPSchema->sanitizeOutPut( $metaData['ratingValue'] ) : null,
|
292 |
+
"reviewCount" => ! empty( $metaData['reviewCount'] ) ? $KcSeoWPSchema->sanitizeOutPut( $metaData['reviewCount'] ) : null
|
293 |
+
);
|
294 |
+
}
|
295 |
+
if ( ! empty( $metaData['reviewRatingValue'] ) || ! empty( $metaData['reviewBestRating'] ) || ! empty( $metaData['reviewWorstRating'] ) ) {
|
296 |
+
$product["review"] = array(
|
297 |
+
"@type" => "Review",
|
298 |
+
"reviewRating" => array(
|
299 |
+
"@type" => "Rating",
|
300 |
+
"ratingValue" => ! empty( $metaData['reviewRatingValue'] ) ? $KcSeoWPSchema->sanitizeOutPut( $metaData['reviewRatingValue'] ) : null,
|
301 |
+
"bestRating" => ! empty( $metaData['reviewBestRating'] ) ? $KcSeoWPSchema->sanitizeOutPut( $metaData['reviewBestRating'] ) : null,
|
302 |
+
"worstRating" => ! empty( $metaData['reviewWorstRating'] ) ? $KcSeoWPSchema->sanitizeOutPut( $metaData['reviewWorstRating'] ) : null
|
303 |
+
),
|
304 |
+
"author" => array(
|
305 |
+
"@type" => "Person",
|
306 |
+
"name" => ! empty( $metaData['reviewAuthor'] ) ? $KcSeoWPSchema->sanitizeOutPut( $metaData['reviewAuthor'] ) : null
|
307 |
+
)
|
308 |
+
);
|
309 |
+
}
|
310 |
+
if ( ! empty( $metaData['price'] ) ) {
|
311 |
+
$product["offers"] = array(
|
312 |
+
"@type" => "Offer",
|
313 |
+
"price" => $KcSeoWPSchema->sanitizeOutPut( $metaData['price'] ),
|
314 |
+
"priceValidUntil" => $KcSeoWPSchema->sanitizeOutPut( $metaData['priceValidUntil'] ),
|
315 |
+
"priceCurrency" => ! empty( $metaData['priceCurrency'] ) ? $KcSeoWPSchema->sanitizeOutPut( $metaData['priceCurrency'] ) : null,
|
316 |
+
"itemCondition" => ! empty( $metaData['itemCondition'] ) ? $KcSeoWPSchema->sanitizeOutPut( $metaData['itemCondition'] ) : null,
|
317 |
+
"availability" => ! empty( $metaData['availability'] ) ? $KcSeoWPSchema->sanitizeOutPut( $metaData['availability'] ) : null,
|
318 |
+
"url" => ! empty( $metaData['url'] ) ? $KcSeoWPSchema->sanitizeOutPut( $metaData['url'] ) : null
|
319 |
+
);
|
320 |
+
}
|
321 |
+
$html .= $this->get_jsonEncode( $product );
|
322 |
+
break;
|
323 |
+
|
324 |
+
case 'video':
|
325 |
+
$video = array();
|
326 |
+
$video["@context"] = "http://schema.org";
|
327 |
+
$video["@type"] = "VideoObject";
|
328 |
+
if ( ! empty( $metaData['name'] ) ) {
|
329 |
+
$video["name"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['name'] );
|
330 |
+
}
|
331 |
+
if ( ! empty( $metaData['description'] ) ) {
|
332 |
+
$video["description"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['description'],
|
333 |
+
'textarea' );
|
334 |
+
}
|
335 |
+
if ( ! empty( $metaData['description'] ) ) {
|
336 |
+
$video["description"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['description'] );
|
337 |
+
}
|
338 |
+
if ( ! empty( $metaData['thumbnailUrl'] ) ) {
|
339 |
+
$video["thumbnailUrl"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['thumbnailUrl'], 'url' );
|
340 |
+
}
|
341 |
+
if ( ! empty( $metaData['uploadDate'] ) ) {
|
342 |
+
$video["uploadDate"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['uploadDate'] );
|
343 |
+
}
|
344 |
+
if ( ! empty( $metaData['duration'] ) ) {
|
345 |
+
$video["duration"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['duration'] );
|
346 |
+
}
|
347 |
+
if ( ! empty( $metaData['contentUrl'] ) ) {
|
348 |
+
$video["contentUrl"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['contentUrl'], 'url' );
|
349 |
+
}
|
350 |
+
if ( ! empty( $metaData['interactionCount'] ) ) {
|
351 |
+
$video["interactionCount"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['interactionCount'] );
|
352 |
+
}
|
353 |
+
if ( ! empty( $metaData['expires'] ) ) {
|
354 |
+
$video["expires"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['expires'] );
|
355 |
+
}
|
356 |
+
$html .= $this->get_jsonEncode( $video );
|
357 |
+
break;
|
358 |
+
|
359 |
+
case 'service':
|
360 |
+
$service = array();
|
361 |
+
$service["@context"] = "http://schema.org";
|
362 |
+
$service["@type"] = "Service";
|
363 |
+
if ( ! empty( $metaData['name'] ) ) {
|
364 |
+
$service["name"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['name'] );
|
365 |
+
}
|
366 |
+
if ( ! empty( $metaData['serviceType'] ) ) {
|
367 |
+
$service["serviceType"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['serviceType'] );
|
368 |
+
}
|
369 |
+
/*
|
370 |
if ( ! empty( $metaData['locationName'] ) ) {
|
371 |
$service["location"] = array(
|
372 |
"@type" => "Place",
|
374 |
"address" => $KcSeoWPSchema->sanitizeOutPut( $metaData['locationAddress'] )
|
375 |
);
|
376 |
}*/
|
377 |
+
if ( ! empty( $metaData['award'] ) ) {
|
378 |
+
$service["award"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['award'] );
|
379 |
+
}
|
380 |
+
if ( ! empty( $metaData['category'] ) ) {
|
381 |
+
$service["category"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['category'] );
|
382 |
+
}
|
383 |
+
if ( ! empty( $metaData['providerMobility'] ) ) {
|
384 |
+
$service["providerMobility"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['providerMobility'] );
|
385 |
+
}
|
386 |
+
if ( ! empty( $metaData['additionalType'] ) ) {
|
387 |
+
$service["additionalType"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['additionalType'] );
|
388 |
+
}
|
389 |
+
if ( ! empty( $metaData['alternateName'] ) ) {
|
390 |
+
$service["alternateName"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['alternateName'] );
|
391 |
+
}
|
392 |
+
if ( ! empty( $metaData['image'] ) ) {
|
393 |
+
$service["image"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['image'] );
|
394 |
+
}
|
395 |
+
if ( ! empty( $metaData['mainEntityOfPage'] ) ) {
|
396 |
+
$service["mainEntityOfPage"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['mainEntityOfPage'] );
|
397 |
+
}
|
398 |
+
if ( ! empty( $metaData['sameAs'] ) ) {
|
399 |
+
$service["sameAs"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['sameAs'] );
|
400 |
+
}
|
401 |
+
if ( ! empty( $metaData['url'] ) ) {
|
402 |
+
$service["url"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['url'], 'url' );
|
403 |
+
}
|
404 |
+
$html .= $this->get_jsonEncode( $service );
|
405 |
+
break;
|
406 |
+
|
407 |
+
case 'review':
|
408 |
+
$review = array();
|
409 |
+
$review["@context"] = "http://schema.org";
|
410 |
+
$review["@type"] = "Review";
|
411 |
+
if ( ! empty( $metaData['itemName'] ) ) {
|
412 |
+
$review["itemReviewed"] = array(
|
413 |
+
"@type" => "Thing",
|
414 |
+
"name" => $KcSeoWPSchema->sanitizeOutPut( $metaData['itemName'] )
|
415 |
+
);
|
416 |
+
}
|
417 |
+
if ( ! empty( $metaData['ratingValue'] ) ) {
|
418 |
+
$review["reviewRating"] = array(
|
419 |
+
"@type" => "Rating",
|
420 |
+
"ratingValue" => $KcSeoWPSchema->sanitizeOutPut( $metaData['ratingValue'] ),
|
421 |
+
"bestRating" => $KcSeoWPSchema->sanitizeOutPut( $metaData['bestRating'] ),
|
422 |
+
"worstRating" => $KcSeoWPSchema->sanitizeOutPut( $metaData['worstRating'] )
|
423 |
+
);
|
424 |
+
}
|
425 |
+
if ( ! empty( $metaData['name'] ) ) {
|
426 |
+
$review["name"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['name'] );
|
427 |
+
}
|
428 |
+
if ( ! empty( $metaData['author'] ) ) {
|
429 |
+
$review["author"] = array(
|
430 |
+
"@type" => "Person",
|
431 |
+
"name" => $KcSeoWPSchema->sanitizeOutPut( $metaData['author'] )
|
432 |
+
);
|
433 |
+
}
|
434 |
+
if ( ! empty( $metaData['reviewBody'] ) ) {
|
435 |
+
$review["reviewBody"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['reviewBody'] );
|
436 |
+
}
|
437 |
+
if ( ! empty( $metaData['datePublished'] ) ) {
|
438 |
+
$review["datePublished"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['datePublished'] );
|
439 |
+
}
|
440 |
+
if ( ! empty( $metaData['publisher'] ) ) {
|
441 |
+
$review["publisher"] = array(
|
442 |
+
"@type" => "Organization",
|
443 |
+
"name" => $KcSeoWPSchema->sanitizeOutPut( $metaData['publisher'] )
|
444 |
+
);
|
445 |
+
}
|
446 |
+
$html .= $this->get_jsonEncode( $review );
|
447 |
+
break;
|
448 |
+
case 'aggregate_rating':
|
449 |
+
$aRating = array();
|
450 |
+
$aRating["@context"] = "http://schema.org";
|
451 |
+
$aRating["@type"] = ! empty( $metaData['schema_type'] ) ? $metaData['schema_type'] : "LocalBusiness";
|
452 |
+
if ( ! empty( $metaData['name'] ) ) {
|
453 |
+
$aRating["name"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['name'] );
|
454 |
+
}
|
455 |
+
if ( ! empty( $metaData['description'] ) ) {
|
456 |
+
$aRating["description"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['description'],
|
457 |
+
'textarea' );
|
458 |
+
}
|
459 |
+
if ( $aRating["@type"] != "Organization" ) {
|
460 |
+
if ( ! empty( $metaData['image'] ) ) {
|
461 |
+
$img = $KcSeoWPSchema->imageInfo( absint( $metaData['image'] ) );
|
462 |
+
$aRating["image"] = array(
|
463 |
+
"@type" => "ImageObject",
|
464 |
+
"url" => $KcSeoWPSchema->sanitizeOutPut( $img['url'], 'url' ),
|
465 |
+
"height" => $img['height'],
|
466 |
+
"width" => $img['width']
|
467 |
+
);
|
468 |
+
}
|
469 |
+
if ( ! empty( $metaData['priceRange'] ) ) {
|
470 |
+
$aRating["priceRange"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['priceRange'] );
|
471 |
+
}
|
472 |
+
if ( ! empty( $metaData['telephone'] ) ) {
|
473 |
+
$aRating["telephone"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['telephone'] );
|
474 |
+
}
|
475 |
+
|
476 |
+
if ( ! empty( $metaData['address'] ) ) {
|
477 |
+
$aRating["address"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['address'] );
|
478 |
+
}
|
479 |
+
}
|
480 |
+
|
481 |
+
if ( ! empty( $metaData['ratingValue'] ) ) {
|
482 |
+
$rValue = array();
|
483 |
+
$rValue["@type"] = "AggregateRating";
|
484 |
+
$rValue["ratingValue"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['ratingValue'] );
|
485 |
+
if ( ! empty( $metaData['bestRating'] ) ) {
|
486 |
+
$rValue["bestRating"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['bestRating'] );
|
487 |
+
}
|
488 |
+
if ( ! empty( $metaData['worstRating'] ) ) {
|
489 |
+
$rValue["worstRating"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['worstRating'] );
|
490 |
+
}
|
491 |
+
if ( ! empty( $metaData['ratingCount'] ) ) {
|
492 |
+
$rValue["ratingCount"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['ratingCount'] );
|
493 |
+
}
|
494 |
+
|
495 |
+
$aRating["aggregateRating"] = $rValue;
|
496 |
+
}
|
497 |
+
$html .= $this->get_jsonEncode( $aRating );
|
498 |
+
break;
|
499 |
+
|
500 |
+
case 'restaurant':
|
501 |
+
$restaurant = array();
|
502 |
+
$restaurant["@context"] = "http://schema.org";
|
503 |
+
$restaurant["@type"] = "Restaurant";
|
504 |
+
if ( ! empty( $metaData['name'] ) ) {
|
505 |
+
$restaurant["name"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['name'] );
|
506 |
+
}
|
507 |
+
if ( ! empty( $metaData['description'] ) ) {
|
508 |
+
$restaurant["description"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['description'],
|
509 |
+
'textarea' );
|
510 |
+
}
|
511 |
+
if ( ! empty( $metaData['openingHours'] ) ) {
|
512 |
+
$restaurant["openingHours"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['openingHours'],
|
513 |
+
'textarea' );
|
514 |
+
}
|
515 |
+
if ( ! empty( $metaData['telephone'] ) ) {
|
516 |
+
$restaurant["telephone"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['telephone'] );
|
517 |
+
}
|
518 |
+
if ( ! empty( $metaData['menu'] ) ) {
|
519 |
+
$restaurant["menu"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['menu'], 'url' );
|
520 |
+
}
|
521 |
+
if ( ! empty( $metaData['image'] ) ) {
|
522 |
+
$img = $KcSeoWPSchema->imageInfo( absint( $metaData['image'] ) );
|
523 |
+
$restaurant["image"] = $KcSeoWPSchema->sanitizeOutPut( $img['url'], 'url' );
|
524 |
+
}
|
525 |
+
if ( ! empty( $metaData['address'] ) ) {
|
526 |
+
$restaurant["address"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['address'], 'textarea' );
|
527 |
+
}
|
528 |
+
if ( ! empty( $metaData['priceRange'] ) ) {
|
529 |
+
$restaurant["priceRange"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['priceRange'] );
|
530 |
+
}
|
531 |
+
if ( ! empty( $metaData['servesCuisine'] ) ) {
|
532 |
+
$restaurant["servesCuisine"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['servesCuisine'] );
|
533 |
+
}
|
534 |
+
$html .= $this->get_jsonEncode( $restaurant );
|
535 |
+
break;
|
536 |
+
|
537 |
+
case 'localBusiness':
|
538 |
+
$localBusiness = array();
|
539 |
+
$localBusiness["@context"] = "http://schema.org";
|
540 |
+
$localBusiness["@type"] = "LocalBusiness";
|
541 |
+
if ( ! empty( $metaData['name'] ) ) {
|
542 |
+
$localBusiness["name"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['name'] );
|
543 |
+
}
|
544 |
+
if ( ! empty( $metaData['description'] ) ) {
|
545 |
+
$localBusiness["description"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['description'],
|
546 |
+
'textarea' );
|
547 |
+
}
|
548 |
+
if ( ! empty( $metaData['image'] ) ) {
|
549 |
+
$img = $KcSeoWPSchema->imageInfo( absint( $metaData['image'] ) );
|
550 |
+
$localBusiness["image"] = $KcSeoWPSchema->sanitizeOutPut( $img['url'], 'url' );
|
551 |
+
}
|
552 |
+
if ( ! empty( $metaData['priceRange'] ) ) {
|
553 |
+
$localBusiness["priceRange"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['priceRange'] );
|
554 |
+
}
|
555 |
+
if ( ! empty( $metaData['addressLocality'] ) || ! empty( $metaData['addressRegion'] )
|
556 |
+
|| ! empty( $metaData['postalCode'] ) || ! empty( $metaData['streetAddress'] ) ) {
|
557 |
+
$localBusiness["address"] = array(
|
558 |
+
"@type" => "PostalAddress",
|
559 |
+
"addressLocality" => $KcSeoWPSchema->sanitizeOutPut( $metaData['addressLocality'] ),
|
560 |
+
"addressRegion" => $KcSeoWPSchema->sanitizeOutPut( $metaData['addressRegion'] ),
|
561 |
+
"postalCode" => $KcSeoWPSchema->sanitizeOutPut( $metaData['postalCode'] ),
|
562 |
+
"streetAddress" => $KcSeoWPSchema->sanitizeOutPut( $metaData['streetAddress'] )
|
563 |
+
);
|
564 |
+
}
|
565 |
+
|
566 |
+
if ( ! empty( $metaData['telephone'] ) ) {
|
567 |
+
$localBusiness["telephone"] = $KcSeoWPSchema->sanitizeOutPut( $metaData['telephone'] );
|
568 |
+
}
|
569 |
+
$html .= $this->get_jsonEncode( $localBusiness );
|
570 |
+
break;
|
571 |
+
|
572 |
+
default:
|
573 |
+
break;
|
574 |
+
}
|
575 |
+
|
576 |
+
}
|
577 |
+
|
578 |
+
return $html;
|
579 |
+
}
|
580 |
+
|
581 |
+
function get_field( $data ) {
|
582 |
+
$html = null;
|
583 |
+
global $KcSeoWPSchema;
|
584 |
+
$id = $data['id'];
|
585 |
+
$name = $data['name'];
|
586 |
+
$value = $data['value'];
|
587 |
+
$attr = ! empty( $data['attr'] ) ? $data['attr'] : null;
|
588 |
+
|
589 |
+
$class = isset( $data['class'] ) ? ( $data['class'] ? $data['class'] : null ) : null;
|
590 |
+
$require = ( isset( $data['required'] ) ? ( $data['required'] ? sprintf( '<span data-kcseo-tooltip="%s" class="required">*</span>', __( "Required", "wp-seo-structured-data-schema-pro" ) ) : null ) : null );
|
591 |
+
$recommended = ( isset( $data['recommended'] ) ? ( $data['recommended'] ? sprintf( '<span data-kcseo-tooltip="%s" class="recommended">*</span>', __( "Recommended", "wp-seo-structured-data-schema-pro" ) ) : null ) : null );
|
592 |
+
$title = ( isset( $data['title'] ) ? ( $data['title'] ? $data['title'] : null ) : null );
|
593 |
+
$desc = ( isset( $data['desc'] ) ? ( $data['desc'] ? $data['desc'] : null ) : null );
|
594 |
+
$holderClass = ( ! empty( $data['holderClass'] ) ? $data['holderClass'] : null );
|
595 |
+
$html .= "<div class='field-container {$holderClass}' id='" . $id . '-container' . "'>";
|
596 |
+
$html .= "<label class='field-label' for='{$id}'>{$title}{$require}{$recommended}</label>";
|
597 |
+
$html .= "<div class='field-content' id='" . $id . '-content' . "'>";
|
598 |
+
switch ( $data['type'] ) {
|
599 |
+
case 'checkbox':
|
600 |
+
$checked = ( $value ? "checked" : null );
|
601 |
+
$html .= "<div class='kSeo-checkbox-wrapper'>";
|
602 |
+
$html .= "<label for='{$id}'><input type='checkbox' id='{$id}' class='{$class}' name='{$name}' {$checked} value='1' /> Enable</label>";
|
603 |
+
$html .= "</div>";
|
604 |
+
break;
|
605 |
+
|
606 |
+
case 'text':
|
607 |
+
$html .= "<input type='text' id='{$id}' class='{$class}' name='{$name}' value='" . esc_html( $value ) . "' />";
|
608 |
+
break;
|
609 |
+
|
610 |
+
case 'number':
|
611 |
+
$html .= "<input type='number' {$attr} id='{$id}' class='{$class}' name='{$name}' value='" . esc_attr( $value ) . "' />";
|
612 |
+
break;
|
613 |
+
case 'textarea':
|
614 |
+
$html .= "<textarea id='{$id}' class='{$class}' name='{$name}' >" . wp_kses( $value,
|
615 |
+
array() ) . "</textarea>";
|
616 |
+
break;
|
617 |
+
|
618 |
+
case 'image':
|
619 |
+
$html .= '<div class="kSeo-image">';
|
620 |
+
$ImageId = ! empty( $value ) ? absint( $value ) : 0;
|
621 |
+
$image = $ingInfo = null;
|
622 |
+
if ( $ImageId ) {
|
623 |
+
$image = wp_get_attachment_image( $ImageId, "thumbnail" );
|
624 |
+
$imgData = $KcSeoWPSchema->imageInfo( $ImageId );
|
625 |
+
$ingInfo .= "<span><strong>URL: </strong>{$imgData['url']}</span>";
|
626 |
+
$ingInfo .= "<span><strong>Width: </strong>{$imgData['width']}px</span>";
|
627 |
+
$ingInfo .= "<span><strong>Height: </strong>{$imgData['height']}px</span>";
|
628 |
+
}
|
629 |
+
$html .= "<div class='kSeo-image-wrapper'>";
|
630 |
+
$html .= '<span class="kSeoImgAdd"><span class="dashicons dashicons-plus-alt"></span></span>';
|
631 |
+
$html .= '<span class="kSeoImgRemove ' . ( $image ? null : "kSeo-hidden" ) . '"><span class="dashicons dashicons-trash"></span></span>';
|
632 |
+
$html .= '<div class="kSeo-image-preview">' . $image . '</div>';
|
633 |
+
$html .= "<input type='hidden' name='{$name}' value='" . absint( $ImageId ) . "' />";
|
634 |
+
$html .= "</div>";
|
635 |
+
$html .= "<div class='image-info'>{$ingInfo}</div>";
|
636 |
+
$html .= '</div>';
|
637 |
+
break;
|
638 |
+
case 'select':
|
639 |
+
$html .= "<select name='{$name}' class='select2 {$class}' id='{$id}'>";
|
640 |
+
if ( ! empty( $data['empty'] ) ) {
|
641 |
+
$html .= "<option value=''>{$data['empty']}</option>";
|
642 |
+
}
|
643 |
+
if ( ! empty( $data['options'] ) && is_array( $data['options'] ) ) {
|
644 |
+
if ( $this->isAssoc( $data['options'] ) ) {
|
645 |
+
foreach ( $data['options'] as $optKey => $optValue ) {
|
646 |
+
$slt = ( $optKey == $value ? "selected" : null );
|
647 |
+
$html .= "<option value='" . esc_attr( $optKey ) . "' {$slt}>" . esc_html( $optValue ) . "</option>";
|
648 |
+
}
|
649 |
+
} else {
|
650 |
+
foreach ( $data['options'] as $optValue ) {
|
651 |
+
$slt = ( $optValue == $value ? "selected" : null );
|
652 |
+
$html .= "<option value='" . esc_attr( $optValue ) . "' {$slt}>" . esc_html( $optValue ) . "</option>";
|
653 |
+
}
|
654 |
+
}
|
655 |
+
}
|
656 |
+
$html .= "</select>";
|
657 |
+
break;
|
658 |
+
case 'schema_type':
|
659 |
+
$html .= "<select name='{$name}' class='select2 {$class}' id='{$id}'>";
|
660 |
+
if ( ! empty( $data['empty'] ) ) {
|
661 |
+
$html .= "<option value=''>{$data['empty']}</option>";
|
662 |
+
}
|
663 |
+
|
664 |
+
foreach ( $data['options'] as $key => $site ) {
|
665 |
+
if ( is_array( $site ) ) {
|
666 |
+
$slt = ( $key == $value ? "selected" : null );
|
667 |
+
$html .= "<option value='$key' $slt> $key</option>";
|
668 |
+
foreach ( $site as $inKey => $inSite ) {
|
669 |
+
if ( is_array( $inSite ) ) {
|
670 |
+
$slt = ( $inKey == $value ? "selected" : null );
|
671 |
+
$html .= "<option value='$inKey' $slt> $inKey</option>";
|
672 |
+
foreach ( $inSite as $inInKey => $inInSite ) {
|
673 |
+
if ( is_array( $inInSite ) ) {
|
674 |
+
$slt = ( $inInKey == $value ? "selected" : null );
|
675 |
+
$html .= "<option value='$inInKey' $slt> $inInKey</option>";
|
676 |
+
foreach ( $inInSite as $iSite ) {
|
677 |
+
$slt = ( $iSite == $value ? "selected" : null );
|
678 |
+
$html .= "<option value='$iSite' $slt> $iSite</option>";
|
679 |
+
}
|
680 |
+
} else {
|
681 |
+
$slt = ( $inInSite == $value ? "selected" : null );
|
682 |
+
$html .= "<option value='$inInSite' $slt> $inInSite</option>";
|
683 |
+
}
|
684 |
+
}
|
685 |
+
} else {
|
686 |
+
$slt = ( $inSite == $value ? "selected" : null );
|
687 |
+
$html .= "<option value='$inSite' $slt> $inSite</option>";
|
688 |
+
}
|
689 |
+
}
|
690 |
+
} else {
|
691 |
+
$slt = ( $site == $value ? "selected" : null );
|
692 |
+
$html .= "<option value='$site' $slt>$site</option>";
|
693 |
+
}
|
694 |
+
}
|
695 |
+
$html .= "</select>";
|
696 |
+
break;
|
697 |
+
default:
|
698 |
+
$html .= "<input id='{$id}' type='{$data['type']}' value='" . esc_attr( $value ) . "' name='$name' />";
|
699 |
+
break;
|
700 |
+
|
701 |
+
}
|
702 |
+
$html .= "<p class='description'>{$desc}</p>";
|
703 |
+
$html .= "</div>";
|
704 |
+
$html .= "</div>";
|
705 |
+
|
706 |
+
return $html;
|
707 |
+
}
|
708 |
+
|
709 |
+
function get_jsonEncode( $data = array() ) {
|
710 |
+
$html = null;
|
711 |
+
/** @var TYPE_NAME $data */
|
712 |
+
if ( ! empty( $data ) && is_array( $data ) ) {
|
713 |
+
$html .= '<script type="application/ld+json">' . json_encode( $data,
|
714 |
+
JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES ) . '</script>';
|
715 |
+
}
|
716 |
+
|
717 |
+
return $html;
|
718 |
+
}
|
719 |
+
|
720 |
+
function imgInfo( $url = null ) {
|
721 |
+
$img = array();
|
722 |
+
if ( $url ) {
|
723 |
+
$imgA = @getimagesize( $url );
|
724 |
+
if ( is_array( $imgA ) && ! empty( $imgA ) ) {
|
725 |
+
$img['width'] = $imgA[0];
|
726 |
+
$img['height'] = $imgA[1];
|
727 |
+
} else {
|
728 |
+
$img['width'] = 0;
|
729 |
+
$img['height'] = 0;
|
730 |
+
}
|
731 |
+
}
|
732 |
+
|
733 |
+
return $img;
|
734 |
+
}
|
735 |
+
|
736 |
+
function isAssoc( $array ) {
|
737 |
+
$keys = array_keys( $array );
|
738 |
+
|
739 |
+
return $keys !== array_keys( $keys );
|
740 |
+
}
|
741 |
+
|
742 |
+
|
743 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
744 |
endif;
|
lib/views/schema-options.php
CHANGED
@@ -39,7 +39,7 @@ $schemaModel = new KcSeoSchemaModel;
|
|
39 |
<?php
|
40 |
$siteType = !empty($settings['site_type']) ? $settings['site_type'] : null;
|
41 |
|
42 |
-
foreach (
|
43 |
if (is_array($site)) {
|
44 |
$slt = ($key == $siteType ? "selected" : null);
|
45 |
echo "<option value='$key' $slt> $key</option>";
|
@@ -276,7 +276,7 @@ $schemaModel = new KcSeoSchemaModel;
|
|
276 |
<option value="">Select a country</option>
|
277 |
<?php
|
278 |
$aCountry = !empty($settings['address']['country']) ? $settings['address']['country'] : null;
|
279 |
-
foreach (
|
280 |
$slt = ($country == $aCountry ? "selected" : null);
|
281 |
echo "<option value='$country' $slt>$country</option>";
|
282 |
}
|
@@ -320,17 +320,17 @@ $schemaModel = new KcSeoSchemaModel;
|
|
320 |
</div>
|
321 |
<div id="tabs-kcseo-container" class="rt-tab-container">
|
322 |
<ul class="rt-tab-nav">
|
323 |
-
<li class="
|
324 |
href="#tab-logo-url"><?php _e("Organization Logo", "wp-seo-structured-data-schema") ?></a>
|
325 |
</li>
|
326 |
-
<li>
|
327 |
<a href="#tab-social-profile"><?php _e("Social Profile", "wp-seo-structured-data-schema") ?></a>
|
328 |
</li>
|
329 |
-
<li>
|
330 |
<a href="#tab-corporate-contract"><?php _e("Corporate Contacts", "wp-seo-structured-data-schema") ?></a>
|
331 |
</li>
|
332 |
</ul>
|
333 |
-
<div id="tab-logo-url" class="rt-tab-content">
|
334 |
<table width="100%" cellpadding="10" class="form-table">
|
335 |
<tr class="field_logo">
|
336 |
<th><?php _e("Select Organization Logo", "wp-seo-structured-data-schema") ?></th>
|
@@ -398,7 +398,7 @@ $schemaModel = new KcSeoSchemaModel;
|
|
398 |
foreach ($socialP as $socialD) {
|
399 |
$html .= "<div class='sfield'>";
|
400 |
$html .= "<select name='social[$i][id]'>";
|
401 |
-
foreach (
|
402 |
$slt = ($sId == $socialD['id'] ? "selected" : null);
|
403 |
$html .= "<option value='$sId' $slt>$social</option>";
|
404 |
}
|
@@ -429,7 +429,7 @@ $schemaModel = new KcSeoSchemaModel;
|
|
429 |
<select name="contact[contactType]" class="select2" style="width: 200px">
|
430 |
<?php
|
431 |
$contactType = !empty($settings['contact']['contactType']) ? $settings['contact']['contactType'] : null;
|
432 |
-
foreach (
|
433 |
$slt = ($cType == $contactType ? "selected" : null);
|
434 |
echo "<option value='$cType' $slt>$cType</option>";
|
435 |
}
|
@@ -487,7 +487,7 @@ $schemaModel = new KcSeoSchemaModel;
|
|
487 |
style="width: 50%">
|
488 |
<?php
|
489 |
$areaServed = !empty($settings['area_served']) ? $settings['area_served'] : array();
|
490 |
-
foreach (
|
491 |
$slt = (in_array($country, $areaServed) ? "selected" : null);
|
492 |
echo "<option value='$country' $slt>$country</option>";
|
493 |
}
|
@@ -503,7 +503,7 @@ $schemaModel = new KcSeoSchemaModel;
|
|
503 |
multiple="multiple">
|
504 |
<?php
|
505 |
$lanAvailable = !empty($settings['availableLanguage']) ? $settings['availableLanguage'] : array();
|
506 |
-
foreach (
|
507 |
$slt = (in_array($language, $lanAvailable) ? "selected" : null);
|
508 |
echo "<option value='$language' $slt>$language</option>";
|
509 |
}
|
39 |
<?php
|
40 |
$siteType = !empty($settings['site_type']) ? $settings['site_type'] : null;
|
41 |
|
42 |
+
foreach (KcSeoOptions::getSiteTypes() as $key => $site) {
|
43 |
if (is_array($site)) {
|
44 |
$slt = ($key == $siteType ? "selected" : null);
|
45 |
echo "<option value='$key' $slt> $key</option>";
|
276 |
<option value="">Select a country</option>
|
277 |
<?php
|
278 |
$aCountry = !empty($settings['address']['country']) ? $settings['address']['country'] : null;
|
279 |
+
foreach (KcSeoOptions::getCountryList() as $country) {
|
280 |
$slt = ($country == $aCountry ? "selected" : null);
|
281 |
echo "<option value='$country' $slt>$country</option>";
|
282 |
}
|
320 |
</div>
|
321 |
<div id="tabs-kcseo-container" class="rt-tab-container">
|
322 |
<ul class="rt-tab-nav">
|
323 |
+
<li class="active" data-id="tab-logo-url"><a
|
324 |
href="#tab-logo-url"><?php _e("Organization Logo", "wp-seo-structured-data-schema") ?></a>
|
325 |
</li>
|
326 |
+
<li data-id="tab-social-profile">
|
327 |
<a href="#tab-social-profile"><?php _e("Social Profile", "wp-seo-structured-data-schema") ?></a>
|
328 |
</li>
|
329 |
+
<li data-id="tab-corporate-contract">
|
330 |
<a href="#tab-corporate-contract"><?php _e("Corporate Contacts", "wp-seo-structured-data-schema") ?></a>
|
331 |
</li>
|
332 |
</ul>
|
333 |
+
<div id="tab-logo-url" class="rt-tab-content active">
|
334 |
<table width="100%" cellpadding="10" class="form-table">
|
335 |
<tr class="field_logo">
|
336 |
<th><?php _e("Select Organization Logo", "wp-seo-structured-data-schema") ?></th>
|
398 |
foreach ($socialP as $socialD) {
|
399 |
$html .= "<div class='sfield'>";
|
400 |
$html .= "<select name='social[$i][id]'>";
|
401 |
+
foreach (KcSeoOptions::getSocialList() as $sId => $social) {
|
402 |
$slt = ($sId == $socialD['id'] ? "selected" : null);
|
403 |
$html .= "<option value='$sId' $slt>$social</option>";
|
404 |
}
|
429 |
<select name="contact[contactType]" class="select2" style="width: 200px">
|
430 |
<?php
|
431 |
$contactType = !empty($settings['contact']['contactType']) ? $settings['contact']['contactType'] : null;
|
432 |
+
foreach (KcSeoOptions::getContactTypes() as $cType) {
|
433 |
$slt = ($cType == $contactType ? "selected" : null);
|
434 |
echo "<option value='$cType' $slt>$cType</option>";
|
435 |
}
|
487 |
style="width: 50%">
|
488 |
<?php
|
489 |
$areaServed = !empty($settings['area_served']) ? $settings['area_served'] : array();
|
490 |
+
foreach (KcSeoOptions::getCountryList() as $country) {
|
491 |
$slt = (in_array($country, $areaServed) ? "selected" : null);
|
492 |
echo "<option value='$country' $slt>$country</option>";
|
493 |
}
|
503 |
multiple="multiple">
|
504 |
<?php
|
505 |
$lanAvailable = !empty($settings['availableLanguage']) ? $settings['availableLanguage'] : array();
|
506 |
+
foreach (KcSeoOptions::getLanguageList() as $language) {
|
507 |
$slt = (in_array($language, $lanAvailable) ? "selected" : null);
|
508 |
echo "<option value='$language' $slt>$language</option>";
|
509 |
}
|
wp-seo-structured-data-schema.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: WP SEO Structured Data Schema
|
4 |
* Plugin URI: https://wpsemplugins.com/
|
5 |
* Description: Comprehensive JSON-LD based Structured Data solution for WordPress for adding schema for organizations, businesses, blog posts, ratings & more.
|
6 |
-
* Version: 2.5.
|
7 |
* Author: WPSEMPlugins
|
8 |
* Author URI: https://wpsemplugins.com/
|
9 |
* Text Domain: wp-seo-structured-data-schema
|
@@ -38,8 +38,7 @@ function KCSEO_uninstall()
|
|
38 |
global $KcSeoWPSchema;
|
39 |
$settings = get_option($KcSeoWPSchema->options['main_settings']);
|
40 |
if (!empty($settings['delete-data'])) {
|
41 |
-
|
42 |
-
$schemaFields = $schemas->schemaTypes();
|
43 |
|
44 |
$args = array(
|
45 |
'post_type' => array('page', 'post'),
|
3 |
* Plugin Name: WP SEO Structured Data Schema
|
4 |
* Plugin URI: https://wpsemplugins.com/
|
5 |
* Description: Comprehensive JSON-LD based Structured Data solution for WordPress for adding schema for organizations, businesses, blog posts, ratings & more.
|
6 |
+
* Version: 2.5.6
|
7 |
* Author: WPSEMPlugins
|
8 |
* Author URI: https://wpsemplugins.com/
|
9 |
* Text Domain: wp-seo-structured-data-schema
|
38 |
global $KcSeoWPSchema;
|
39 |
$settings = get_option($KcSeoWPSchema->options['main_settings']);
|
40 |
if (!empty($settings['delete-data'])) {
|
41 |
+
$schemaFields = KcSeoOptions::getSchemaTypes();
|
|
|
42 |
|
43 |
$args = array(
|
44 |
'post_type' => array('page', 'post'),
|