Version Description
- Update review Schema.
=
Download this release
Release Info
Developer | kcseopro |
Plugin | WP SEO Structured Data Schema |
Version | 2.6.0 |
Comparing to | |
See all releases |
Code changes from version 2.5.9 to 2.6.0
- README.txt +4 -1
- assets/css/admin.css +27 -3
- index.html +0 -0
- index.php +3 -0
- languages/wp-seo-structured-data-schema.pot +413 -523
- lib/classes/KcSeoHooks.php +68 -0
- lib/classes/KcSeoInit.php +2 -2
- lib/functions/KcSeoFunctions.php +21 -0
- lib/functions/KcSeoOptions.php +272 -146
- lib/init.php +22 -4
- lib/models/KcSeoSchemaModel.php +854 -742
- lib/views/settings.php +107 -60
- wp-seo-structured-data-schema.php +7 -3
README.txt
CHANGED
@@ -4,7 +4,7 @@ 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.2
|
7 |
-
Stable tag: 2.
|
8 |
License: GPLv3
|
9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
@@ -114,6 +114,9 @@ You'll find the [FAQ on WPSEMPlugins.com](https://wpsemplugins.com/wordpress-seo
|
|
114 |
|
115 |
== Changelog ==
|
116 |
|
|
|
|
|
|
|
117 |
== 2.5.9 =
|
118 |
* Fix PHP error
|
119 |
|
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.2
|
7 |
+
Stable tag: 2.6.0
|
8 |
License: GPLv3
|
9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
114 |
|
115 |
== Changelog ==
|
116 |
|
117 |
+
== 2.6.0 =
|
118 |
+
* Update review Schema.
|
119 |
+
|
120 |
== 2.5.9 =
|
121 |
* Fix PHP error
|
122 |
|
assets/css/admin.css
CHANGED
@@ -220,9 +220,11 @@ ul.rt-tab-nav li a:focus {
|
|
220 |
border: 1px solid #e7e7e7;
|
221 |
padding: 20px;
|
222 |
}
|
|
|
223 |
.rt-tab-container .rt-tab-content:not(.active) {
|
224 |
display: none;
|
225 |
}
|
|
|
226 |
div#rt-schema-tab-holder:after {
|
227 |
clear: both;
|
228 |
content: ".";
|
@@ -288,30 +290,52 @@ p.description.kco-telephone > span {
|
|
288 |
.field-container .field-label span {
|
289 |
margin-left: 5px;
|
290 |
}
|
|
|
291 |
p.description .required,
|
292 |
.field-container .field-label span.required {
|
293 |
color: red;
|
294 |
}
|
|
|
295 |
.field-container .field-label span.recommended {
|
296 |
color: #721c24;
|
297 |
}
|
|
|
298 |
/* tooltip */
|
299 |
|
300 |
-
[data-kcseo-tooltip]{
|
301 |
position: relative;
|
302 |
}
|
303 |
-
|
|
|
304 |
position: absolute;
|
305 |
left: 50%;
|
306 |
bottom: 100%;
|
307 |
content: attr(data-kcseo-tooltip);
|
308 |
-
background: rgba(0,0,0
|
309 |
color: #fff;
|
310 |
padding: .5em 1em;
|
311 |
border-radius: 7px;
|
312 |
transform: translateX(-50%);
|
313 |
transition: all ease-in-out 250ms;
|
314 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
315 |
.schema-holder .ui-tabs .ui-tabs-nav .ui-tabs-anchor {
|
316 |
padding: .5em 0.6em;
|
317 |
font-size: 14px;
|
220 |
border: 1px solid #e7e7e7;
|
221 |
padding: 20px;
|
222 |
}
|
223 |
+
|
224 |
.rt-tab-container .rt-tab-content:not(.active) {
|
225 |
display: none;
|
226 |
}
|
227 |
+
|
228 |
div#rt-schema-tab-holder:after {
|
229 |
clear: both;
|
230 |
content: ".";
|
290 |
.field-container .field-label span {
|
291 |
margin-left: 5px;
|
292 |
}
|
293 |
+
|
294 |
p.description .required,
|
295 |
.field-container .field-label span.required {
|
296 |
color: red;
|
297 |
}
|
298 |
+
|
299 |
.field-container .field-label span.recommended {
|
300 |
color: #721c24;
|
301 |
}
|
302 |
+
|
303 |
/* tooltip */
|
304 |
|
305 |
+
[data-kcseo-tooltip] {
|
306 |
position: relative;
|
307 |
}
|
308 |
+
|
309 |
+
[data-kcseo-tooltip]:hover::after {
|
310 |
position: absolute;
|
311 |
left: 50%;
|
312 |
bottom: 100%;
|
313 |
content: attr(data-kcseo-tooltip);
|
314 |
+
background: rgba(0, 0, 0, .8);
|
315 |
color: #fff;
|
316 |
padding: .5em 1em;
|
317 |
border-radius: 7px;
|
318 |
transform: translateX(-50%);
|
319 |
transition: all ease-in-out 250ms;
|
320 |
}
|
321 |
+
|
322 |
+
/* heading container */
|
323 |
+
.field-container.kcseo-heading-container {
|
324 |
+
margin-bottom: 25px;
|
325 |
+
}
|
326 |
+
|
327 |
+
.kcseo-section-title-wrap {
|
328 |
+
border-bottom: 1px dashed #888;
|
329 |
+
padding-bottom: 5px;
|
330 |
+
}
|
331 |
+
|
332 |
+
.kcseo-section-title-wrap h5 {
|
333 |
+
font-size: 16px;
|
334 |
+
padding: 0;
|
335 |
+
margin: 0 0 5px;
|
336 |
+
}
|
337 |
+
|
338 |
+
/* End heading container */
|
339 |
.schema-holder .ui-tabs .ui-tabs-nav .ui-tabs-anchor {
|
340 |
padding: .5em 0.6em;
|
341 |
font-size: 14px;
|
index.html
DELETED
File without changes
|
index.php
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
echo "Keep Silent";
|
languages/wp-seo-structured-data-schema.pot
CHANGED
@@ -1,1241 +1,1131 @@
|
|
1 |
-
|
|
|
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-
|
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:
|
60 |
msgid "Music"
|
61 |
msgstr ""
|
62 |
|
63 |
-
#: lib/classes/KcSeoHelper.php:201 lib/functions/KcSeoOptions.php:
|
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:
|
72 |
msgid "QAPage"
|
73 |
msgstr ""
|
74 |
|
75 |
-
#: lib/classes/KcSeoHelper.php:204 lib/functions/KcSeoOptions.php:
|
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:
|
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:
|
105 |
msgid "WP SEO Schema"
|
106 |
msgstr ""
|
107 |
|
108 |
-
#: lib/classes/KcSeoInit.php:
|
109 |
msgid "WP SEO Schema settings"
|
110 |
msgstr ""
|
111 |
|
112 |
-
#: lib/classes/KcSeoInit.php:
|
113 |
msgid "Settings"
|
114 |
msgstr ""
|
115 |
|
116 |
-
#: lib/classes/KcSeoMetaData.php:
|
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:
|
128 |
-
msgid ""
|
129 |
-
"Once you save these structured data schema settings, validate this page url "
|
130 |
-
"here:"
|
131 |
msgstr ""
|
132 |
|
133 |
-
#: lib/
|
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 |
-
|
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 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
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:
|
290 |
msgid "Author"
|
291 |
msgstr ""
|
292 |
|
293 |
-
#: lib/functions/KcSeoOptions.php:177 lib/functions/KcSeoOptions.php:
|
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:
|
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:
|
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:
|
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 |
-
|
396 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
397 |
msgstr ""
|
398 |
|
399 |
-
#: lib/functions/KcSeoOptions.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
400 |
msgid "Product"
|
401 |
msgstr ""
|
402 |
|
403 |
-
#: lib/functions/KcSeoOptions.php:
|
404 |
msgid "The name of the product."
|
405 |
msgstr ""
|
406 |
|
407 |
-
#: lib/functions/KcSeoOptions.php:
|
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:
|
414 |
msgid "Product description."
|
415 |
msgstr ""
|
416 |
|
417 |
-
#: lib/functions/KcSeoOptions.php:
|
|
|
|
|
|
|
|
|
418 |
msgid "Brand"
|
419 |
msgstr ""
|
420 |
|
421 |
-
#: lib/functions/KcSeoOptions.php:
|
422 |
msgid "The brand of the product."
|
423 |
msgstr ""
|
424 |
|
425 |
-
#: lib/functions/KcSeoOptions.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
426 |
msgid "Review rating value"
|
427 |
msgstr ""
|
428 |
|
429 |
-
#: lib/functions/KcSeoOptions.php:
|
430 |
msgid "Rating value. (1 , 2.5, 3, 5 etc)"
|
431 |
msgstr ""
|
432 |
|
433 |
-
#: lib/functions/KcSeoOptions.php:
|
434 |
msgid "Review Best rating"
|
435 |
msgstr ""
|
436 |
|
437 |
-
#: lib/functions/KcSeoOptions.php:
|
438 |
msgid "Review Worst rating"
|
439 |
msgstr ""
|
440 |
|
441 |
-
#: lib/functions/KcSeoOptions.php:
|
442 |
msgid "Review author"
|
443 |
msgstr ""
|
444 |
|
445 |
-
#: lib/functions/KcSeoOptions.php:
|
446 |
-
msgid "
|
447 |
msgstr ""
|
448 |
|
449 |
-
#: lib/functions/KcSeoOptions.php:
|
450 |
-
msgid "
|
451 |
msgstr ""
|
452 |
|
453 |
-
#: lib/functions/KcSeoOptions.php:
|
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:
|
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:
|
466 |
msgid "PriceValidUntil"
|
467 |
msgstr ""
|
468 |
|
469 |
-
#: lib/functions/KcSeoOptions.php:
|
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:
|
476 |
msgid "The 3-letter currency code."
|
477 |
msgstr ""
|
478 |
|
479 |
-
#: lib/functions/KcSeoOptions.php:
|
480 |
msgid "Select a availability type"
|
481 |
msgstr ""
|
482 |
|
483 |
-
#: lib/functions/KcSeoOptions.php:
|
484 |
msgid "Select a condition"
|
485 |
msgstr ""
|
486 |
|
487 |
-
#: lib/functions/KcSeoOptions.php:
|
488 |
msgid "Product URL"
|
489 |
msgstr ""
|
490 |
|
491 |
-
#: lib/functions/KcSeoOptions.php:
|
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:
|
498 |
msgid "Video"
|
499 |
msgstr ""
|
500 |
|
501 |
-
#: lib/functions/KcSeoOptions.php:
|
502 |
msgid "The title of the video"
|
503 |
msgstr ""
|
504 |
|
505 |
-
#: lib/functions/KcSeoOptions.php:
|
506 |
msgid "The description of the video"
|
507 |
msgstr ""
|
508 |
|
509 |
-
#: lib/functions/KcSeoOptions.php:
|
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:
|
516 |
msgid "Updated date"
|
517 |
msgstr ""
|
518 |
|
519 |
-
#: lib/functions/KcSeoOptions.php:
|
520 |
msgid "2015-02-05T08:00:00+08:00"
|
521 |
msgstr ""
|
522 |
|
523 |
-
#: lib/functions/KcSeoOptions.php:
|
524 |
msgid "Duration"
|
525 |
msgstr ""
|
526 |
|
527 |
-
#: lib/functions/KcSeoOptions.php:
|
528 |
msgid "The duration of the video in ISO 8601 format.(PT1M33S)"
|
529 |
msgstr ""
|
530 |
|
531 |
-
#: lib/functions/KcSeoOptions.php:
|
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:
|
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:
|
546 |
msgid "Interaction count"
|
547 |
msgstr ""
|
548 |
|
549 |
-
#: lib/functions/KcSeoOptions.php:
|
550 |
msgid "The number of times the video has been viewed."
|
551 |
msgstr ""
|
552 |
|
553 |
-
#: lib/functions/KcSeoOptions.php:
|
554 |
msgid "Expires"
|
555 |
msgstr ""
|
556 |
|
557 |
-
#: lib/functions/KcSeoOptions.php:
|
558 |
msgid "Service"
|
559 |
msgstr ""
|
560 |
|
561 |
-
#: lib/functions/KcSeoOptions.php:
|
562 |
msgid "The name of the Service."
|
563 |
msgstr ""
|
564 |
|
565 |
-
#: lib/functions/KcSeoOptions.php:
|
566 |
msgid "Service type"
|
567 |
msgstr ""
|
568 |
|
569 |
-
#: lib/functions/KcSeoOptions.php:
|
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:
|
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:
|
582 |
msgid "Award"
|
583 |
msgstr ""
|
584 |
|
585 |
-
#: lib/functions/KcSeoOptions.php:
|
586 |
msgid "An award won by or for this service."
|
587 |
msgstr ""
|
588 |
|
589 |
-
#: lib/functions/KcSeoOptions.php:
|
590 |
msgid "Category"
|
591 |
msgstr ""
|
592 |
|
593 |
-
#: lib/functions/KcSeoOptions.php:
|
594 |
msgid "A category for the service."
|
595 |
msgstr ""
|
596 |
|
597 |
-
#: lib/functions/KcSeoOptions.php:
|
598 |
msgid "Provider mobility"
|
599 |
msgstr ""
|
600 |
|
601 |
-
#: lib/functions/KcSeoOptions.php:
|
602 |
-
msgid ""
|
603 |
-
"Indicates the mobility of a provided service (e.g. 'static', 'dynamic')."
|
604 |
msgstr ""
|
605 |
|
606 |
-
#: lib/functions/KcSeoOptions.php:
|
607 |
msgid "A short description of the service."
|
608 |
msgstr ""
|
609 |
|
610 |
-
#: lib/functions/KcSeoOptions.php:
|
611 |
msgid "An image of the service. This should be a URL."
|
612 |
msgstr ""
|
613 |
|
614 |
-
#: lib/functions/KcSeoOptions.php:
|
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:
|
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:
|
628 |
msgid "URL of the service."
|
629 |
msgstr ""
|
630 |
|
631 |
-
#: lib/functions/KcSeoOptions.php:
|
632 |
msgid "Alternate name"
|
633 |
msgstr ""
|
634 |
|
635 |
-
#: lib/functions/KcSeoOptions.php:
|
636 |
msgid "An alias for the service."
|
637 |
msgstr ""
|
638 |
|
639 |
-
#: lib/functions/KcSeoOptions.php:
|
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:
|
648 |
msgid "The item that is being reviewed."
|
649 |
msgstr ""
|
650 |
|
651 |
-
#: lib/functions/KcSeoOptions.php:
|
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:
|
664 |
msgid "A particular name for the review."
|
665 |
msgstr ""
|
666 |
|
667 |
-
#: lib/functions/KcSeoOptions.php:
|
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:
|
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:
|
703 |
msgid "The publisher of the review."
|
704 |
msgstr ""
|
705 |
|
706 |
-
#: lib/functions/KcSeoOptions.php:
|
707 |
msgid "Aggregate Ratings"
|
708 |
msgstr ""
|
709 |
|
710 |
-
#: lib/functions/KcSeoOptions.php:
|
711 |
msgid "Schema type"
|
712 |
msgstr ""
|
713 |
|
714 |
-
#: lib/functions/KcSeoOptions.php:
|
715 |
msgid "Use the most appropriate schema type for what is being reviewed."
|
716 |
msgstr ""
|
717 |
|
718 |
-
#: lib/functions/KcSeoOptions.php:
|
719 |
msgid "Name of the item"
|
720 |
msgstr ""
|
721 |
|
722 |
-
#: lib/functions/KcSeoOptions.php:
|
723 |
msgid "The item that is being rated."
|
724 |
msgstr ""
|
725 |
|
726 |
-
#: lib/functions/KcSeoOptions.php:
|
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:
|
732 |
msgid "Description for thr review"
|
733 |
msgstr ""
|
734 |
|
735 |
-
#: lib/functions/KcSeoOptions.php:
|
736 |
msgid "Rating Count"
|
737 |
msgstr ""
|
738 |
|
739 |
-
#: lib/functions/KcSeoOptions.php:
|
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:
|
747 |
msgid "Review Count"
|
748 |
msgstr ""
|
749 |
|
750 |
-
#: lib/functions/KcSeoOptions.php:
|
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:
|
757 |
msgid "Rating Value"
|
758 |
msgstr ""
|
759 |
|
760 |
-
#: lib/functions/KcSeoOptions.php:
|
761 |
msgid "Best Rating"
|
762 |
msgstr ""
|
763 |
|
764 |
-
#: lib/functions/KcSeoOptions.php:
|
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:
|
772 |
msgid "Worst Rating"
|
773 |
msgstr ""
|
774 |
|
775 |
-
#: lib/functions/KcSeoOptions.php:
|
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:
|
783 |
msgid "Restaurant"
|
784 |
msgstr ""
|
785 |
|
786 |
-
#: lib/functions/KcSeoOptions.php:
|
787 |
msgid "Name of the Restaurant"
|
788 |
msgstr ""
|
789 |
|
790 |
-
#: lib/functions/KcSeoOptions.php:
|
791 |
msgid "Description of the Restaurant"
|
792 |
msgstr ""
|
793 |
|
794 |
-
#: lib/functions/KcSeoOptions.php:
|
795 |
msgid "Opening Hours"
|
796 |
msgstr ""
|
797 |
|
798 |
-
#: lib/functions/KcSeoOptions.php:
|
799 |
msgid "Mo,Tu,We,Th,Fr,Sa,Su 11:30-23:00"
|
800 |
msgstr ""
|
801 |
|
802 |
-
#: lib/functions/KcSeoOptions.php:
|
803 |
msgid "Telephone"
|
804 |
msgstr ""
|
805 |
|
806 |
-
#: lib/functions/KcSeoOptions.php:
|
807 |
msgid "+155501003333"
|
808 |
msgstr ""
|
809 |
|
810 |
-
#: lib/functions/KcSeoOptions.php:
|
811 |
msgid "Menu"
|
812 |
msgstr ""
|
813 |
|
814 |
-
#: lib/functions/KcSeoOptions.php:
|
815 |
msgid "http://example.com/menu"
|
816 |
msgstr ""
|
817 |
|
818 |
-
#: lib/functions/KcSeoOptions.php:
|
819 |
msgid "Address"
|
820 |
msgstr ""
|
821 |
|
822 |
-
#: lib/functions/KcSeoOptions.php:
|
823 |
-
#: lib/views/schema-options.php:113
|
824 |
msgid "Price Range"
|
825 |
msgstr ""
|
826 |
|
827 |
-
#: lib/functions/KcSeoOptions.php:
|
828 |
msgid "The price range of the business, for example $$$"
|
829 |
msgstr ""
|
830 |
|
831 |
-
#: lib/functions/KcSeoOptions.php:
|
832 |
msgid "Serves Cuisine"
|
833 |
msgstr ""
|
834 |
|
835 |
-
#: lib/functions/KcSeoOptions.php:
|
836 |
msgid "The cuisine of the restaurant."
|
837 |
msgstr ""
|
838 |
|
839 |
-
#: lib/functions/KcSeoOptions.php:
|
840 |
msgid "Local Business"
|
841 |
msgstr ""
|
842 |
|
843 |
-
#: lib/functions/KcSeoOptions.php:
|
844 |
msgid "Business Logo"
|
845 |
msgstr ""
|
846 |
|
847 |
-
#: lib/functions/KcSeoOptions.php:
|
848 |
msgid "Address locality"
|
849 |
msgstr ""
|
850 |
|
851 |
-
#: lib/functions/KcSeoOptions.php:
|
852 |
msgid "City (i.e Kansas city)"
|
853 |
msgstr ""
|
854 |
|
855 |
-
#: lib/functions/KcSeoOptions.php:
|
856 |
msgid "Address region"
|
857 |
msgstr ""
|
858 |
|
859 |
-
#: lib/functions/KcSeoOptions.php:
|
860 |
msgid "State (i.e. MO)"
|
861 |
msgstr ""
|
862 |
|
863 |
-
#: lib/functions/KcSeoOptions.php:
|
864 |
msgid "Postal code"
|
865 |
msgstr ""
|
866 |
|
867 |
-
#: lib/functions/KcSeoOptions.php:
|
868 |
msgid "Street address"
|
869 |
msgstr ""
|
870 |
|
871 |
-
#: lib/functions/KcSeoOptions.php:
|
872 |
msgid "Book"
|
873 |
msgstr ""
|
874 |
|
875 |
-
#: lib/functions/KcSeoOptions.php:
|
876 |
msgid "Course"
|
877 |
msgstr ""
|
878 |
|
879 |
-
#: lib/functions/KcSeoOptions.php:
|
880 |
msgid "Job Posting"
|
881 |
msgstr ""
|
882 |
|
883 |
-
#: lib/functions/KcSeoOptions.php:
|
884 |
msgid "Movie"
|
885 |
msgstr ""
|
886 |
|
887 |
-
#: lib/functions/KcSeoOptions.php:
|
888 |
msgid "TVEpisode"
|
889 |
msgstr ""
|
890 |
|
891 |
-
#: lib/
|
892 |
-
msgid "
|
893 |
-
msgstr ""
|
894 |
-
|
895 |
-
#: lib/functions/KcSeoOptions.php:1314 lib/functions/KcSeoOptions.php:1332
|
896 |
-
msgid "Twitter"
|
897 |
msgstr ""
|
898 |
|
899 |
-
#: lib/
|
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 |
-
"
|
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:
|
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:
|
1167 |
msgid ""
|
1168 |
"Home page\n"
|
1169 |
" only"
|
1170 |
msgstr ""
|
1171 |
|
1172 |
-
#: lib/views/settings.php:
|
1173 |
msgid ""
|
1174 |
"Sitewide (Apply General Settings schema\n"
|
1175 |
" sitewide)"
|
1176 |
msgstr ""
|
1177 |
|
1178 |
-
#: lib/views/settings.php:
|
1179 |
msgid "Turn off (Turn off global schema)"
|
1180 |
msgstr ""
|
1181 |
|
1182 |
-
#: lib/views/settings.php:
|
1183 |
msgid "Post Type"
|
1184 |
msgstr ""
|
1185 |
|
1186 |
-
#: lib/views/settings.php:
|
1187 |
-
msgid "
|
1188 |
msgstr ""
|
1189 |
|
1190 |
-
#: lib/views/settings.php:
|
1191 |
-
msgid "
|
1192 |
msgstr ""
|
1193 |
|
1194 |
-
#: lib/views/settings.php:
|
1195 |
-
msgid "
|
1196 |
msgstr ""
|
1197 |
|
1198 |
-
#: lib/views/settings.php:
|
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:
|
1206 |
msgid "Publisher Information"
|
1207 |
msgstr ""
|
1208 |
|
1209 |
-
#: lib/views/settings.php:
|
1210 |
-
msgid "
|
1211 |
msgstr ""
|
1212 |
|
1213 |
-
#: lib/views/settings.php:
|
1214 |
-
msgid "
|
1215 |
msgstr ""
|
1216 |
|
1217 |
-
#: lib/views/settings.php:
|
1218 |
-
msgid "
|
1219 |
msgstr ""
|
1220 |
|
1221 |
-
#: lib/views/settings.php:
|
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 |
-
|
1229 |
-
|
1230 |
-
msgid "https://wpsemplugins.com/"
|
1231 |
msgstr ""
|
1232 |
|
1233 |
-
|
1234 |
-
msgid ""
|
1235 |
-
|
1236 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1237 |
msgstr ""
|
1238 |
|
1239 |
-
|
1240 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1241 |
msgstr ""
|
1 |
+
# Copyright (C) 2019 WP SEO Structured Data Schema
|
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-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
|
|
|
|
|
|
|
|
|
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 |
+
#: ../lib/classes/KcSeoHelper.php:189
|
17 |
msgid "Pro Version Features"
|
18 |
msgstr ""
|
19 |
|
20 |
+
#: ../lib/classes/KcSeoHelper.php:191
|
21 |
msgid "Includes Auto-fill function <---Popular"
|
22 |
msgstr ""
|
23 |
|
24 |
+
#: ../lib/classes/KcSeoHelper.php:192
|
25 |
msgid "Supports Custom Post Types beyond default page and posts"
|
26 |
msgstr ""
|
27 |
|
28 |
+
#: ../lib/classes/KcSeoHelper.php:193
|
29 |
msgid "Supports WordPress Multisite"
|
30 |
msgstr ""
|
31 |
|
32 |
+
#: ../lib/classes/KcSeoHelper.php:194
|
33 |
msgid "Supports more schema types:"
|
34 |
msgstr ""
|
35 |
|
36 |
+
#: ../lib/classes/KcSeoHelper.php:196
|
37 |
msgid "Books"
|
38 |
msgstr ""
|
39 |
|
40 |
+
#: ../lib/classes/KcSeoHelper.php:197
|
41 |
msgid "Courses"
|
42 |
msgstr ""
|
43 |
|
44 |
+
#: ../lib/classes/KcSeoHelper.php:198
|
45 |
msgid "Job Postings"
|
46 |
msgstr ""
|
47 |
|
48 |
+
#: ../lib/classes/KcSeoHelper.php:199
|
49 |
msgid "Movies"
|
50 |
msgstr ""
|
51 |
|
52 |
+
#: ../lib/classes/KcSeoHelper.php:200, ../lib/functions/KcSeoOptions.php:995
|
53 |
msgid "Music"
|
54 |
msgstr ""
|
55 |
|
56 |
+
#: ../lib/classes/KcSeoHelper.php:201, ../lib/functions/KcSeoOptions.php:999
|
57 |
msgid "Recipe"
|
58 |
msgstr ""
|
59 |
|
60 |
+
#: ../lib/classes/KcSeoHelper.php:202
|
61 |
msgid "TV Episode"
|
62 |
msgstr ""
|
63 |
|
64 |
+
#: ../lib/classes/KcSeoHelper.php:203, ../lib/functions/KcSeoOptions.php:1007
|
65 |
msgid "QAPage"
|
66 |
msgstr ""
|
67 |
|
68 |
+
#: ../lib/classes/KcSeoHelper.php:204, ../lib/functions/KcSeoOptions.php:1011
|
69 |
msgid "Item List"
|
70 |
msgstr ""
|
71 |
|
72 |
+
#: ../lib/classes/KcSeoHelper.php:210
|
73 |
msgid "Get the Pro Version"
|
74 |
msgstr ""
|
75 |
|
76 |
+
#: ../lib/classes/KcSeoInit.php:33
|
77 |
msgid "Documentation"
|
78 |
msgstr ""
|
79 |
|
80 |
+
#: ../lib/classes/KcSeoInit.php:34
|
81 |
msgid "Get Pro"
|
82 |
msgstr ""
|
83 |
|
84 |
+
#: ../lib/classes/KcSeoInit.php:188, ../lib/views/schema-options.php:7
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
85 |
msgid "WP SEO Structured Data Schema"
|
86 |
msgstr ""
|
87 |
|
88 |
+
#: ../lib/classes/KcSeoInit.php:188
|
89 |
msgid "WP SEO Schema"
|
90 |
msgstr ""
|
91 |
|
92 |
+
#: ../lib/classes/KcSeoInit.php:190
|
93 |
msgid "WP SEO Schema settings"
|
94 |
msgstr ""
|
95 |
|
96 |
+
#: ../lib/classes/KcSeoInit.php:190
|
97 |
msgid "Settings"
|
98 |
msgstr ""
|
99 |
|
100 |
+
#: ../lib/classes/KcSeoMetaData.php:62, ../lib/views/schema-options.php:26
|
101 |
+
msgid "For more detailed information on how to configure this plugin, please visit:"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
102 |
msgstr ""
|
103 |
|
104 |
+
#: ../lib/classes/KcSeoMetaData.php:63
|
105 |
+
msgid "Once you save these structured data schema settings, validate this page url here:"
|
|
|
|
|
106 |
msgstr ""
|
107 |
|
108 |
+
#: ../lib/functions/KcSeoOptions.php:10
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
109 |
msgid "Article"
|
110 |
msgstr ""
|
111 |
|
112 |
+
#: ../lib/functions/KcSeoOptions.php:16, ../lib/functions/KcSeoOptions.php:90, ../lib/functions/KcSeoOptions.php:159
|
|
|
113 |
msgid "Headline"
|
114 |
msgstr ""
|
115 |
|
116 |
+
#: ../lib/functions/KcSeoOptions.php:18, ../lib/functions/KcSeoOptions.php:161
|
117 |
msgid "Article title"
|
118 |
msgstr ""
|
119 |
|
120 |
+
#: ../lib/functions/KcSeoOptions.php:22, ../lib/functions/KcSeoOptions.php:96, ../lib/functions/KcSeoOptions.php:165
|
|
|
121 |
msgid "Page URL"
|
122 |
msgstr ""
|
123 |
|
124 |
+
#: ../lib/functions/KcSeoOptions.php:24, ../lib/functions/KcSeoOptions.php:98, ../lib/functions/KcSeoOptions.php:167
|
|
|
125 |
msgid "The canonical URL of the article page"
|
126 |
msgstr ""
|
127 |
|
128 |
+
#: ../lib/functions/KcSeoOptions.php:28
|
129 |
msgid "Author Name"
|
130 |
msgstr ""
|
131 |
|
132 |
+
#: ../lib/functions/KcSeoOptions.php:30, ../lib/functions/KcSeoOptions.php:104, ../lib/functions/KcSeoOptions.php:173
|
|
|
133 |
msgid "Author display name"
|
134 |
msgstr ""
|
135 |
|
136 |
+
#: ../lib/functions/KcSeoOptions.php:34
|
137 |
msgid "Article Feature Image"
|
138 |
msgstr ""
|
139 |
|
140 |
+
#: ../lib/functions/KcSeoOptions.php:37
|
141 |
+
msgid "Images should be at least 696 pixels wide.<br>Images should be in .jpg, .png, or. gif format."
|
|
|
|
|
142 |
msgstr ""
|
143 |
|
144 |
+
#: ../lib/functions/KcSeoOptions.php:40, ../lib/functions/KcSeoOptions.php:114, ../lib/functions/KcSeoOptions.php:183
|
|
|
145 |
msgid "Published date"
|
146 |
msgstr ""
|
147 |
|
148 |
+
#: ../lib/functions/KcSeoOptions.php:44, ../lib/functions/KcSeoOptions.php:51, ../lib/functions/KcSeoOptions.php:117, ../lib/functions/KcSeoOptions.php:124, ../lib/functions/KcSeoOptions.php:186, ../lib/functions/KcSeoOptions.php:194, ../lib/functions/KcSeoOptions.php:344, ../lib/functions/KcSeoOptions.php:579, ../lib/functions/KcSeoOptions.php:701, ../lib/functions/KcSeoOptions.php:955
|
149 |
+
msgid "Like this: 2015-12-25 4:00 PM"
|
|
|
|
|
|
|
150 |
msgstr ""
|
151 |
|
152 |
+
#: ../lib/functions/KcSeoOptions.php:47, ../lib/functions/KcSeoOptions.php:121, ../lib/functions/KcSeoOptions.php:190
|
|
|
153 |
msgid "Modified date"
|
154 |
msgstr ""
|
155 |
|
156 |
+
#: ../lib/functions/KcSeoOptions.php:54, ../lib/functions/KcSeoOptions.php:128, ../lib/functions/KcSeoOptions.php:197
|
|
|
157 |
msgid "Publisher"
|
158 |
msgstr ""
|
159 |
|
160 |
+
#: ../lib/functions/KcSeoOptions.php:56, ../lib/functions/KcSeoOptions.php:130, ../lib/functions/KcSeoOptions.php:199
|
|
|
161 |
msgid "Publisher name or Organization name"
|
162 |
msgstr ""
|
163 |
|
164 |
+
#: ../lib/functions/KcSeoOptions.php:60, ../lib/functions/KcSeoOptions.php:134, ../lib/functions/KcSeoOptions.php:203, ../lib/views/settings.php:86
|
|
|
165 |
msgid "Publisher Logo"
|
166 |
msgstr ""
|
167 |
|
168 |
+
#: ../lib/functions/KcSeoOptions.php:62, ../lib/functions/KcSeoOptions.php:136, ../lib/functions/KcSeoOptions.php:205
|
169 |
+
msgid "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>"
|
170 |
+
msgstr ""
|
171 |
+
|
172 |
+
#: ../lib/functions/KcSeoOptions.php:66, ../lib/functions/KcSeoOptions.php:140, ../lib/functions/KcSeoOptions.php:209, ../lib/functions/KcSeoOptions.php:260, ../lib/functions/KcSeoOptions.php:385, ../lib/functions/KcSeoOptions.php:535, ../lib/functions/KcSeoOptions.php:775, ../lib/functions/KcSeoOptions.php:888, ../lib/views/schema-options.php:170, ../lib/views/schema-options.php:255
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
173 |
msgid "Description"
|
174 |
msgstr ""
|
175 |
|
176 |
+
#: ../lib/functions/KcSeoOptions.php:68, ../lib/functions/KcSeoOptions.php:142, ../lib/functions/KcSeoOptions.php:211
|
|
|
177 |
msgid "Short description"
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: ../lib/functions/KcSeoOptions.php:71, ../lib/functions/KcSeoOptions.php:145, ../lib/functions/KcSeoOptions.php:214
|
|
|
181 |
msgid "Article body"
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: ../lib/functions/KcSeoOptions.php:73, ../lib/functions/KcSeoOptions.php:147
|
185 |
msgid "Article content"
|
186 |
msgstr ""
|
187 |
|
188 |
+
#: ../lib/functions/KcSeoOptions.php:76
|
189 |
msgid "Alternative headline"
|
190 |
msgstr ""
|
191 |
|
192 |
+
#: ../lib/functions/KcSeoOptions.php:78
|
193 |
msgid "A secondary headline for the article."
|
194 |
msgstr ""
|
195 |
|
196 |
+
#: ../lib/functions/KcSeoOptions.php:84
|
197 |
msgid "Blog Posting"
|
198 |
msgstr ""
|
199 |
|
200 |
+
#: ../lib/functions/KcSeoOptions.php:92
|
201 |
msgid "Blog posting title"
|
202 |
msgstr ""
|
203 |
|
204 |
+
#: ../lib/functions/KcSeoOptions.php:102
|
205 |
msgid "Author name"
|
206 |
msgstr ""
|
207 |
|
208 |
+
#: ../lib/functions/KcSeoOptions.php:108
|
209 |
msgid "Feature Image"
|
210 |
msgstr ""
|
211 |
|
212 |
+
#: ../lib/functions/KcSeoOptions.php:110, ../lib/functions/KcSeoOptions.php:179
|
213 |
+
msgid "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."
|
|
|
|
|
|
|
214 |
msgstr ""
|
215 |
|
216 |
+
#: ../lib/functions/KcSeoOptions.php:153
|
217 |
msgid "News Article"
|
218 |
msgstr ""
|
219 |
|
220 |
+
#: ../lib/functions/KcSeoOptions.php:171, ../lib/functions/KcSeoOptions.php:323, ../lib/functions/KcSeoOptions.php:691, ../lib/functions/KcSeoOptions.php:934
|
221 |
msgid "Author"
|
222 |
msgstr ""
|
223 |
|
224 |
+
#: ../lib/functions/KcSeoOptions.php:177, ../lib/functions/KcSeoOptions.php:380, ../lib/functions/KcSeoOptions.php:855, ../lib/views/schema-options.php:247
|
|
|
225 |
msgid "Image"
|
226 |
msgstr ""
|
227 |
|
228 |
+
#: ../lib/functions/KcSeoOptions.php:216
|
229 |
msgid "Article body content"
|
230 |
msgstr ""
|
231 |
|
232 |
+
#: ../lib/functions/KcSeoOptions.php:222
|
233 |
msgid "Event"
|
234 |
msgstr ""
|
235 |
|
236 |
+
#: ../lib/functions/KcSeoOptions.php:228, ../lib/functions/KcSeoOptions.php:374, ../lib/functions/KcSeoOptions.php:529, ../lib/functions/KcSeoOptions.php:591, ../lib/functions/KcSeoOptions.php:883, ../lib/views/schema-options.php:224
|
|
|
|
|
237 |
msgid "Name"
|
238 |
msgstr ""
|
239 |
|
240 |
+
#: ../lib/functions/KcSeoOptions.php:231
|
241 |
msgid "The name of the event."
|
242 |
msgstr ""
|
243 |
|
244 |
+
#: ../lib/functions/KcSeoOptions.php:234
|
245 |
msgid "Location name"
|
246 |
msgstr ""
|
247 |
|
248 |
+
#: ../lib/functions/KcSeoOptions.php:237
|
249 |
msgid "Event Location name"
|
250 |
msgstr ""
|
251 |
|
252 |
+
#: ../lib/functions/KcSeoOptions.php:240
|
253 |
msgid "Location address"
|
254 |
msgstr ""
|
255 |
|
256 |
+
#: ../lib/functions/KcSeoOptions.php:243
|
257 |
+
msgid "The location of for example where the event is happening, an organization is located, or where an action takes place."
|
|
|
|
|
258 |
msgstr ""
|
259 |
|
260 |
+
#: ../lib/functions/KcSeoOptions.php:246
|
261 |
msgid "Start date"
|
262 |
msgstr ""
|
263 |
|
264 |
+
#: ../lib/functions/KcSeoOptions.php:250
|
265 |
+
msgid "Event start date Like : 2017-10-16 4:00 AM"
|
266 |
msgstr ""
|
267 |
|
268 |
+
#: ../lib/functions/KcSeoOptions.php:253
|
269 |
msgid "End date"
|
270 |
msgstr ""
|
271 |
|
272 |
+
#: ../lib/functions/KcSeoOptions.php:257
|
273 |
+
msgid "Event end date Like : 2017-10-16 4:00 AM"
|
274 |
msgstr ""
|
275 |
|
276 |
+
#: ../lib/functions/KcSeoOptions.php:263
|
277 |
msgid "Event description"
|
278 |
msgstr ""
|
279 |
|
280 |
+
#: ../lib/functions/KcSeoOptions.php:266
|
281 |
msgid "Performer Name"
|
282 |
msgstr ""
|
283 |
|
284 |
+
#: ../lib/functions/KcSeoOptions.php:269
|
285 |
msgid "The performer's name."
|
286 |
msgstr ""
|
287 |
|
288 |
+
#: ../lib/functions/KcSeoOptions.php:272
|
289 |
msgid "Image URL"
|
290 |
msgstr ""
|
291 |
|
292 |
+
#: ../lib/functions/KcSeoOptions.php:275
|
293 |
msgid "URL of an image or logo for the event or tour"
|
294 |
msgstr ""
|
295 |
|
296 |
+
#: ../lib/functions/KcSeoOptions.php:278, ../lib/functions/KcSeoOptions.php:469
|
297 |
msgid "Price"
|
298 |
msgstr ""
|
299 |
|
300 |
+
#: ../lib/functions/KcSeoOptions.php:282
|
301 |
+
msgid "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>"
|
|
|
|
|
|
|
302 |
msgstr ""
|
303 |
|
304 |
+
#: ../lib/functions/KcSeoOptions.php:285, ../lib/functions/KcSeoOptions.php:482
|
305 |
msgid "Price currency"
|
306 |
msgstr ""
|
307 |
|
308 |
+
#: ../lib/functions/KcSeoOptions.php:287
|
309 |
msgid "The 3-letter currency code. (USD)"
|
310 |
msgstr ""
|
311 |
|
312 |
+
#: ../lib/functions/KcSeoOptions.php:301
|
313 |
msgid "Valid From"
|
314 |
msgstr ""
|
315 |
|
316 |
+
#: ../lib/functions/KcSeoOptions.php:312
|
317 |
+
msgid "A link to the event's details page. <span class='required'>Not required but (Recommended)</span>"
|
318 |
+
msgstr ""
|
319 |
+
|
320 |
+
#: ../lib/functions/KcSeoOptions.php:315, ../lib/functions/KcSeoOptions.php:662, ../lib/functions/KcSeoOptions.php:926
|
321 |
+
msgid "Review"
|
322 |
+
msgstr ""
|
323 |
+
|
324 |
+
#: ../lib/functions/KcSeoOptions.php:317, ../lib/functions/KcSeoOptions.php:928
|
325 |
+
msgid "To add review schema for this type, complete fields below and enable, others live blank."
|
326 |
+
msgstr ""
|
327 |
+
|
328 |
+
#: ../lib/functions/KcSeoOptions.php:328, ../lib/functions/KcSeoOptions.php:939
|
329 |
+
msgid "Author Same As profile link"
|
330 |
+
msgstr ""
|
331 |
+
|
332 |
+
#: ../lib/functions/KcSeoOptions.php:332, ../lib/functions/KcSeoOptions.php:943
|
333 |
+
msgid "A reference page that unambiguously indicates the item's identity; for example, the URL of the item's Wikipedia page, Freebase page, or official website.<br> Enter new line for every entry"
|
334 |
+
msgstr ""
|
335 |
+
|
336 |
+
#: ../lib/functions/KcSeoOptions.php:335, ../lib/functions/KcSeoOptions.php:679, ../lib/functions/KcSeoOptions.php:946
|
337 |
+
msgid "Review body"
|
338 |
msgstr ""
|
339 |
|
340 |
+
#: ../lib/functions/KcSeoOptions.php:338, ../lib/functions/KcSeoOptions.php:682, ../lib/functions/KcSeoOptions.php:949
|
341 |
+
msgid "The actual body of the review."
|
342 |
+
msgstr ""
|
343 |
+
|
344 |
+
#: ../lib/functions/KcSeoOptions.php:341, ../lib/functions/KcSeoOptions.php:698, ../lib/functions/KcSeoOptions.php:952
|
345 |
+
msgid "Date of Published"
|
346 |
+
msgstr ""
|
347 |
+
|
348 |
+
#: ../lib/functions/KcSeoOptions.php:347, ../lib/functions/KcSeoOptions.php:453, ../lib/functions/KcSeoOptions.php:704, ../lib/functions/KcSeoOptions.php:958
|
349 |
+
msgid "Rating value"
|
350 |
+
msgstr ""
|
351 |
+
|
352 |
+
#: ../lib/functions/KcSeoOptions.php:350, ../lib/functions/KcSeoOptions.php:707, ../lib/functions/KcSeoOptions.php:798, ../lib/functions/KcSeoOptions.php:805, ../lib/functions/KcSeoOptions.php:961
|
353 |
+
msgid "A numerical quality rating for the item."
|
354 |
+
msgstr ""
|
355 |
+
|
356 |
+
#: ../lib/functions/KcSeoOptions.php:353, ../lib/functions/KcSeoOptions.php:710, ../lib/functions/KcSeoOptions.php:964
|
357 |
+
msgid "Best rating"
|
358 |
+
msgstr ""
|
359 |
+
|
360 |
+
#: ../lib/functions/KcSeoOptions.php:356, ../lib/functions/KcSeoOptions.php:713, ../lib/functions/KcSeoOptions.php:967
|
361 |
+
msgid "The highest value allowed in this rating system."
|
362 |
+
msgstr ""
|
363 |
+
|
364 |
+
#: ../lib/functions/KcSeoOptions.php:359, ../lib/functions/KcSeoOptions.php:716, ../lib/functions/KcSeoOptions.php:970
|
365 |
+
msgid "Worst rating"
|
366 |
+
msgstr ""
|
367 |
+
|
368 |
+
#: ../lib/functions/KcSeoOptions.php:362, ../lib/functions/KcSeoOptions.php:719, ../lib/functions/KcSeoOptions.php:973
|
369 |
+
msgid "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."
|
370 |
+
msgstr ""
|
371 |
+
|
372 |
+
#: ../lib/functions/KcSeoOptions.php:368
|
373 |
msgid "Product"
|
374 |
msgstr ""
|
375 |
|
376 |
+
#: ../lib/functions/KcSeoOptions.php:377
|
377 |
msgid "The name of the product."
|
378 |
msgstr ""
|
379 |
|
380 |
+
#: ../lib/functions/KcSeoOptions.php:382
|
381 |
+
msgid "The URL of a product photo. Pictures clearly showing the product, e.g. against a white background, are preferred."
|
|
|
|
|
382 |
msgstr ""
|
383 |
|
384 |
+
#: ../lib/functions/KcSeoOptions.php:387
|
385 |
msgid "Product description."
|
386 |
msgstr ""
|
387 |
|
388 |
+
#: ../lib/functions/KcSeoOptions.php:390
|
389 |
+
msgid "SKU"
|
390 |
+
msgstr ""
|
391 |
+
|
392 |
+
#: ../lib/functions/KcSeoOptions.php:395
|
393 |
msgid "Brand"
|
394 |
msgstr ""
|
395 |
|
396 |
+
#: ../lib/functions/KcSeoOptions.php:398
|
397 |
msgid "The brand of the product."
|
398 |
msgstr ""
|
399 |
|
400 |
+
#: ../lib/functions/KcSeoOptions.php:401
|
401 |
+
msgid "Identifier Type"
|
402 |
+
msgstr ""
|
403 |
+
|
404 |
+
#: ../lib/functions/KcSeoOptions.php:411
|
405 |
+
msgid ""
|
406 |
+
"<strong>MPN</strong><br>\n"
|
407 |
+
" → MPN(Manufacturer Part Number) Used globally, Alphanumeric digits (various lengths)<br>\n"
|
408 |
+
" <strong>GTIN</strong><br>\n"
|
409 |
+
" → UPC(Universal Product Code) Used in primarily North America. 12 numeric digits. eg. 892685001003.<br>\n"
|
410 |
+
" → EAN(European Article Number) Used primarily outside of North America. Typically 13 numeric digits (can occasionally be either eight or 14 numeric digits). eg. 4011200296908<br>\n"
|
411 |
+
" → ISBN(International Standard Book Number) Used globally, ISBN-13 (recommended), 13 numeric digits 978-0747595823<br>\n"
|
412 |
+
" → JAN(Japanese Article Number) Used only in Japan, 8 or 13 numeric digits."
|
413 |
+
msgstr ""
|
414 |
+
|
415 |
+
#: ../lib/functions/KcSeoOptions.php:420
|
416 |
+
msgid "Identifier"
|
417 |
+
msgstr ""
|
418 |
+
|
419 |
+
#: ../lib/functions/KcSeoOptions.php:423
|
420 |
+
msgid "Enter product unique identifier"
|
421 |
+
msgstr ""
|
422 |
+
|
423 |
+
#: ../lib/functions/KcSeoOptions.php:426
|
424 |
+
msgid "Product Review & Rating"
|
425 |
+
msgstr ""
|
426 |
+
|
427 |
+
#: ../lib/functions/KcSeoOptions.php:430
|
428 |
msgid "Review rating value"
|
429 |
msgstr ""
|
430 |
|
431 |
+
#: ../lib/functions/KcSeoOptions.php:434, ../lib/functions/KcSeoOptions.php:456
|
432 |
msgid "Rating value. (1 , 2.5, 3, 5 etc)"
|
433 |
msgstr ""
|
434 |
|
435 |
+
#: ../lib/functions/KcSeoOptions.php:437
|
436 |
msgid "Review Best rating"
|
437 |
msgstr ""
|
438 |
|
439 |
+
#: ../lib/functions/KcSeoOptions.php:443
|
440 |
msgid "Review Worst rating"
|
441 |
msgstr ""
|
442 |
|
443 |
+
#: ../lib/functions/KcSeoOptions.php:449
|
444 |
msgid "Review author"
|
445 |
msgstr ""
|
446 |
|
447 |
+
#: ../lib/functions/KcSeoOptions.php:459
|
448 |
+
msgid "Total review count"
|
449 |
msgstr ""
|
450 |
|
451 |
+
#: ../lib/functions/KcSeoOptions.php:462
|
452 |
+
msgid "Review rating value. <span class='required'>This is required if (Rating value) is given</span>"
|
453 |
msgstr ""
|
454 |
|
455 |
+
#: ../lib/functions/KcSeoOptions.php:465
|
456 |
+
msgid "Product Pricing"
|
|
|
|
|
457 |
msgstr ""
|
458 |
|
459 |
+
#: ../lib/functions/KcSeoOptions.php:472
|
460 |
+
msgid "The lowest available price, including service charges and fees, of this type of ticket."
|
|
|
|
|
461 |
msgstr ""
|
462 |
|
463 |
+
#: ../lib/functions/KcSeoOptions.php:475
|
464 |
msgid "PriceValidUntil"
|
465 |
msgstr ""
|
466 |
|
467 |
+
#: ../lib/functions/KcSeoOptions.php:479
|
468 |
+
msgid "The date (in ISO 8601 date and time format) after which the price will no longer be available."
|
|
|
|
|
469 |
msgstr ""
|
470 |
|
471 |
+
#: ../lib/functions/KcSeoOptions.php:484
|
472 |
msgid "The 3-letter currency code."
|
473 |
msgstr ""
|
474 |
|
475 |
+
#: ../lib/functions/KcSeoOptions.php:500
|
476 |
msgid "Select a availability type"
|
477 |
msgstr ""
|
478 |
|
479 |
+
#: ../lib/functions/KcSeoOptions.php:512
|
480 |
msgid "Select a condition"
|
481 |
msgstr ""
|
482 |
|
483 |
+
#: ../lib/functions/KcSeoOptions.php:515
|
484 |
msgid "Product URL"
|
485 |
msgstr ""
|
486 |
|
487 |
+
#: ../lib/functions/KcSeoOptions.php:517
|
488 |
+
msgid "A URL to the product web page (that includes the Offer). (Don't use offerURL for markup that appears on the product page itself.)"
|
|
|
|
|
489 |
msgstr ""
|
490 |
|
491 |
+
#: ../lib/functions/KcSeoOptions.php:523
|
492 |
msgid "Video"
|
493 |
msgstr ""
|
494 |
|
495 |
+
#: ../lib/functions/KcSeoOptions.php:532
|
496 |
msgid "The title of the video"
|
497 |
msgstr ""
|
498 |
|
499 |
+
#: ../lib/functions/KcSeoOptions.php:538
|
500 |
msgid "The description of the video"
|
501 |
msgstr ""
|
502 |
|
503 |
+
#: ../lib/functions/KcSeoOptions.php:545
|
504 |
+
msgid "A URL pointing to the video thumbnail image file. Images must be at least 160x90 pixels and at most 1920x1080 pixels."
|
|
|
|
|
505 |
msgstr ""
|
506 |
|
507 |
+
#: ../lib/functions/KcSeoOptions.php:548
|
508 |
msgid "Updated date"
|
509 |
msgstr ""
|
510 |
|
511 |
+
#: ../lib/functions/KcSeoOptions.php:551
|
512 |
msgid "2015-02-05T08:00:00+08:00"
|
513 |
msgstr ""
|
514 |
|
515 |
+
#: ../lib/functions/KcSeoOptions.php:554
|
516 |
msgid "Duration"
|
517 |
msgstr ""
|
518 |
|
519 |
+
#: ../lib/functions/KcSeoOptions.php:556
|
520 |
msgid "The duration of the video in ISO 8601 format.(PT1M33S)"
|
521 |
msgstr ""
|
522 |
|
523 |
+
#: ../lib/functions/KcSeoOptions.php:562
|
524 |
+
msgid "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."
|
|
|
|
|
|
|
525 |
msgstr ""
|
526 |
|
527 |
+
#: ../lib/functions/KcSeoOptions.php:568
|
528 |
+
msgid "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."
|
|
|
|
|
|
|
529 |
msgstr ""
|
530 |
|
531 |
+
#: ../lib/functions/KcSeoOptions.php:571
|
532 |
msgid "Interaction count"
|
533 |
msgstr ""
|
534 |
|
535 |
+
#: ../lib/functions/KcSeoOptions.php:573
|
536 |
msgid "The number of times the video has been viewed."
|
537 |
msgstr ""
|
538 |
|
539 |
+
#: ../lib/functions/KcSeoOptions.php:576
|
540 |
msgid "Expires"
|
541 |
msgstr ""
|
542 |
|
543 |
+
#: ../lib/functions/KcSeoOptions.php:585
|
544 |
msgid "Service"
|
545 |
msgstr ""
|
546 |
|
547 |
+
#: ../lib/functions/KcSeoOptions.php:594
|
548 |
msgid "The name of the Service."
|
549 |
msgstr ""
|
550 |
|
551 |
+
#: ../lib/functions/KcSeoOptions.php:597
|
552 |
msgid "Service type"
|
553 |
msgstr ""
|
554 |
|
555 |
+
#: ../lib/functions/KcSeoOptions.php:600
|
556 |
+
msgid "The type of service being offered, e.g. veterans' benefits, emergency relief, etc."
|
|
|
|
|
557 |
msgstr ""
|
558 |
|
559 |
+
#: ../lib/functions/KcSeoOptions.php:606
|
560 |
+
msgid "An additional type for the service, typically used for adding more specific types from external vocabularies in microdata syntax."
|
|
|
|
|
561 |
msgstr ""
|
562 |
|
563 |
+
#: ../lib/functions/KcSeoOptions.php:609
|
564 |
msgid "Award"
|
565 |
msgstr ""
|
566 |
|
567 |
+
#: ../lib/functions/KcSeoOptions.php:611
|
568 |
msgid "An award won by or for this service."
|
569 |
msgstr ""
|
570 |
|
571 |
+
#: ../lib/functions/KcSeoOptions.php:614
|
572 |
msgid "Category"
|
573 |
msgstr ""
|
574 |
|
575 |
+
#: ../lib/functions/KcSeoOptions.php:616
|
576 |
msgid "A category for the service."
|
577 |
msgstr ""
|
578 |
|
579 |
+
#: ../lib/functions/KcSeoOptions.php:619
|
580 |
msgid "Provider mobility"
|
581 |
msgstr ""
|
582 |
|
583 |
+
#: ../lib/functions/KcSeoOptions.php:621
|
584 |
+
msgid "Indicates the mobility of a provided service (e.g. 'static', 'dynamic')."
|
|
|
585 |
msgstr ""
|
586 |
|
587 |
+
#: ../lib/functions/KcSeoOptions.php:627
|
588 |
msgid "A short description of the service."
|
589 |
msgstr ""
|
590 |
|
591 |
+
#: ../lib/functions/KcSeoOptions.php:633
|
592 |
msgid "An image of the service. This should be a URL."
|
593 |
msgstr ""
|
594 |
|
595 |
+
#: ../lib/functions/KcSeoOptions.php:639
|
596 |
+
msgid "Indicates a page (or other CreativeWork) for which this thing is the main entity being described."
|
|
|
|
|
597 |
msgstr ""
|
598 |
|
599 |
+
#: ../lib/functions/KcSeoOptions.php:645
|
600 |
+
msgid "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."
|
|
|
|
|
|
|
601 |
msgstr ""
|
602 |
|
603 |
+
#: ../lib/functions/KcSeoOptions.php:651
|
604 |
msgid "URL of the service."
|
605 |
msgstr ""
|
606 |
|
607 |
+
#: ../lib/functions/KcSeoOptions.php:654
|
608 |
msgid "Alternate name"
|
609 |
msgstr ""
|
610 |
|
611 |
+
#: ../lib/functions/KcSeoOptions.php:656
|
612 |
msgid "An alias for the service."
|
613 |
msgstr ""
|
614 |
|
615 |
+
#: ../lib/functions/KcSeoOptions.php:673
|
|
|
|
|
|
|
|
|
616 |
msgid "Name of the reviewed item"
|
617 |
msgstr ""
|
618 |
|
619 |
+
#: ../lib/functions/KcSeoOptions.php:676
|
620 |
msgid "The item that is being reviewed."
|
621 |
msgstr ""
|
622 |
|
623 |
+
#: ../lib/functions/KcSeoOptions.php:685
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
624 |
msgid "Review name"
|
625 |
msgstr ""
|
626 |
|
627 |
+
#: ../lib/functions/KcSeoOptions.php:688
|
628 |
msgid "A particular name for the review."
|
629 |
msgstr ""
|
630 |
|
631 |
+
#: ../lib/functions/KcSeoOptions.php:695
|
632 |
msgid "The author of the review. The reviewer’s name needs to be a valid name."
|
633 |
msgstr ""
|
634 |
|
635 |
+
#: ../lib/functions/KcSeoOptions.php:722
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
636 |
msgid "Name of the organization"
|
637 |
msgstr ""
|
638 |
|
639 |
+
#: ../lib/functions/KcSeoOptions.php:724
|
640 |
msgid "The publisher of the review."
|
641 |
msgstr ""
|
642 |
|
643 |
+
#: ../lib/functions/KcSeoOptions.php:730
|
644 |
msgid "Aggregate Ratings"
|
645 |
msgstr ""
|
646 |
|
647 |
+
#: ../lib/functions/KcSeoOptions.php:736
|
648 |
msgid "Schema type"
|
649 |
msgstr ""
|
650 |
|
651 |
+
#: ../lib/functions/KcSeoOptions.php:741
|
652 |
msgid "Use the most appropriate schema type for what is being reviewed."
|
653 |
msgstr ""
|
654 |
|
655 |
+
#: ../lib/functions/KcSeoOptions.php:744
|
656 |
msgid "Name of the item"
|
657 |
msgstr ""
|
658 |
|
659 |
+
#: ../lib/functions/KcSeoOptions.php:747
|
660 |
msgid "The item that is being rated."
|
661 |
msgstr ""
|
662 |
|
663 |
+
#: ../lib/functions/KcSeoOptions.php:760, ../lib/functions/KcSeoOptions.php:900, ../lib/views/schema-options.php:118
|
|
|
664 |
msgid "The price range of the business, for example $$$."
|
665 |
msgstr ""
|
666 |
|
667 |
+
#: ../lib/functions/KcSeoOptions.php:777
|
668 |
msgid "Description for thr review"
|
669 |
msgstr ""
|
670 |
|
671 |
+
#: ../lib/functions/KcSeoOptions.php:780
|
672 |
msgid "Rating Count"
|
673 |
msgstr ""
|
674 |
|
675 |
+
#: ../lib/functions/KcSeoOptions.php:784
|
676 |
+
msgid "The total number of ratings for the item on your site. <span class='required'>* At least one of ratingCount or reviewCount is required.</span>"
|
|
|
|
|
|
|
677 |
msgstr ""
|
678 |
|
679 |
+
#: ../lib/functions/KcSeoOptions.php:787
|
680 |
msgid "Review Count"
|
681 |
msgstr ""
|
682 |
|
683 |
+
#: ../lib/functions/KcSeoOptions.php:791
|
684 |
+
msgid "Specifies the number of people who provided a review with or without an accompanying rating. At least one of ratingCount or reviewCount is required."
|
|
|
|
|
685 |
msgstr ""
|
686 |
|
687 |
+
#: ../lib/functions/KcSeoOptions.php:794, ../lib/functions/KcSeoOptions.php:801
|
688 |
msgid "Rating Value"
|
689 |
msgstr ""
|
690 |
|
691 |
+
#: ../lib/functions/KcSeoOptions.php:808
|
692 |
msgid "Best Rating"
|
693 |
msgstr ""
|
694 |
|
695 |
+
#: ../lib/functions/KcSeoOptions.php:812
|
696 |
+
msgid "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."
|
|
|
|
|
|
|
697 |
msgstr ""
|
698 |
|
699 |
+
#: ../lib/functions/KcSeoOptions.php:815
|
700 |
msgid "Worst Rating"
|
701 |
msgstr ""
|
702 |
|
703 |
+
#: ../lib/functions/KcSeoOptions.php:819
|
704 |
+
msgid "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."
|
|
|
|
|
|
|
705 |
msgstr ""
|
706 |
|
707 |
+
#: ../lib/functions/KcSeoOptions.php:825
|
708 |
msgid "Restaurant"
|
709 |
msgstr ""
|
710 |
|
711 |
+
#: ../lib/functions/KcSeoOptions.php:831
|
712 |
msgid "Name of the Restaurant"
|
713 |
msgstr ""
|
714 |
|
715 |
+
#: ../lib/functions/KcSeoOptions.php:836
|
716 |
msgid "Description of the Restaurant"
|
717 |
msgstr ""
|
718 |
|
719 |
+
#: ../lib/functions/KcSeoOptions.php:840
|
720 |
msgid "Opening Hours"
|
721 |
msgstr ""
|
722 |
|
723 |
+
#: ../lib/functions/KcSeoOptions.php:842
|
724 |
msgid "Mo,Tu,We,Th,Fr,Sa,Su 11:30-23:00"
|
725 |
msgstr ""
|
726 |
|
727 |
+
#: ../lib/functions/KcSeoOptions.php:845, ../lib/functions/KcSeoOptions.php:921
|
728 |
msgid "Telephone"
|
729 |
msgstr ""
|
730 |
|
731 |
+
#: ../lib/functions/KcSeoOptions.php:847
|
732 |
msgid "+155501003333"
|
733 |
msgstr ""
|
734 |
|
735 |
+
#: ../lib/functions/KcSeoOptions.php:850
|
736 |
msgid "Menu"
|
737 |
msgstr ""
|
738 |
|
739 |
+
#: ../lib/functions/KcSeoOptions.php:852
|
740 |
msgid "http://example.com/menu"
|
741 |
msgstr ""
|
742 |
|
743 |
+
#: ../lib/functions/KcSeoOptions.php:860, ../lib/views/schema-options.php:270
|
744 |
msgid "Address"
|
745 |
msgstr ""
|
746 |
|
747 |
+
#: ../lib/functions/KcSeoOptions.php:864, ../lib/functions/KcSeoOptions.php:897, ../lib/views/schema-options.php:113
|
|
|
748 |
msgid "Price Range"
|
749 |
msgstr ""
|
750 |
|
751 |
+
#: ../lib/functions/KcSeoOptions.php:866
|
752 |
msgid "The price range of the business, for example $$$"
|
753 |
msgstr ""
|
754 |
|
755 |
+
#: ../lib/functions/KcSeoOptions.php:869
|
756 |
msgid "Serves Cuisine"
|
757 |
msgstr ""
|
758 |
|
759 |
+
#: ../lib/functions/KcSeoOptions.php:871, ../lib/views/schema-options.php:159
|
760 |
msgid "The cuisine of the restaurant."
|
761 |
msgstr ""
|
762 |
|
763 |
+
#: ../lib/functions/KcSeoOptions.php:877
|
764 |
msgid "Local Business"
|
765 |
msgstr ""
|
766 |
|
767 |
+
#: ../lib/functions/KcSeoOptions.php:892
|
768 |
msgid "Business Logo"
|
769 |
msgstr ""
|
770 |
|
771 |
+
#: ../lib/functions/KcSeoOptions.php:903
|
772 |
msgid "Address locality"
|
773 |
msgstr ""
|
774 |
|
775 |
+
#: ../lib/functions/KcSeoOptions.php:905
|
776 |
msgid "City (i.e Kansas city)"
|
777 |
msgstr ""
|
778 |
|
779 |
+
#: ../lib/functions/KcSeoOptions.php:908
|
780 |
msgid "Address region"
|
781 |
msgstr ""
|
782 |
|
783 |
+
#: ../lib/functions/KcSeoOptions.php:910
|
784 |
msgid "State (i.e. MO)"
|
785 |
msgstr ""
|
786 |
|
787 |
+
#: ../lib/functions/KcSeoOptions.php:913
|
788 |
msgid "Postal code"
|
789 |
msgstr ""
|
790 |
|
791 |
+
#: ../lib/functions/KcSeoOptions.php:917
|
792 |
msgid "Street address"
|
793 |
msgstr ""
|
794 |
|
795 |
+
#: ../lib/functions/KcSeoOptions.php:979
|
796 |
msgid "Book"
|
797 |
msgstr ""
|
798 |
|
799 |
+
#: ../lib/functions/KcSeoOptions.php:983
|
800 |
msgid "Course"
|
801 |
msgstr ""
|
802 |
|
803 |
+
#: ../lib/functions/KcSeoOptions.php:987
|
804 |
msgid "Job Posting"
|
805 |
msgstr ""
|
806 |
|
807 |
+
#: ../lib/functions/KcSeoOptions.php:991
|
808 |
msgid "Movie"
|
809 |
msgstr ""
|
810 |
|
811 |
+
#: ../lib/functions/KcSeoOptions.php:1003
|
812 |
msgid "TVEpisode"
|
813 |
msgstr ""
|
814 |
|
815 |
+
#: ../lib/views/schema-options.php:13
|
816 |
+
msgid "General settings for WP SEO Structured Data Schema by <a href=\"https://wpsemplugins.com/\">WPSEMPlugins.com</a>"
|
|
|
|
|
|
|
|
|
817 |
msgstr ""
|
818 |
|
819 |
+
#: ../lib/views/schema-options.php:35
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
820 |
msgid "Site Type"
|
821 |
msgstr ""
|
822 |
|
823 |
+
#: ../lib/views/schema-options.php:38
|
824 |
msgid "Select one type"
|
825 |
msgstr ""
|
826 |
|
827 |
+
#: ../lib/views/schema-options.php:78
|
828 |
msgid "Organization or Business name"
|
829 |
msgstr ""
|
830 |
|
831 |
+
#: ../lib/views/schema-options.php:85
|
832 |
msgid "Site Image"
|
833 |
msgstr ""
|
834 |
|
835 |
+
#: ../lib/views/schema-options.php:122
|
836 |
msgid "Site Telephone"
|
837 |
msgstr ""
|
838 |
|
839 |
+
#: ../lib/views/schema-options.php:127
|
840 |
msgid "The telephone number."
|
841 |
msgstr ""
|
842 |
|
843 |
+
#: ../lib/views/schema-options.php:131
|
844 |
msgid "Additional Type"
|
845 |
msgstr ""
|
846 |
|
847 |
+
#: ../lib/views/schema-options.php:138
|
848 |
msgid "Add \"Additional Type\""
|
849 |
msgstr ""
|
850 |
|
851 |
+
#: ../lib/views/schema-options.php:142
|
852 |
msgid ""
|
853 |
+
"Product Ontology is an extension to schema using WikiPedia definitions that enables you to further define a type by adding an \"AdditionalType” attribute.Example for a Tailor (which is not available\n"
|
854 |
+
" as a schema “Type”): Pick LocalBusiness as a generic Type, then add additional type as follows:"
|
|
|
|
|
|
|
855 |
msgstr ""
|
856 |
|
857 |
+
#: ../lib/views/schema-options.php:156
|
858 |
msgid "Restaurant Information"
|
859 |
msgstr ""
|
860 |
|
861 |
+
#: ../lib/views/schema-options.php:167
|
862 |
msgid "Others local business info"
|
863 |
msgstr ""
|
864 |
|
865 |
+
#: ../lib/views/schema-options.php:177
|
866 |
msgid "Operation Hours"
|
867 |
msgstr ""
|
868 |
|
869 |
+
#: ../lib/views/schema-options.php:204
|
870 |
msgid "GeoCoordinates"
|
871 |
msgstr ""
|
872 |
|
873 |
+
#: ../lib/views/schema-options.php:207
|
874 |
msgid "Latitude"
|
875 |
msgstr ""
|
876 |
|
877 |
+
#: ../lib/views/schema-options.php:214
|
878 |
msgid "Longitude"
|
879 |
msgstr ""
|
880 |
|
881 |
+
#: ../lib/views/schema-options.php:221
|
882 |
msgid "Person"
|
883 |
msgstr ""
|
884 |
|
885 |
+
#: ../lib/views/schema-options.php:231
|
886 |
msgid "Work For"
|
887 |
msgstr ""
|
888 |
|
889 |
+
#: ../lib/views/schema-options.php:239
|
890 |
msgid "Job Title"
|
891 |
msgstr ""
|
892 |
|
893 |
+
#: ../lib/views/schema-options.php:251
|
894 |
msgid "Add your personal photo here"
|
895 |
msgstr ""
|
896 |
|
897 |
+
#: ../lib/views/schema-options.php:262
|
898 |
msgid "Birth date"
|
899 |
msgstr ""
|
900 |
|
901 |
+
#: ../lib/views/schema-options.php:273
|
902 |
msgid "Address Country"
|
903 |
msgstr ""
|
904 |
|
905 |
+
#: ../lib/views/schema-options.php:288
|
906 |
msgid "Address Locality"
|
907 |
msgstr ""
|
908 |
|
909 |
+
#: ../lib/views/schema-options.php:295
|
910 |
msgid "Address Region"
|
911 |
msgstr ""
|
912 |
|
913 |
+
#: ../lib/views/schema-options.php:302
|
914 |
msgid "Postal Code"
|
915 |
msgstr ""
|
916 |
|
917 |
+
#: ../lib/views/schema-options.php:308
|
918 |
msgid "Street Address"
|
919 |
msgstr ""
|
920 |
|
921 |
+
#: ../lib/views/schema-options.php:317
|
922 |
msgid "Add New Address"
|
923 |
msgstr ""
|
924 |
|
925 |
+
#: ../lib/views/schema-options.php:324
|
926 |
msgid "Organization Logo"
|
927 |
msgstr ""
|
928 |
|
929 |
+
#: ../lib/views/schema-options.php:327, ../lib/views/schema-options.php:390
|
930 |
msgid "Social Profile"
|
931 |
msgstr ""
|
932 |
|
933 |
+
#: ../lib/views/schema-options.php:330
|
934 |
msgid "Corporate Contacts"
|
935 |
msgstr ""
|
936 |
|
937 |
+
#: ../lib/views/schema-options.php:336
|
938 |
msgid "Select Organization Logo"
|
939 |
msgstr ""
|
940 |
|
941 |
+
#: ../lib/views/schema-options.php:380
|
942 |
msgid "Company Name"
|
943 |
msgstr ""
|
944 |
|
945 |
+
#: ../lib/views/schema-options.php:387
|
946 |
msgid "Social Profiles"
|
947 |
msgstr ""
|
948 |
|
949 |
+
#: ../lib/views/schema-options.php:416
|
950 |
msgid "Add Social Profile"
|
951 |
msgstr ""
|
952 |
|
953 |
+
#: ../lib/views/schema-options.php:424
|
954 |
msgid "Contacts"
|
955 |
msgstr ""
|
956 |
|
957 |
+
#: ../lib/views/schema-options.php:443
|
958 |
msgid "Contact Phone"
|
959 |
msgstr ""
|
960 |
|
961 |
+
#: ../lib/views/schema-options.php:447
|
962 |
msgid "Please follow the format below"
|
963 |
msgstr ""
|
964 |
|
965 |
+
#: ../lib/views/schema-options.php:458
|
966 |
msgid "Contact Email"
|
967 |
msgstr ""
|
968 |
|
969 |
+
#: ../lib/views/schema-options.php:465
|
970 |
msgid "Contact Option"
|
971 |
msgstr ""
|
972 |
|
973 |
+
#: ../lib/views/schema-options.php:469
|
974 |
msgid "Select an option"
|
975 |
msgstr ""
|
976 |
|
977 |
+
#: ../lib/views/schema-options.php:472
|
978 |
msgid "TollFree"
|
979 |
msgstr ""
|
980 |
|
981 |
+
#: ../lib/views/schema-options.php:476
|
982 |
msgid "HearingImpairedSupported"
|
983 |
msgstr ""
|
984 |
|
985 |
+
#: ../lib/views/schema-options.php:482
|
986 |
msgid "Area Served"
|
987 |
msgstr ""
|
988 |
|
989 |
+
#: ../lib/views/schema-options.php:500
|
990 |
msgid "Available language"
|
991 |
msgstr ""
|
992 |
|
993 |
+
#: ../lib/views/schema-options.php:518
|
994 |
msgid "Site Schema"
|
995 |
msgstr ""
|
996 |
|
997 |
+
#: ../lib/views/schema-options.php:521
|
998 |
msgid "Disable Site Schema"
|
999 |
msgstr ""
|
1000 |
|
1001 |
+
#: ../lib/views/schema-options.php:529
|
1002 |
msgid "Enable Site link Search Box"
|
1003 |
msgstr ""
|
1004 |
|
1005 |
+
#: ../lib/views/schema-options.php:534
|
1006 |
msgid "Note: Preferred Name markup may no longer be supported by Google"
|
1007 |
msgstr ""
|
1008 |
|
1009 |
+
#: ../lib/views/schema-options.php:538
|
1010 |
msgid "Site Name:"
|
1011 |
msgstr ""
|
1012 |
|
1013 |
+
#: ../lib/views/schema-options.php:545
|
1014 |
msgid "Site Alternative Name:"
|
1015 |
msgstr ""
|
1016 |
|
1017 |
+
#: ../lib/views/schema-options.php:552
|
1018 |
msgid "Site Url:"
|
1019 |
msgstr ""
|
1020 |
|
1021 |
+
#: ../lib/views/schema-options.php:560, ../lib/views/settings.php:152
|
1022 |
msgid "Save Changes"
|
1023 |
msgstr ""
|
1024 |
|
1025 |
+
#: ../lib/views/settings.php:6
|
1026 |
msgid "Schema Settings"
|
1027 |
msgstr ""
|
1028 |
|
1029 |
+
#: ../lib/views/settings.php:13
|
1030 |
msgid "Business / Org Schema"
|
1031 |
msgstr ""
|
1032 |
|
1033 |
+
#: ../lib/views/settings.php:18
|
1034 |
msgid ""
|
1035 |
"Home page\n"
|
1036 |
" only"
|
1037 |
msgstr ""
|
1038 |
|
1039 |
+
#: ../lib/views/settings.php:22
|
1040 |
msgid ""
|
1041 |
"Sitewide (Apply General Settings schema\n"
|
1042 |
" sitewide)"
|
1043 |
msgstr ""
|
1044 |
|
1045 |
+
#: ../lib/views/settings.php:27
|
1046 |
msgid "Turn off (Turn off global schema)"
|
1047 |
msgstr ""
|
1048 |
|
1049 |
+
#: ../lib/views/settings.php:32
|
1050 |
msgid "Post Type"
|
1051 |
msgstr ""
|
1052 |
|
1053 |
+
#: ../lib/views/settings.php:33, ../lib/views/settings.php:52, ../lib/views/settings.php:78, ../lib/views/settings.php:87
|
1054 |
+
msgid "PRO"
|
1055 |
msgstr ""
|
1056 |
|
1057 |
+
#: ../lib/views/settings.php:46
|
1058 |
+
msgid "Site Navigation Element Schema"
|
1059 |
msgstr ""
|
1060 |
|
1061 |
+
#: ../lib/views/settings.php:51, ../lib/views/settings.php:77
|
1062 |
+
msgid "Publisher Name"
|
1063 |
msgstr ""
|
1064 |
|
1065 |
+
#: ../lib/views/settings.php:67
|
1066 |
msgid ""
|
1067 |
+
"Please deselect the navigation menu if you want to deactivate site navigation\n"
|
|
|
1068 |
" schema."
|
1069 |
msgstr ""
|
1070 |
|
1071 |
+
#: ../lib/views/settings.php:72
|
1072 |
msgid "Publisher Information"
|
1073 |
msgstr ""
|
1074 |
|
1075 |
+
#: ../lib/views/settings.php:93
|
1076 |
+
msgid "Third party plugin Settings"
|
1077 |
msgstr ""
|
1078 |
|
1079 |
+
#: ../lib/views/settings.php:97
|
1080 |
+
msgid "YOAST SEO Default Schema JSON-LD"
|
1081 |
msgstr ""
|
1082 |
|
1083 |
+
#: ../lib/views/settings.php:102, ../lib/views/settings.php:112, ../lib/views/settings.php:122, ../lib/views/settings.php:132
|
1084 |
+
msgid "Disable"
|
1085 |
msgstr ""
|
1086 |
|
1087 |
+
#: ../lib/views/settings.php:103
|
1088 |
+
msgid "This will remove all default schema generated by Yoast SEO plugin."
|
|
|
|
|
|
|
1089 |
msgstr ""
|
1090 |
|
1091 |
+
#: ../lib/views/settings.php:107
|
1092 |
+
msgid "YOAST SEO sitelinks searchbox"
|
|
|
1093 |
msgstr ""
|
1094 |
|
1095 |
+
#: ../lib/views/settings.php:113
|
1096 |
+
msgid "This will remove sitelinks searchbox generated by Yoast SEO plugin."
|
1097 |
+
msgstr ""
|
1098 |
+
|
1099 |
+
#: ../lib/views/settings.php:117
|
1100 |
+
msgid "Woocommerce default schema"
|
1101 |
+
msgstr ""
|
1102 |
+
|
1103 |
+
#: ../lib/views/settings.php:123
|
1104 |
+
msgid "This will remove Woocommerce plugin generated schema."
|
1105 |
+
msgstr ""
|
1106 |
+
|
1107 |
+
#: ../lib/views/settings.php:127
|
1108 |
+
msgid "Easy Digital Download default schema"
|
1109 |
+
msgstr ""
|
1110 |
+
|
1111 |
+
#: ../lib/views/settings.php:133
|
1112 |
+
msgid "This will remove Easy Digital Download plugin generated schema."
|
1113 |
msgstr ""
|
1114 |
|
1115 |
+
#: ../lib/views/settings.php:137
|
1116 |
+
msgid "System Settings"
|
1117 |
+
msgstr ""
|
1118 |
+
|
1119 |
+
#: ../lib/views/settings.php:140
|
1120 |
+
msgid "Delete all data"
|
1121 |
+
msgstr ""
|
1122 |
+
|
1123 |
+
#: ../lib/views/settings.php:145
|
1124 |
+
msgid "Enable"
|
1125 |
+
msgstr ""
|
1126 |
+
|
1127 |
+
#: ../lib/views/settings.php:146
|
1128 |
+
msgid ""
|
1129 |
+
"This will delete all schema created and applied by this plugin when plugin is\n"
|
1130 |
+
" deleted."
|
1131 |
msgstr ""
|
lib/classes/KcSeoHooks.php
ADDED
@@ -0,0 +1,68 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
class KcSeoHooks {
|
5 |
+
|
6 |
+
public function __construct() {
|
7 |
+
add_action( 'plugins_loaded', array( __CLASS__, 'plugins_loaded' ) );
|
8 |
+
|
9 |
+
}
|
10 |
+
|
11 |
+
public static function plugins_loaded() {
|
12 |
+
$settings = get_option( kcseo()->options['main_settings'] );
|
13 |
+
if ( KcSeoFunctions::isYoastActive() ) {
|
14 |
+
if ( isset( $settings['yoast_wpseo_json_ld_search'] ) && $settings['yoast_wpseo_json_ld_search'] ) {
|
15 |
+
add_filter( 'disable_wpseo_json_ld_search', '__return_true' );
|
16 |
+
}
|
17 |
+
if ( isset( $settings['yoast_wpseo_json_ld'] ) && $settings['yoast_wpseo_json_ld'] ) {
|
18 |
+
add_filter( 'wpseo_json_ld_output', array( __CLASS__, 'disable_yoast_schema_data' ), 10 );
|
19 |
+
add_filter( 'wpseo_schema_graph_pieces', '__return_empty_array' );
|
20 |
+
}
|
21 |
+
}
|
22 |
+
|
23 |
+
if ( KcSeoFunctions::isWcActive() ) {
|
24 |
+
if ( isset( $settings['wc_schema_disable'] ) && $settings['wc_schema_disable'] ) {
|
25 |
+
add_filter( 'woocommerce_structured_data_type_for_page', array(
|
26 |
+
__CLASS__,
|
27 |
+
'remove_product_structured_data'
|
28 |
+
), 10, 2 );
|
29 |
+
add_action( 'init', array( __CLASS__, 'remove_output_structured_data' ) );
|
30 |
+
}
|
31 |
+
}
|
32 |
+
if ( KcSeoFunctions::isEddActive() ) {
|
33 |
+
if ( isset( $settings['edd_schema_microdata'] ) && $settings['edd_schema_microdata'] ) {
|
34 |
+
add_filter( 'edd_add_schema_microdata', '__return_false' );
|
35 |
+
}
|
36 |
+
}
|
37 |
+
}
|
38 |
+
|
39 |
+
public static function disable_yoast_schema_data( $data ) {
|
40 |
+
$data = array();
|
41 |
+
|
42 |
+
return $data;
|
43 |
+
}
|
44 |
+
|
45 |
+
/**
|
46 |
+
* Remove all product structured data.
|
47 |
+
*/
|
48 |
+
static function remove_product_structured_data( $types ) {
|
49 |
+
if ( ( $index = array_search( 'product', $types ) ) !== false ) {
|
50 |
+
unset( $types[ $index ] );
|
51 |
+
}
|
52 |
+
|
53 |
+
return $types;
|
54 |
+
}
|
55 |
+
|
56 |
+
/* Remove the default WooCommerce 3 JSON/LD structured data */
|
57 |
+
static function remove_output_structured_data() {
|
58 |
+
remove_action( 'wp_footer', array(
|
59 |
+
WC()->structured_data,
|
60 |
+
'output_structured_data'
|
61 |
+
), 10 ); // This removes structured data from all frontend pages
|
62 |
+
remove_action( 'woocommerce_email_order_details', array(
|
63 |
+
WC()->structured_data,
|
64 |
+
'output_email_structured_data'
|
65 |
+
), 30 ); // This removes structured data from all Emails sent by WooCommerce
|
66 |
+
}
|
67 |
+
|
68 |
+
}
|
lib/classes/KcSeoInit.php
CHANGED
@@ -6,8 +6,8 @@ if ( ! class_exists( 'KcSeoInit' ) ):
|
|
6 |
protected $version;
|
7 |
|
8 |
function __construct() {
|
9 |
-
|
10 |
-
$this->version = ( defined( 'WP_DEBUG' ) && WP_DEBUG ) ? time() :
|
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' ) );
|
6 |
protected $version;
|
7 |
|
8 |
function __construct() {
|
9 |
+
|
10 |
+
$this->version = ( defined( 'WP_DEBUG' ) && WP_DEBUG ) ? time() : KCSEO_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' ) );
|
lib/functions/KcSeoFunctions.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
class KcSeoFunctions {
|
5 |
+
static function isYoastActive() {
|
6 |
+
if ( in_array( 'wordpress-seo/wp-seo.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {
|
7 |
+
return true;
|
8 |
+
}
|
9 |
+
|
10 |
+
return false;
|
11 |
+
}
|
12 |
+
|
13 |
+
static function isWcActive() {
|
14 |
+
return class_exists( 'woocommerce' );
|
15 |
+
}
|
16 |
+
|
17 |
+
public static function isEddActive() {
|
18 |
+
return class_exists( 'Easy_Digital_Downloads' );
|
19 |
+
}
|
20 |
+
|
21 |
+
}
|
lib/functions/KcSeoOptions.php
CHANGED
@@ -221,72 +221,72 @@ class KcSeoOptions
|
|
221 |
'pro' => false,
|
222 |
'title' => __('Event', "wp-seo-structured-data-schema"),
|
223 |
'fields' => array(
|
224 |
-
'active'
|
225 |
'type' => 'checkbox'
|
226 |
),
|
227 |
-
'name'
|
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'
|
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'
|
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'
|
246 |
'title' => __('Start date', "wp-seo-structured-data-schema"),
|
247 |
'type' => 'text',
|
248 |
'class' => 'kcseo-date',
|
249 |
'required' => true,
|
250 |
'desc' => __("Event start date Like : 2017-10-16 4:00 AM", "wp-seo-structured-data-schema")
|
251 |
),
|
252 |
-
'endDate'
|
253 |
'title' => __('End date', "wp-seo-structured-data-schema"),
|
254 |
'type' => 'text',
|
255 |
'recommended' => true,
|
256 |
'class' => 'kcseo-date',
|
257 |
'desc' => __("Event end date Like : 2017-10-16 4:00 AM", "wp-seo-structured-data-schema")
|
258 |
),
|
259 |
-
'description'
|
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'
|
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'
|
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'
|
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'
|
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'
|
290 |
'title' => 'Availability',
|
291 |
'type' => 'select',
|
292 |
'recommended' => true,
|
@@ -297,20 +297,70 @@ class KcSeoOptions
|
|
297 |
'http://schema.org/PreOrder' => 'PreOrder',
|
298 |
),
|
299 |
),
|
300 |
-
'validFrom'
|
301 |
'title' => __('Valid From', "wp-seo-structured-data-schema"),
|
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")
|
306 |
),
|
307 |
-
'url'
|
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(
|
@@ -337,28 +387,28 @@ class KcSeoOptions
|
|
337 |
'desc' => __("Product description.", "wp-seo-structured-data-schema")
|
338 |
),
|
339 |
'sku' => array(
|
340 |
-
'title' => __('SKU', "wp-seo-structured-data-schema
|
341 |
'type' => 'text',
|
342 |
'recommended' => true
|
343 |
),
|
344 |
'brand' => array(
|
345 |
-
'title'
|
346 |
-
'type'
|
347 |
'recommended' => true,
|
348 |
-
'desc'
|
349 |
),
|
350 |
'identifier_type' => array(
|
351 |
-
'title'
|
352 |
-
'type'
|
353 |
'recommended' => true,
|
354 |
-
'options'
|
355 |
'mpn' => 'MPN',
|
356 |
'isbn' => 'ISBN',
|
357 |
'gtin8' => 'GTIN-8 (UPC, JAN)',
|
358 |
'gtin12' => 'GTIN-12 (UPC)',
|
359 |
'gtin13' => 'GTIN-13 (EAN,JAN)'
|
360 |
),
|
361 |
-
'desc'
|
362 |
→ MPN(Manufacturer Part Number) Used globally, Alphanumeric digits (various lengths)<br>
|
363 |
<strong>GTIN</strong><br>
|
364 |
→ UPC(Universal Product Code) Used in primarily North America. 12 numeric digits. eg. 892685001003.<br>
|
@@ -367,10 +417,14 @@ class KcSeoOptions
|
|
367 |
→ JAN(Japanese Article Number) Used only in Japan, 8 or 13 numeric digits.", "wp-seo-structured-data-schema")
|
368 |
),
|
369 |
'identifier' => array(
|
370 |
-
'title'
|
371 |
-
'type'
|
372 |
'recommended' => true,
|
373 |
-
'desc'
|
|
|
|
|
|
|
|
|
374 |
),
|
375 |
'reviewRatingValue' => array(
|
376 |
'title' => __('Review rating value', "wp-seo-structured-data-schema"),
|
@@ -407,6 +461,10 @@ class KcSeoOptions
|
|
407 |
'attr' => 'step="any"',
|
408 |
'desc' => __("Review rating value. <span class='required'>This is required if (Rating value) is given</span>", "wp-seo-structured-data-schema")
|
409 |
),
|
|
|
|
|
|
|
|
|
410 |
'price' => array(
|
411 |
'title' => __('Price', "wp-seo-structured-data-schema"),
|
412 |
'type' => 'number',
|
@@ -603,59 +661,64 @@ class KcSeoOptions
|
|
603 |
'pro' => false,
|
604 |
'title' => __('Review', "wp-seo-structured-data-schema"),
|
605 |
'fields' => array(
|
606 |
-
'active'
|
607 |
'type' => 'checkbox'
|
608 |
),
|
609 |
-
'
|
|
|
|
|
|
|
|
|
|
|
610 |
'title' => __('Name of the reviewed item', "wp-seo-structured-data-schema"),
|
611 |
'type' => 'text',
|
612 |
'required' => true,
|
613 |
'desc' => __("The item that is being reviewed.", "wp-seo-structured-data-schema")
|
614 |
),
|
615 |
-
'reviewBody'
|
616 |
'title' => __('Review body', "wp-seo-structured-data-schema"),
|
617 |
'type' => 'textarea',
|
618 |
'required' => true,
|
619 |
'desc' => __("The actual body of the review.", "wp-seo-structured-data-schema")
|
620 |
),
|
621 |
-
'name'
|
622 |
'title' => __('Review name', "wp-seo-structured-data-schema"),
|
623 |
'type' => 'text',
|
624 |
'required' => true,
|
625 |
'desc' => __("A particular name for the review.", "wp-seo-structured-data-schema")
|
626 |
),
|
627 |
-
'author'
|
628 |
'title' => __('Author', "wp-seo-structured-data-schema"),
|
629 |
'type' => 'text',
|
630 |
'required' => true,
|
631 |
'author' => 'Author name',
|
632 |
'desc' => __("The author of the review. The reviewer’s name needs to be a valid name.", "wp-seo-structured-data-schema")
|
633 |
),
|
634 |
-
'datePublished'
|
635 |
'title' => __('Date of Published', "wp-seo-structured-data-schema"),
|
636 |
'type' => 'text',
|
637 |
'class' => 'kcseo-date',
|
638 |
'desc' => __("Like this: 2015-12-25 4:00 PM", "wp-seo-structured-data-schema")
|
639 |
),
|
640 |
-
'ratingValue'
|
641 |
'title' => __('Rating value', "wp-seo-structured-data-schema"),
|
642 |
'type' => 'number',
|
643 |
'attr' => 'step="any"',
|
644 |
'desc' => __("A numerical quality rating for the item.", "wp-seo-structured-data-schema")
|
645 |
),
|
646 |
-
'bestRating'
|
647 |
'title' => __('Best rating', "wp-seo-structured-data-schema"),
|
648 |
'type' => 'number',
|
649 |
'attr' => 'step="any"',
|
650 |
'desc' => __("The highest value allowed in this rating system.", "wp-seo-structured-data-schema")
|
651 |
),
|
652 |
-
'worstRating'
|
653 |
'title' => __('Worst rating', "wp-seo-structured-data-schema"),
|
654 |
'type' => 'number',
|
655 |
'attr' => 'step="any"',
|
656 |
'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")
|
657 |
),
|
658 |
-
'publisher'
|
659 |
'title' => __('Name of the organization', "wp-seo-structured-data-schema"),
|
660 |
'type' => 'text',
|
661 |
'desc' => __('The publisher of the review.', "wp-seo-structured-data-schema")
|
@@ -813,51 +876,101 @@ class KcSeoOptions
|
|
813 |
'pro' => false,
|
814 |
'title' => __('Local Business', "wp-seo-structured-data-schema"),
|
815 |
'fields' => array(
|
816 |
-
'active'
|
817 |
'type' => 'checkbox'
|
818 |
),
|
819 |
-
'name'
|
820 |
'title' => __('Name', "wp-seo-structured-data-schema"),
|
821 |
'type' => 'text',
|
822 |
'required' => true
|
823 |
),
|
824 |
-
'description'
|
825 |
'title' => __('Description', "wp-seo-structured-data-schema"),
|
826 |
'type' => 'textarea',
|
827 |
),
|
828 |
-
'image'
|
829 |
'title' => __('Business Logo', "wp-seo-structured-data-schema"),
|
830 |
'type' => 'image',
|
831 |
'required' => true
|
832 |
),
|
833 |
-
'priceRange'
|
834 |
'title' => __('Price Range', "wp-seo-structured-data-schema"),
|
835 |
'type' => 'text',
|
836 |
'recommended' => true,
|
837 |
'desc' => __("The price range of the business, for example $$$.", "wp-seo-structured-data-schema")
|
838 |
),
|
839 |
-
'addressLocality'
|
840 |
'title' => __('Address locality', "wp-seo-structured-data-schema"),
|
841 |
'type' => 'text',
|
842 |
'desc' => __('City (i.e Kansas city)', "wp-seo-structured-data-schema")
|
843 |
),
|
844 |
-
'addressRegion'
|
845 |
'title' => __('Address region', "wp-seo-structured-data-schema"),
|
846 |
'type' => 'text',
|
847 |
'desc' => __('State (i.e. MO)', "wp-seo-structured-data-schema")
|
848 |
),
|
849 |
-
'postalCode'
|
850 |
'title' => __('Postal code', "wp-seo-structured-data-schema"),
|
851 |
'type' => 'text',
|
852 |
),
|
853 |
-
'streetAddress'
|
854 |
'title' => __('Street address', "wp-seo-structured-data-schema"),
|
855 |
'type' => 'text',
|
856 |
),
|
857 |
-
'telephone'
|
858 |
'title' => __('Telephone', "wp-seo-structured-data-schema"),
|
859 |
'type' => 'text',
|
860 |
'recommended' => true,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
861 |
)
|
862 |
)
|
863 |
),
|
@@ -1341,108 +1454,108 @@ class KcSeoOptions
|
|
1341 |
}
|
1342 |
|
1343 |
static function getLanguageList() {
|
1344 |
-
|
1345 |
-
|
1346 |
-
|
1347 |
-
|
1348 |
-
|
1349 |
-
|
1350 |
-
|
1351 |
-
|
1352 |
-
|
1353 |
-
|
1354 |
-
|
1355 |
-
|
1356 |
-
|
1357 |
-
|
1358 |
-
|
1359 |
-
|
1360 |
-
|
1361 |
-
|
1362 |
-
|
1363 |
-
|
1364 |
-
|
1365 |
-
|
1366 |
-
|
1367 |
-
|
1368 |
-
|
1369 |
-
|
1370 |
-
|
1371 |
-
|
1372 |
-
|
1373 |
-
|
1374 |
-
|
1375 |
-
|
1376 |
-
|
1377 |
-
|
1378 |
-
|
1379 |
-
|
1380 |
-
|
1381 |
-
|
1382 |
-
|
1383 |
-
|
1384 |
-
|
1385 |
-
|
1386 |
-
|
1387 |
-
|
1388 |
-
|
1389 |
-
|
1390 |
-
|
1391 |
-
|
1392 |
-
|
1393 |
-
|
1394 |
-
|
1395 |
-
|
1396 |
-
|
1397 |
-
|
1398 |
-
|
1399 |
-
|
1400 |
-
|
1401 |
-
|
1402 |
-
|
1403 |
-
|
1404 |
-
|
1405 |
-
|
1406 |
-
|
1407 |
-
|
1408 |
-
|
1409 |
-
|
1410 |
-
|
1411 |
-
|
1412 |
-
|
1413 |
-
|
1414 |
-
|
1415 |
-
|
1416 |
-
|
1417 |
-
|
1418 |
-
|
1419 |
-
|
1420 |
-
|
1421 |
-
|
1422 |
-
|
1423 |
-
|
1424 |
-
|
1425 |
-
|
1426 |
-
|
1427 |
-
|
1428 |
-
|
1429 |
-
|
1430 |
-
|
1431 |
-
|
1432 |
-
|
1433 |
-
|
1434 |
-
|
1435 |
-
|
1436 |
-
|
1437 |
-
|
1438 |
-
|
1439 |
-
|
1440 |
-
|
1441 |
-
|
1442 |
-
|
1443 |
-
|
1444 |
|
1445 |
-
|
1446 |
}
|
1447 |
|
1448 |
static function getSocialList() {
|
@@ -1463,4 +1576,17 @@ class KcSeoOptions
|
|
1463 |
return apply_filters('kcseo_social_list', $socialList);
|
1464 |
}
|
1465 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1466 |
}
|
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 Like : 2017-10-16 4:00 AM", "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 Like : 2017-10-16 4:00 AM", "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,
|
297 |
'http://schema.org/PreOrder' => 'PreOrder',
|
298 |
),
|
299 |
),
|
300 |
+
'validFrom' => array(
|
301 |
'title' => __('Valid From', "wp-seo-structured-data-schema"),
|
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")
|
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 |
+
'review_section' => array(
|
315 |
+
'title' => __('Review', "wp-seo-structured-data-schema"),
|
316 |
+
'type' => 'heading',
|
317 |
+
'desc' => __("To add review schema for this type, complete fields below and enable, others live blank.", "wp-seo-structured-data-schema")
|
318 |
+
),
|
319 |
+
'review_active' => array(
|
320 |
+
'type' => 'checkbox'
|
321 |
+
),
|
322 |
+
'review_author' => array(
|
323 |
+
'title' => __("Author", "wp-seo-structured-data-schema"),
|
324 |
+
'type' => 'text',
|
325 |
+
'required' => true
|
326 |
+
),
|
327 |
+
'review_author_sameAs' => array(
|
328 |
+
'title' => __("Author Same As profile link", "wp-seo-structured-data-schema"),
|
329 |
+
'type' => 'textarea',
|
330 |
+
'attr' => 'placeholder="https://facebook.com/example https://twitter.com/example"',
|
331 |
+
'required' => true,
|
332 |
+
'desc' => __('A reference page that unambiguously indicates the item\'s identity; for example, the URL of the item\'s Wikipedia page, Freebase page, or official website.<br> Enter new line for every entry', "wp-seo-structured-data-schema")
|
333 |
+
),
|
334 |
+
'review_body' => array(
|
335 |
+
'title' => __('Review body', "wp-seo-structured-data-schema"),
|
336 |
+
'type' => 'textarea',
|
337 |
+
'required' => true,
|
338 |
+
'desc' => __("The actual body of the review.", "wp-seo-structured-data-schema")
|
339 |
+
),
|
340 |
+
'review_datePublished' => array(
|
341 |
+
'title' => __('Date of Published', "wp-seo-structured-data-schema"),
|
342 |
+
'type' => 'text',
|
343 |
+
'class' => 'kcseo-date',
|
344 |
+
'desc' => __("Like this: 2015-12-25 4:00 PM", "wp-seo-structured-data-schema")
|
345 |
+
),
|
346 |
+
'review_ratingValue' => array(
|
347 |
+
'title' => __('Rating value', "wp-seo-structured-data-schema"),
|
348 |
+
'type' => 'number',
|
349 |
+
'attr' => 'step="any"',
|
350 |
+
'desc' => __("A numerical quality rating for the item.", "wp-seo-structured-data-schema")
|
351 |
+
),
|
352 |
+
'review_bestRating' => array(
|
353 |
+
'title' => __('Best rating', "wp-seo-structured-data-schema"),
|
354 |
+
'type' => 'number',
|
355 |
+
'attr' => 'step="any"',
|
356 |
+
'desc' => __("The highest value allowed in this rating system.", "wp-seo-structured-data-schema")
|
357 |
+
),
|
358 |
+
'review_worstRating' => array(
|
359 |
+
'title' => __('Worst rating', "wp-seo-structured-data-schema"),
|
360 |
+
'type' => 'number',
|
361 |
+
'attr' => 'step="any"',
|
362 |
+
'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")
|
363 |
+
)
|
364 |
)
|
365 |
),
|
366 |
'product' => array(
|
387 |
'desc' => __("Product description.", "wp-seo-structured-data-schema")
|
388 |
),
|
389 |
'sku' => array(
|
390 |
+
'title' => __('SKU', "wp-seo-structured-data-schema"),
|
391 |
'type' => 'text',
|
392 |
'recommended' => true
|
393 |
),
|
394 |
'brand' => array(
|
395 |
+
'title' => __('Brand', "wp-seo-structured-data-schema"),
|
396 |
+
'type' => 'text',
|
397 |
'recommended' => true,
|
398 |
+
'desc' => __("The brand of the product.", "wp-seo-structured-data-schema")
|
399 |
),
|
400 |
'identifier_type' => array(
|
401 |
+
'title' => __('Identifier Type', "wp-seo-structured-data-schema"),
|
402 |
+
'type' => 'select',
|
403 |
'recommended' => true,
|
404 |
+
'options' => array(
|
405 |
'mpn' => 'MPN',
|
406 |
'isbn' => 'ISBN',
|
407 |
'gtin8' => 'GTIN-8 (UPC, JAN)',
|
408 |
'gtin12' => 'GTIN-12 (UPC)',
|
409 |
'gtin13' => 'GTIN-13 (EAN,JAN)'
|
410 |
),
|
411 |
+
'desc' => __("<strong>MPN</strong><br>
|
412 |
→ MPN(Manufacturer Part Number) Used globally, Alphanumeric digits (various lengths)<br>
|
413 |
<strong>GTIN</strong><br>
|
414 |
→ UPC(Universal Product Code) Used in primarily North America. 12 numeric digits. eg. 892685001003.<br>
|
417 |
→ JAN(Japanese Article Number) Used only in Japan, 8 or 13 numeric digits.", "wp-seo-structured-data-schema")
|
418 |
),
|
419 |
'identifier' => array(
|
420 |
+
'title' => __('Identifier', "wp-seo-structured-data-schema"),
|
421 |
+
'type' => 'text',
|
422 |
'recommended' => true,
|
423 |
+
'desc' => __("Enter product unique identifier", "wp-seo-structured-data-schema")
|
424 |
+
),
|
425 |
+
'rating_section' => array(
|
426 |
+
'title' => __('Product Review & Rating', "wp-seo-structured-data-schema"),
|
427 |
+
'type' => 'heading',
|
428 |
),
|
429 |
'reviewRatingValue' => array(
|
430 |
'title' => __('Review rating value', "wp-seo-structured-data-schema"),
|
461 |
'attr' => 'step="any"',
|
462 |
'desc' => __("Review rating value. <span class='required'>This is required if (Rating value) is given</span>", "wp-seo-structured-data-schema")
|
463 |
),
|
464 |
+
'pricing_section' => array(
|
465 |
+
'title' => __('Product Pricing', "wp-seo-structured-data-schema"),
|
466 |
+
'type' => 'heading',
|
467 |
+
),
|
468 |
'price' => array(
|
469 |
'title' => __('Price', "wp-seo-structured-data-schema"),
|
470 |
'type' => 'number',
|
661 |
'pro' => false,
|
662 |
'title' => __('Review', "wp-seo-structured-data-schema"),
|
663 |
'fields' => array(
|
664 |
+
'active' => array(
|
665 |
'type' => 'checkbox'
|
666 |
),
|
667 |
+
'review_notice_heading' => array(
|
668 |
+
'title' => sprintf('<span style="display:block;text-align:center;color: red">%s</span>', __('Notice</span>', "wp-seo-structured-data-schema-pro")),
|
669 |
+
'type' => 'heading',
|
670 |
+
'desc' => self::getReviewNotice()
|
671 |
+
),
|
672 |
+
'itemName' => array(
|
673 |
'title' => __('Name of the reviewed item', "wp-seo-structured-data-schema"),
|
674 |
'type' => 'text',
|
675 |
'required' => true,
|
676 |
'desc' => __("The item that is being reviewed.", "wp-seo-structured-data-schema")
|
677 |
),
|
678 |
+
'reviewBody' => array(
|
679 |
'title' => __('Review body', "wp-seo-structured-data-schema"),
|
680 |
'type' => 'textarea',
|
681 |
'required' => true,
|
682 |
'desc' => __("The actual body of the review.", "wp-seo-structured-data-schema")
|
683 |
),
|
684 |
+
'name' => array(
|
685 |
'title' => __('Review name', "wp-seo-structured-data-schema"),
|
686 |
'type' => 'text',
|
687 |
'required' => true,
|
688 |
'desc' => __("A particular name for the review.", "wp-seo-structured-data-schema")
|
689 |
),
|
690 |
+
'author' => array(
|
691 |
'title' => __('Author', "wp-seo-structured-data-schema"),
|
692 |
'type' => 'text',
|
693 |
'required' => true,
|
694 |
'author' => 'Author name',
|
695 |
'desc' => __("The author of the review. The reviewer’s name needs to be a valid name.", "wp-seo-structured-data-schema")
|
696 |
),
|
697 |
+
'datePublished' => array(
|
698 |
'title' => __('Date of Published', "wp-seo-structured-data-schema"),
|
699 |
'type' => 'text',
|
700 |
'class' => 'kcseo-date',
|
701 |
'desc' => __("Like this: 2015-12-25 4:00 PM", "wp-seo-structured-data-schema")
|
702 |
),
|
703 |
+
'ratingValue' => array(
|
704 |
'title' => __('Rating value', "wp-seo-structured-data-schema"),
|
705 |
'type' => 'number',
|
706 |
'attr' => 'step="any"',
|
707 |
'desc' => __("A numerical quality rating for the item.", "wp-seo-structured-data-schema")
|
708 |
),
|
709 |
+
'bestRating' => array(
|
710 |
'title' => __('Best rating', "wp-seo-structured-data-schema"),
|
711 |
'type' => 'number',
|
712 |
'attr' => 'step="any"',
|
713 |
'desc' => __("The highest value allowed in this rating system.", "wp-seo-structured-data-schema")
|
714 |
),
|
715 |
+
'worstRating' => array(
|
716 |
'title' => __('Worst rating', "wp-seo-structured-data-schema"),
|
717 |
'type' => 'number',
|
718 |
'attr' => 'step="any"',
|
719 |
'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")
|
720 |
),
|
721 |
+
'publisher' => array(
|
722 |
'title' => __('Name of the organization', "wp-seo-structured-data-schema"),
|
723 |
'type' => 'text',
|
724 |
'desc' => __('The publisher of the review.', "wp-seo-structured-data-schema")
|
876 |
'pro' => false,
|
877 |
'title' => __('Local Business', "wp-seo-structured-data-schema"),
|
878 |
'fields' => array(
|
879 |
+
'active' => array(
|
880 |
'type' => 'checkbox'
|
881 |
),
|
882 |
+
'name' => array(
|
883 |
'title' => __('Name', "wp-seo-structured-data-schema"),
|
884 |
'type' => 'text',
|
885 |
'required' => true
|
886 |
),
|
887 |
+
'description' => array(
|
888 |
'title' => __('Description', "wp-seo-structured-data-schema"),
|
889 |
'type' => 'textarea',
|
890 |
),
|
891 |
+
'image' => array(
|
892 |
'title' => __('Business Logo', "wp-seo-structured-data-schema"),
|
893 |
'type' => 'image',
|
894 |
'required' => true
|
895 |
),
|
896 |
+
'priceRange' => array(
|
897 |
'title' => __('Price Range', "wp-seo-structured-data-schema"),
|
898 |
'type' => 'text',
|
899 |
'recommended' => true,
|
900 |
'desc' => __("The price range of the business, for example $$$.", "wp-seo-structured-data-schema")
|
901 |
),
|
902 |
+
'addressLocality' => array(
|
903 |
'title' => __('Address locality', "wp-seo-structured-data-schema"),
|
904 |
'type' => 'text',
|
905 |
'desc' => __('City (i.e Kansas city)', "wp-seo-structured-data-schema")
|
906 |
),
|
907 |
+
'addressRegion' => array(
|
908 |
'title' => __('Address region', "wp-seo-structured-data-schema"),
|
909 |
'type' => 'text',
|
910 |
'desc' => __('State (i.e. MO)', "wp-seo-structured-data-schema")
|
911 |
),
|
912 |
+
'postalCode' => array(
|
913 |
'title' => __('Postal code', "wp-seo-structured-data-schema"),
|
914 |
'type' => 'text',
|
915 |
),
|
916 |
+
'streetAddress' => array(
|
917 |
'title' => __('Street address', "wp-seo-structured-data-schema"),
|
918 |
'type' => 'text',
|
919 |
),
|
920 |
+
'telephone' => array(
|
921 |
'title' => __('Telephone', "wp-seo-structured-data-schema"),
|
922 |
'type' => 'text',
|
923 |
'recommended' => true,
|
924 |
+
),
|
925 |
+
'review_section' => array(
|
926 |
+
'title' => __('Review', "wp-seo-structured-data-schema"),
|
927 |
+
'type' => 'heading',
|
928 |
+
'desc' => __("To add review schema for this type, complete fields below and enable, others live blank.", "wp-seo-structured-data-schema")
|
929 |
+
),
|
930 |
+
'review_active' => array(
|
931 |
+
'type' => 'checkbox'
|
932 |
+
),
|
933 |
+
'review_author' => array(
|
934 |
+
'title' => __("Author", "wp-seo-structured-data-schema"),
|
935 |
+
'type' => 'text',
|
936 |
+
'required' => true
|
937 |
+
),
|
938 |
+
'review_author_sameAs' => array(
|
939 |
+
'title' => __("Author Same As profile link", "wp-seo-structured-data-schema"),
|
940 |
+
'type' => 'textarea',
|
941 |
+
'attr' => 'placeholder="https://facebook.com/example https://twitter.com/example"',
|
942 |
+
'required' => true,
|
943 |
+
'desc' => __('A reference page that unambiguously indicates the item\'s identity; for example, the URL of the item\'s Wikipedia page, Freebase page, or official website.<br> Enter new line for every entry', "wp-seo-structured-data-schema")
|
944 |
+
),
|
945 |
+
'review_body' => array(
|
946 |
+
'title' => __('Review body', "wp-seo-structured-data-schema"),
|
947 |
+
'type' => 'textarea',
|
948 |
+
'required' => true,
|
949 |
+
'desc' => __("The actual body of the review.", "wp-seo-structured-data-schema")
|
950 |
+
),
|
951 |
+
'review_datePublished' => array(
|
952 |
+
'title' => __('Date of Published', "wp-seo-structured-data-schema"),
|
953 |
+
'type' => 'text',
|
954 |
+
'class' => 'kcseo-date',
|
955 |
+
'desc' => __("Like this: 2015-12-25 4:00 PM", "wp-seo-structured-data-schema")
|
956 |
+
),
|
957 |
+
'review_ratingValue' => array(
|
958 |
+
'title' => __('Rating value', "wp-seo-structured-data-schema"),
|
959 |
+
'type' => 'number',
|
960 |
+
'attr' => 'step="any"',
|
961 |
+
'desc' => __("A numerical quality rating for the item.", "wp-seo-structured-data-schema")
|
962 |
+
),
|
963 |
+
'review_bestRating' => array(
|
964 |
+
'title' => __('Best rating', "wp-seo-structured-data-schema"),
|
965 |
+
'type' => 'number',
|
966 |
+
'attr' => 'step="any"',
|
967 |
+
'desc' => __("The highest value allowed in this rating system.", "wp-seo-structured-data-schema")
|
968 |
+
),
|
969 |
+
'review_worstRating' => array(
|
970 |
+
'title' => __('Worst rating', "wp-seo-structured-data-schema"),
|
971 |
+
'type' => 'number',
|
972 |
+
'attr' => 'step="any"',
|
973 |
+
'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")
|
974 |
)
|
975 |
)
|
976 |
),
|
1454 |
}
|
1455 |
|
1456 |
static function getLanguageList() {
|
1457 |
+
$language_list = array(
|
1458 |
+
"Akan",
|
1459 |
+
"Amharic",
|
1460 |
+
"Arabic",
|
1461 |
+
"Assamese",
|
1462 |
+
"Awadhi",
|
1463 |
+
"Azerbaijani",
|
1464 |
+
"Balochi",
|
1465 |
+
"Belarusian",
|
1466 |
+
"Bengali",
|
1467 |
+
"Bhojpuri",
|
1468 |
+
"Burmese",
|
1469 |
+
"Cantonese",
|
1470 |
+
"Cebuano",
|
1471 |
+
"Chewa",
|
1472 |
+
"Chhattisgarhi",
|
1473 |
+
"Chittagonian",
|
1474 |
+
"Czech",
|
1475 |
+
"Deccan",
|
1476 |
+
"Dhundhari",
|
1477 |
+
"Dutch",
|
1478 |
+
"English",
|
1479 |
+
"French",
|
1480 |
+
"Fula",
|
1481 |
+
"Gan",
|
1482 |
+
"German",
|
1483 |
+
"Greek",
|
1484 |
+
"Gujarati",
|
1485 |
+
"Haitian Creole",
|
1486 |
+
"Hakka",
|
1487 |
+
"Haryanvi",
|
1488 |
+
"Hausa",
|
1489 |
+
"Hiligaynon",
|
1490 |
+
"Hindi / Urdu",
|
1491 |
+
"Hmong",
|
1492 |
+
"Hungarian",
|
1493 |
+
"Igbo",
|
1494 |
+
"Ilokano",
|
1495 |
+
"Italian",
|
1496 |
+
"Japanese",
|
1497 |
+
"Javanese",
|
1498 |
+
"Jin",
|
1499 |
+
"Kannada",
|
1500 |
+
"Kazakh",
|
1501 |
+
"Khmer",
|
1502 |
+
"Kinyarwanda",
|
1503 |
+
"Kirundi",
|
1504 |
+
"Konkani",
|
1505 |
+
"Korean",
|
1506 |
+
"Kurdish",
|
1507 |
+
"Madurese",
|
1508 |
+
"Magahi",
|
1509 |
+
"Maithili",
|
1510 |
+
"Malagasy",
|
1511 |
+
"Malay/Indonesian",
|
1512 |
+
"Malayalam",
|
1513 |
+
"Mandarin",
|
1514 |
+
"Marathi",
|
1515 |
+
"Marwari",
|
1516 |
+
"Min Bei",
|
1517 |
+
"Min Dong",
|
1518 |
+
"Min Nan",
|
1519 |
+
"Mossi",
|
1520 |
+
"Nepali",
|
1521 |
+
"Oriya",
|
1522 |
+
"Oromo",
|
1523 |
+
"Pashto",
|
1524 |
+
"Persian",
|
1525 |
+
"Polish",
|
1526 |
+
"Portuguese",
|
1527 |
+
"Punjabi",
|
1528 |
+
"Quechua",
|
1529 |
+
"Romanian",
|
1530 |
+
"Russian",
|
1531 |
+
"Saraiki",
|
1532 |
+
"Serbo-Croatian",
|
1533 |
+
"Shona",
|
1534 |
+
"Sindhi",
|
1535 |
+
"Sinhalese",
|
1536 |
+
"Somali",
|
1537 |
+
"Spanish",
|
1538 |
+
"Sundanese",
|
1539 |
+
"Swahili",
|
1540 |
+
"Swedish",
|
1541 |
+
"Sylheti",
|
1542 |
+
"Tagalog",
|
1543 |
+
"Tamil",
|
1544 |
+
"Telugu",
|
1545 |
+
"Thai",
|
1546 |
+
"Turkish",
|
1547 |
+
"Ukrainian",
|
1548 |
+
"Uyghur",
|
1549 |
+
"Uzbek",
|
1550 |
+
"Vietnamese",
|
1551 |
+
"Wu",
|
1552 |
+
"Xhosa",
|
1553 |
+
"Xiang",
|
1554 |
+
"Yoruba",
|
1555 |
+
"Zulu",
|
1556 |
+
);
|
1557 |
|
1558 |
+
return apply_filters('kcseo_language_list', $language_list);
|
1559 |
}
|
1560 |
|
1561 |
static function getSocialList() {
|
1576 |
return apply_filters('kcseo_social_list', $socialList);
|
1577 |
}
|
1578 |
|
1579 |
+
static function getReviewNotice() {
|
1580 |
+
$html = null;
|
1581 |
+
$html = '<span>As of September, Google made a major change to review snippet schema and structure data markup. Google no longer support "self-serving" independent markup tied to the general types and has narrow support to specific types.</span><br><br>
|
1582 |
+
<span>You can read more about Google\'s change here:<br><a target="_blank" href="https://webmasters.googleblog.com/2019/09/making-review-rich-results-more-helpful.html">https://webmasters.googleblog.com/2019/09/making-review-rich-results-more-helpful.html</a></span><br><br>
|
1583 |
+
<span style="font-weight: bold">If you are a user of our plugin prior to September 2019, you need to remove the review schema for this tab on all pages and post where you\'ve it for reviews and add back to the supported types (such as: book, course, event, movie, product, recipe, etc):</span><br><br>
|
1584 |
+
<span style="display: block;margin: 0 auto;max-width: 800px;">1. Simple uncheck the "enable" tab in this section<br>
|
1585 |
+
2. Update the page or post to remove the review schema.<br>
|
1586 |
+
3. Then re-add new review schema within the appropriet type tab(i.e. book, course, event, movie, product, recipe, etc)</span>
|
1587 |
+
<br>To review Google\'s documentation on <a target="_blank" href="https://developers.google.com/search/docs/data-types/review-snippet">https://developers.google.com/search/docs/data-types/review-snippet</a>';
|
1588 |
+
|
1589 |
+
return $html;
|
1590 |
+
}
|
1591 |
+
|
1592 |
}
|
lib/init.php
CHANGED
@@ -6,6 +6,23 @@ if ( ! class_exists( 'KcSeoWPSchema' ) ) {
|
|
6 |
public $options;
|
7 |
public $KcSeoPrefix;
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
function __construct() {
|
10 |
$this->KcSeoPrefix = "_schema_";
|
11 |
$this->options = array(
|
@@ -86,9 +103,6 @@ if ( ! class_exists( 'KcSeoWPSchema' ) ) {
|
|
86 |
if ( $pageReturn AND $pageReturn <> 1 ) {
|
87 |
return $pageReturn;
|
88 |
}
|
89 |
-
if ( @$html ) {
|
90 |
-
return $html;
|
91 |
-
}
|
92 |
}
|
93 |
|
94 |
/**
|
@@ -124,6 +138,10 @@ if ( ! class_exists( 'KcSeoWPSchema' ) ) {
|
|
124 |
|
125 |
global $KcSeoWPSchema;
|
126 |
if ( ! is_object( $KcSeoWPSchema ) ) {
|
127 |
-
$KcSeoWPSchema =
|
128 |
}
|
129 |
}
|
|
|
|
|
|
|
|
6 |
public $options;
|
7 |
public $KcSeoPrefix;
|
8 |
|
9 |
+
/**
|
10 |
+
* Store the singleton object.
|
11 |
+
*/
|
12 |
+
private static $singleton = false;
|
13 |
+
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Fetch an instance of the class.
|
17 |
+
*/
|
18 |
+
public static function getInstance() {
|
19 |
+
if ( self::$singleton === false ) {
|
20 |
+
self::$singleton = new self();
|
21 |
+
}
|
22 |
+
|
23 |
+
return self::$singleton;
|
24 |
+
}
|
25 |
+
|
26 |
function __construct() {
|
27 |
$this->KcSeoPrefix = "_schema_";
|
28 |
$this->options = array(
|
103 |
if ( $pageReturn AND $pageReturn <> 1 ) {
|
104 |
return $pageReturn;
|
105 |
}
|
|
|
|
|
|
|
106 |
}
|
107 |
|
108 |
/**
|
138 |
|
139 |
global $KcSeoWPSchema;
|
140 |
if ( ! is_object( $KcSeoWPSchema ) ) {
|
141 |
+
$KcSeoWPSchema = kcseo();
|
142 |
}
|
143 |
}
|
144 |
+
|
145 |
+
function kcseo() {
|
146 |
+
return KcseoWPSchema::getInstance();
|
147 |
+
}
|
lib/models/KcSeoSchemaModel.php
CHANGED
@@ -1,745 +1,857 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
if (
|
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 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
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 |
-
|
718 |
-
|
719 |
-
|
720 |
-
|
721 |
-
|
722 |
-
|
723 |
-
|
724 |
-
|
725 |
-
|
726 |
-
|
727 |
-
|
728 |
-
|
729 |
-
|
730 |
-
|
731 |
-
|
732 |
-
|
733 |
-
|
734 |
-
|
735 |
-
|
736 |
-
|
737 |
-
|
738 |
-
|
739 |
-
|
740 |
-
|
741 |
-
|
742 |
-
|
743 |
-
|
744 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
745 |
endif;
|
1 |
<?php
|
2 |
|
3 |
+
if (!class_exists('KcSeoSchemaModel')):
|
4 |
+
class KcSeoSchemaModel
|
5 |
+
{
|
6 |
+
|
7 |
+
function __construct() {
|
8 |
+
|
9 |
+
}
|
10 |
+
|
11 |
+
function schemaOutput($schemaID, $metaData) {
|
12 |
+
$html = null;
|
13 |
+
|
14 |
+
if ($schemaID) {
|
15 |
+
global $KcSeoWPSchema;
|
16 |
+
switch ($schemaID) {
|
17 |
+
case "article":
|
18 |
+
$article = array(
|
19 |
+
"@context" => "http://schema.org",
|
20 |
+
"@type" => "Article"
|
21 |
+
);
|
22 |
+
if (!empty($metaData['headline'])) {
|
23 |
+
$article["headline"] = $KcSeoWPSchema->sanitizeOutPut($metaData['headline']);
|
24 |
+
}
|
25 |
+
if (!empty($metaData['mainEntityOfPage'])) {
|
26 |
+
$article["mainEntityOfPage"] = array(
|
27 |
+
"@type" => "WebPage",
|
28 |
+
"@id" => $KcSeoWPSchema->sanitizeOutPut($metaData["mainEntityOfPage"])
|
29 |
+
);
|
30 |
+
}
|
31 |
+
if (!empty($metaData['author'])) {
|
32 |
+
$article["author"] = array(
|
33 |
+
"@type" => "Person",
|
34 |
+
"name" => $KcSeoWPSchema->sanitizeOutPut($metaData['author'])
|
35 |
+
);
|
36 |
+
}
|
37 |
+
if (!empty($metaData['publisher'])) {
|
38 |
+
if (!empty($metaData['publisherImage'])) {
|
39 |
+
$img = $KcSeoWPSchema->imageInfo(absint($metaData['publisherImage']));
|
40 |
+
$plA = array(
|
41 |
+
"@type" => "ImageObject",
|
42 |
+
"url" => $KcSeoWPSchema->sanitizeOutPut($img['url'], 'url'),
|
43 |
+
"height" => $img['height'],
|
44 |
+
"width" => $img['width']
|
45 |
+
);
|
46 |
+
} else {
|
47 |
+
$plA = array();
|
48 |
+
}
|
49 |
+
$article["publisher"] = array(
|
50 |
+
"@type" => "Organization",
|
51 |
+
"name" => $KcSeoWPSchema->sanitizeOutPut($metaData['publisher']),
|
52 |
+
"logo" => $plA
|
53 |
+
);
|
54 |
+
}
|
55 |
+
if (!empty($metaData['alternativeHeadline'])) {
|
56 |
+
$article["alternativeHeadline"] = $KcSeoWPSchema->sanitizeOutPut($metaData['alternativeHeadline']);
|
57 |
+
}
|
58 |
+
if (!empty($metaData['image'])) {
|
59 |
+
$img = $KcSeoWPSchema->imageInfo(absint($metaData['image']));
|
60 |
+
$article["image"] = array(
|
61 |
+
"@type" => "ImageObject",
|
62 |
+
"url" => $KcSeoWPSchema->sanitizeOutPut($img['url'], 'url'),
|
63 |
+
"height" => $img['height'],
|
64 |
+
"width" => $img['width']
|
65 |
+
);
|
66 |
+
}
|
67 |
+
if (!empty($metaData['datePublished'])) {
|
68 |
+
$article["datePublished"] = $KcSeoWPSchema->sanitizeOutPut($metaData['datePublished']);
|
69 |
+
}
|
70 |
+
if (!empty($metaData['dateModified'])) {
|
71 |
+
$article["dateModified"] = $KcSeoWPSchema->sanitizeOutPut($metaData['dateModified']);
|
72 |
+
}
|
73 |
+
if (!empty($metaData['description'])) {
|
74 |
+
$article["description"] = $KcSeoWPSchema->sanitizeOutPut($metaData['description'],
|
75 |
+
'textarea');
|
76 |
+
}
|
77 |
+
if (!empty($metaData['articleBody'])) {
|
78 |
+
$article["articleBody"] = $KcSeoWPSchema->sanitizeOutPut($metaData['articleBody'],
|
79 |
+
'textarea');
|
80 |
+
}
|
81 |
+
$html .= $this->get_jsonEncode(apply_filters('kcseo_snippet_article', $article, $metaData));
|
82 |
+
break;
|
83 |
+
|
84 |
+
case "news_article":
|
85 |
+
$newsArticle = array(
|
86 |
+
"@context" => "http://schema.org",
|
87 |
+
"@type" => "NewsArticle"
|
88 |
+
);
|
89 |
+
if (!empty($metaData['headline'])) {
|
90 |
+
$newsArticle["headline"] = $KcSeoWPSchema->sanitizeOutPut($metaData['headline']);
|
91 |
+
}
|
92 |
+
if (!empty($metaData['mainEntityOfPage'])) {
|
93 |
+
$newsArticle["mainEntityOfPage"] = array(
|
94 |
+
"@type" => "WebPage",
|
95 |
+
"@id" => $KcSeoWPSchema->sanitizeOutPut($metaData["mainEntityOfPage"])
|
96 |
+
);
|
97 |
+
}
|
98 |
+
if (!empty($metaData['author'])) {
|
99 |
+
$newsArticle["author"] = array(
|
100 |
+
"@type" => "Person",
|
101 |
+
"name" => $KcSeoWPSchema->sanitizeOutPut($metaData['author'])
|
102 |
+
);
|
103 |
+
}
|
104 |
+
if (!empty($metaData['image'])) {
|
105 |
+
$img = $KcSeoWPSchema->imageInfo(absint($metaData['image']));
|
106 |
+
$newsArticle["image"] = array(
|
107 |
+
"@type" => "ImageObject",
|
108 |
+
"url" => $KcSeoWPSchema->sanitizeOutPut($img['url'], 'url'),
|
109 |
+
"height" => $img['height'],
|
110 |
+
"width" => $img['width']
|
111 |
+
);
|
112 |
+
}
|
113 |
+
if (!empty($metaData['datePublished'])) {
|
114 |
+
$newsArticle["datePublished"] = $KcSeoWPSchema->sanitizeOutPut($metaData['datePublished']);
|
115 |
+
}
|
116 |
+
if (!empty($metaData['dateModified'])) {
|
117 |
+
$newsArticle["dateModified"] = $KcSeoWPSchema->sanitizeOutPut($metaData['dateModified']);
|
118 |
+
}
|
119 |
+
if (!empty($metaData['publisher'])) {
|
120 |
+
if (!empty($metaData['publisherImage'])) {
|
121 |
+
$img = $KcSeoWPSchema->imageInfo(absint($metaData['publisherImage']));
|
122 |
+
$plA = array(
|
123 |
+
"@type" => "ImageObject",
|
124 |
+
"url" => $KcSeoWPSchema->sanitizeOutPut($img['url'], 'url'),
|
125 |
+
"height" => $img['height'],
|
126 |
+
"width" => $img['width']
|
127 |
+
);
|
128 |
+
} else {
|
129 |
+
$plA = array();
|
130 |
+
}
|
131 |
+
$newsArticle["publisher"] = array(
|
132 |
+
"@type" => "Organization",
|
133 |
+
"name" => $KcSeoWPSchema->sanitizeOutPut($metaData['publisher']),
|
134 |
+
"logo" => $plA
|
135 |
+
);
|
136 |
+
}
|
137 |
+
if (!empty($metaData['description'])) {
|
138 |
+
$newsArticle["description"] = $KcSeoWPSchema->sanitizeOutPut($metaData['description'],
|
139 |
+
'textarea');
|
140 |
+
}
|
141 |
+
if (!empty($metaData['articleBody'])) {
|
142 |
+
$newsArticle["articleBody"] = $KcSeoWPSchema->sanitizeOutPut($metaData['articleBody'],
|
143 |
+
'textarea');
|
144 |
+
}
|
145 |
+
$html .= $this->get_jsonEncode(apply_filters('kcseo_snippet_news_article', $newsArticle, $metaData));
|
146 |
+
break;
|
147 |
+
|
148 |
+
case "blog_posting":
|
149 |
+
$blogPosting = array(
|
150 |
+
"@context" => "http://schema.org",
|
151 |
+
"@type" => "BlogPosting"
|
152 |
+
);
|
153 |
+
if (!empty($metaData['headline'])) {
|
154 |
+
$blogPosting["headline"] = $KcSeoWPSchema->sanitizeOutPut($metaData['headline']);
|
155 |
+
}
|
156 |
+
if (!empty($metaData['mainEntityOfPage'])) {
|
157 |
+
$blogPosting["mainEntityOfPage"] = array(
|
158 |
+
"@type" => "WebPage",
|
159 |
+
"@id" => $KcSeoWPSchema->sanitizeOutPut($metaData["mainEntityOfPage"])
|
160 |
+
);
|
161 |
+
}
|
162 |
+
if (!empty($metaData['author'])) {
|
163 |
+
$blogPosting["author"] = array(
|
164 |
+
"@type" => "Person",
|
165 |
+
"name" => $KcSeoWPSchema->sanitizeOutPut($metaData['author'])
|
166 |
+
);
|
167 |
+
}
|
168 |
+
if (!empty($metaData['image'])) {
|
169 |
+
$img = $KcSeoWPSchema->imageInfo(absint($metaData['image']));
|
170 |
+
$blogPosting["image"] = array(
|
171 |
+
"@type" => "ImageObject",
|
172 |
+
"url" => $KcSeoWPSchema->sanitizeOutPut($img['url'], 'url'),
|
173 |
+
"height" => $img['height'],
|
174 |
+
"width" => $img['width']
|
175 |
+
);
|
176 |
+
}
|
177 |
+
if (!empty($metaData['datePublished'])) {
|
178 |
+
$blogPosting["datePublished"] = $KcSeoWPSchema->sanitizeOutPut($metaData['datePublished']);
|
179 |
+
}
|
180 |
+
if (!empty($metaData['dateModified'])) {
|
181 |
+
$blogPosting["dateModified"] = $KcSeoWPSchema->sanitizeOutPut($metaData['dateModified']);
|
182 |
+
}
|
183 |
+
if (!empty($metaData['publisher'])) {
|
184 |
+
if (!empty($metaData['publisherImage'])) {
|
185 |
+
$img = $KcSeoWPSchema->imageInfo(absint($metaData['publisherImage']));
|
186 |
+
$plA = array(
|
187 |
+
"@type" => "ImageObject",
|
188 |
+
"url" => $KcSeoWPSchema->sanitizeOutPut($img['url'], 'url'),
|
189 |
+
"height" => $img['height'],
|
190 |
+
"width" => $img['width']
|
191 |
+
);
|
192 |
+
} else {
|
193 |
+
$plA = array();
|
194 |
+
}
|
195 |
+
$blogPosting["publisher"] = array(
|
196 |
+
"@type" => "Organization",
|
197 |
+
"name" => $KcSeoWPSchema->sanitizeOutPut($metaData['publisher']),
|
198 |
+
"logo" => $plA
|
199 |
+
);
|
200 |
+
}
|
201 |
+
if (!empty($metaData['description'])) {
|
202 |
+
$blogPosting["description"] = $KcSeoWPSchema->sanitizeOutPut($metaData['description'],
|
203 |
+
'textarea');
|
204 |
+
}
|
205 |
+
if (!empty($metaData['articleBody'])) {
|
206 |
+
$blogPosting["articleBody"] = $KcSeoWPSchema->sanitizeOutPut($metaData['articleBody'],
|
207 |
+
'textarea');
|
208 |
+
}
|
209 |
+
$html .= $this->get_jsonEncode(apply_filters('kcseo_snippet_blog_posting', $blogPosting, $metaData));
|
210 |
+
break;
|
211 |
+
|
212 |
+
case 'event':
|
213 |
+
$event = array(
|
214 |
+
"@context" => "http://schema.org",
|
215 |
+
"@type" => "Event"
|
216 |
+
);
|
217 |
+
if (!empty($metaData['name'])) {
|
218 |
+
$event["name"] = $KcSeoWPSchema->sanitizeOutPut($metaData['name']);
|
219 |
+
}
|
220 |
+
if (!empty($metaData['startDate'])) {
|
221 |
+
$event["startDate"] = $KcSeoWPSchema->sanitizeOutPut($metaData['startDate']);
|
222 |
+
}
|
223 |
+
if (!empty($metaData['endDate'])) {
|
224 |
+
$event["endDate"] = $KcSeoWPSchema->sanitizeOutPut($metaData['endDate']);
|
225 |
+
}
|
226 |
+
if (!empty($metaData['description'])) {
|
227 |
+
$event["description"] = $KcSeoWPSchema->sanitizeOutPut($metaData['description'],
|
228 |
+
'textarea');
|
229 |
+
}
|
230 |
+
if (!empty($metaData['performerName'])) {
|
231 |
+
$event["performer"] = array(
|
232 |
+
"@type" => "Person",
|
233 |
+
"name" => $KcSeoWPSchema->sanitizeOutPut($metaData['performerName'])
|
234 |
+
);
|
235 |
+
}
|
236 |
+
if (!empty($metaData['image'])) {
|
237 |
+
$event["image"] = $KcSeoWPSchema->sanitizeOutPut($metaData['image'], 'url');
|
238 |
+
}
|
239 |
+
if (!empty($metaData['locationName'])) {
|
240 |
+
$event["location"] = array(
|
241 |
+
"@type" => "Place",
|
242 |
+
"name" => $KcSeoWPSchema->sanitizeOutPut($metaData['locationName']),
|
243 |
+
"address" => $KcSeoWPSchema->sanitizeOutPut($metaData['locationAddress'])
|
244 |
+
);
|
245 |
+
}
|
246 |
+
if (!empty($metaData['price'])) {
|
247 |
+
$event["offers"] = array(
|
248 |
+
"@type" => "Offer",
|
249 |
+
"price" => $KcSeoWPSchema->sanitizeOutPut($metaData['price'])
|
250 |
+
);
|
251 |
+
if (!empty($metaData['priceCurrency'])) {
|
252 |
+
$event["offers"]['priceCurrency'] = $KcSeoWPSchema->sanitizeOutPut($metaData['priceCurrency']);
|
253 |
+
}
|
254 |
+
if (!empty($metaData['url'])) {
|
255 |
+
$event["offers"]['url'] = $KcSeoWPSchema->sanitizeOutPut($metaData['url'], 'url');
|
256 |
+
}
|
257 |
+
if (!empty($metaData['availability'])) {
|
258 |
+
$event["offers"]['availability'] = $KcSeoWPSchema->sanitizeOutPut($metaData['availability']);
|
259 |
+
}
|
260 |
+
if (!empty($metaData['validFrom'])) {
|
261 |
+
$event["offers"]['validFrom'] = $KcSeoWPSchema->sanitizeOutPut($metaData['validFrom']);
|
262 |
+
}
|
263 |
+
}
|
264 |
+
if (!empty($metaData['url'])) {
|
265 |
+
$event["url"] = $KcSeoWPSchema->sanitizeOutPut($metaData['url'], 'url');
|
266 |
+
}
|
267 |
+
$html .= $this->get_jsonEncode(apply_filters('kcseo_snippet_event', $event, $metaData));
|
268 |
+
if (isset($metaData['review_active'])) {
|
269 |
+
$event_review = array(
|
270 |
+
"@context" => "http://schema.org",
|
271 |
+
"@type" => "Review"
|
272 |
+
);
|
273 |
+
|
274 |
+
if (isset($metaData['review_datePublished']) && !empty($metaData['review_datePublished'])) {
|
275 |
+
$event_review["datePublished"] = $KcSeoWPSchema->sanitizeOutPut($metaData['review_datePublished']);
|
276 |
+
}
|
277 |
+
if (isset($metaData['review_body']) && !empty($metaData['review_body'])) {
|
278 |
+
$event_review["reviewBody"] = $KcSeoWPSchema->sanitizeOutPut($metaData['review_body'], 'textarea');
|
279 |
+
}
|
280 |
+
unset($event['@context']);
|
281 |
+
$event_review["itemReviewed"] = $event;
|
282 |
+
if (!empty($metaData['review_author'])) {
|
283 |
+
$event_review["author"] = array(
|
284 |
+
"@type" => "Person",
|
285 |
+
"name" => $KcSeoWPSchema->sanitizeOutPut($metaData['review_author'])
|
286 |
+
);
|
287 |
+
|
288 |
+
if (isset($metaData['review_author_sameAs']) && !empty($metaData['review_author_sameAs'])) {
|
289 |
+
$sameAs = KcSeoHelper::get_same_as($KcSeoWPSchema->sanitizeOutPut($metaData['review_author_sameAs'], "textarea"));
|
290 |
+
if (!empty($sameAs)) {
|
291 |
+
$event_review["author"]["sameAs"] = $sameAs;
|
292 |
+
}
|
293 |
+
}
|
294 |
+
}
|
295 |
+
if (isset($metaData['review_ratingValue'])) {
|
296 |
+
$event_review["reviewRating"] = array(
|
297 |
+
"@type" => "Rating",
|
298 |
+
"ratingValue" => $KcSeoWPSchema->sanitizeOutPut($metaData['review_ratingValue'], 'number')
|
299 |
+
);
|
300 |
+
if (isset($metaData['review_bestRating'])) {
|
301 |
+
$event_review["reviewRating"]["bestRating"] = $KcSeoWPSchema->sanitizeOutPut($metaData['review_bestRating'], 'number');
|
302 |
+
}
|
303 |
+
if (isset($metaData['review_worstRating'])) {
|
304 |
+
$event_review["reviewRating"]["worstRating"] = $KcSeoWPSchema->sanitizeOutPut($metaData['review_worstRating'], 'number');
|
305 |
+
}
|
306 |
+
}
|
307 |
+
|
308 |
+
|
309 |
+
$html .= $this->get_jsonEncode(apply_filters('kcseo_snippet_event_review', $event_review, $metaData));
|
310 |
+
}
|
311 |
+
break;
|
312 |
+
|
313 |
+
case 'product':
|
314 |
+
$product = array(
|
315 |
+
"@context" => "http://schema.org",
|
316 |
+
"@type" => "Product"
|
317 |
+
);
|
318 |
+
if (!empty($metaData['name'])) {
|
319 |
+
$product["name"] = $KcSeoWPSchema->sanitizeOutPut($metaData['name']);
|
320 |
+
}
|
321 |
+
if (!empty($metaData['image'])) {
|
322 |
+
$img = $KcSeoWPSchema->imageInfo(absint($metaData['image']));
|
323 |
+
$product["image"] = $KcSeoWPSchema->sanitizeOutPut($img['url'], 'url');
|
324 |
+
}
|
325 |
+
if (!empty($metaData['description'])) {
|
326 |
+
$product["description"] = $KcSeoWPSchema->sanitizeOutPut($metaData['description']);
|
327 |
+
}
|
328 |
+
/* product identifier */
|
329 |
+
if (!empty($metaData['sku'])) {
|
330 |
+
$product["sku"] = $KcSeoWPSchema->sanitizeOutPut($metaData['sku']);
|
331 |
+
}
|
332 |
+
if (!empty($metaData['brand'])) {
|
333 |
+
$product["brand"] = $KcSeoWPSchema->sanitizeOutPut($metaData['brand']);
|
334 |
+
}
|
335 |
+
if (!empty($metaData['identifier_type']) && !empty($metaData['identifier'])) {
|
336 |
+
$product[$metaData['identifier_type']] = $KcSeoWPSchema->sanitizeOutPut($metaData['identifier']);
|
337 |
+
}
|
338 |
+
if (!empty($metaData['ratingValue'])) {
|
339 |
+
$product["aggregateRating"] = array(
|
340 |
+
"@type" => "AggregateRating",
|
341 |
+
"ratingValue" => !empty($metaData['ratingValue']) ? $KcSeoWPSchema->sanitizeOutPut($metaData['ratingValue']) : null,
|
342 |
+
"reviewCount" => !empty($metaData['reviewCount']) ? $KcSeoWPSchema->sanitizeOutPut($metaData['reviewCount']) : null
|
343 |
+
);
|
344 |
+
}
|
345 |
+
if (!empty($metaData['reviewRatingValue']) || !empty($metaData['reviewBestRating']) || !empty($metaData['reviewWorstRating'])) {
|
346 |
+
$product["review"] = array(
|
347 |
+
"@type" => "Review",
|
348 |
+
"reviewRating" => array(
|
349 |
+
"@type" => "Rating",
|
350 |
+
"ratingValue" => !empty($metaData['reviewRatingValue']) ? $KcSeoWPSchema->sanitizeOutPut($metaData['reviewRatingValue']) : null,
|
351 |
+
"bestRating" => !empty($metaData['reviewBestRating']) ? $KcSeoWPSchema->sanitizeOutPut($metaData['reviewBestRating']) : null,
|
352 |
+
"worstRating" => !empty($metaData['reviewWorstRating']) ? $KcSeoWPSchema->sanitizeOutPut($metaData['reviewWorstRating']) : null
|
353 |
+
),
|
354 |
+
"author" => array(
|
355 |
+
"@type" => "Person",
|
356 |
+
"name" => !empty($metaData['reviewAuthor']) ? $KcSeoWPSchema->sanitizeOutPut($metaData['reviewAuthor']) : null
|
357 |
+
)
|
358 |
+
);
|
359 |
+
}
|
360 |
+
if (!empty($metaData['price'])) {
|
361 |
+
$product["offers"] = array(
|
362 |
+
"@type" => "Offer",
|
363 |
+
"price" => $KcSeoWPSchema->sanitizeOutPut($metaData['price']),
|
364 |
+
"priceValidUntil" => $KcSeoWPSchema->sanitizeOutPut($metaData['priceValidUntil']),
|
365 |
+
"priceCurrency" => !empty($metaData['priceCurrency']) ? $KcSeoWPSchema->sanitizeOutPut($metaData['priceCurrency']) : null,
|
366 |
+
"itemCondition" => !empty($metaData['itemCondition']) ? $KcSeoWPSchema->sanitizeOutPut($metaData['itemCondition']) : null,
|
367 |
+
"availability" => !empty($metaData['availability']) ? $KcSeoWPSchema->sanitizeOutPut($metaData['availability']) : null,
|
368 |
+
"url" => !empty($metaData['url']) ? $KcSeoWPSchema->sanitizeOutPut($metaData['url']) : null
|
369 |
+
);
|
370 |
+
}
|
371 |
+
$html .= $this->get_jsonEncode(apply_filters('kcseo_snippet_product', $product, $metaData));
|
372 |
+
break;
|
373 |
+
|
374 |
+
case 'video':
|
375 |
+
$video = array(
|
376 |
+
"@context" => "http://schema.org",
|
377 |
+
"@type" => "VideoObject"
|
378 |
+
);
|
379 |
+
if (!empty($metaData['name'])) {
|
380 |
+
$video["name"] = $KcSeoWPSchema->sanitizeOutPut($metaData['name']);
|
381 |
+
}
|
382 |
+
if (!empty($metaData['description'])) {
|
383 |
+
$video["description"] = $KcSeoWPSchema->sanitizeOutPut($metaData['description'],
|
384 |
+
'textarea');
|
385 |
+
}
|
386 |
+
if (!empty($metaData['description'])) {
|
387 |
+
$video["description"] = $KcSeoWPSchema->sanitizeOutPut($metaData['description']);
|
388 |
+
}
|
389 |
+
if (!empty($metaData['thumbnailUrl'])) {
|
390 |
+
$video["thumbnailUrl"] = $KcSeoWPSchema->sanitizeOutPut($metaData['thumbnailUrl'], 'url');
|
391 |
+
}
|
392 |
+
if (!empty($metaData['uploadDate'])) {
|
393 |
+
$video["uploadDate"] = $KcSeoWPSchema->sanitizeOutPut($metaData['uploadDate']);
|
394 |
+
}
|
395 |
+
if (!empty($metaData['duration'])) {
|
396 |
+
$video["duration"] = $KcSeoWPSchema->sanitizeOutPut($metaData['duration']);
|
397 |
+
}
|
398 |
+
if (!empty($metaData['contentUrl'])) {
|
399 |
+
$video["contentUrl"] = $KcSeoWPSchema->sanitizeOutPut($metaData['contentUrl'], 'url');
|
400 |
+
}
|
401 |
+
if (!empty($metaData['interactionCount'])) {
|
402 |
+
$video["interactionCount"] = $KcSeoWPSchema->sanitizeOutPut($metaData['interactionCount']);
|
403 |
+
}
|
404 |
+
if (!empty($metaData['expires'])) {
|
405 |
+
$video["expires"] = $KcSeoWPSchema->sanitizeOutPut($metaData['expires']);
|
406 |
+
}
|
407 |
+
$html .= $this->get_jsonEncode(apply_filters('kcseo_snippet_video', $video, $metaData));
|
408 |
+
break;
|
409 |
+
|
410 |
+
case 'service':
|
411 |
+
$service = array(
|
412 |
+
"@context" => "http://schema.org",
|
413 |
+
"@type" => "Service"
|
414 |
+
);
|
415 |
+
if (!empty($metaData['name'])) {
|
416 |
+
$service["name"] = $KcSeoWPSchema->sanitizeOutPut($metaData['name']);
|
417 |
+
}
|
418 |
+
if (!empty($metaData['serviceType'])) {
|
419 |
+
$service["serviceType"] = $KcSeoWPSchema->sanitizeOutPut($metaData['serviceType']);
|
420 |
+
}
|
421 |
+
if (!empty($metaData['award'])) {
|
422 |
+
$service["award"] = $KcSeoWPSchema->sanitizeOutPut($metaData['award']);
|
423 |
+
}
|
424 |
+
if (!empty($metaData['category'])) {
|
425 |
+
$service["category"] = $KcSeoWPSchema->sanitizeOutPut($metaData['category']);
|
426 |
+
}
|
427 |
+
if (!empty($metaData['providerMobility'])) {
|
428 |
+
$service["providerMobility"] = $KcSeoWPSchema->sanitizeOutPut($metaData['providerMobility']);
|
429 |
+
}
|
430 |
+
if (!empty($metaData['additionalType'])) {
|
431 |
+
$service["additionalType"] = $KcSeoWPSchema->sanitizeOutPut($metaData['additionalType']);
|
432 |
+
}
|
433 |
+
if (!empty($metaData['alternateName'])) {
|
434 |
+
$service["alternateName"] = $KcSeoWPSchema->sanitizeOutPut($metaData['alternateName']);
|
435 |
+
}
|
436 |
+
if (!empty($metaData['image'])) {
|
437 |
+
$service["image"] = $KcSeoWPSchema->sanitizeOutPut($metaData['image']);
|
438 |
+
}
|
439 |
+
if (!empty($metaData['mainEntityOfPage'])) {
|
440 |
+
$service["mainEntityOfPage"] = $KcSeoWPSchema->sanitizeOutPut($metaData['mainEntityOfPage']);
|
441 |
+
}
|
442 |
+
if (!empty($metaData['sameAs'])) {
|
443 |
+
$service["sameAs"] = $KcSeoWPSchema->sanitizeOutPut($metaData['sameAs']);
|
444 |
+
}
|
445 |
+
if (!empty($metaData['url'])) {
|
446 |
+
$service["url"] = $KcSeoWPSchema->sanitizeOutPut($metaData['url'], 'url');
|
447 |
+
}
|
448 |
+
$html .= $this->get_jsonEncode(apply_filters('kcseo_snippet_service', $service, $metaData));
|
449 |
+
break;
|
450 |
+
|
451 |
+
case 'review':
|
452 |
+
$review = array(
|
453 |
+
"@context" => "http://schema.org",
|
454 |
+
"@type" => "Review"
|
455 |
+
);
|
456 |
+
if (!empty($metaData['itemName'])) {
|
457 |
+
$review["itemReviewed"] = array(
|
458 |
+
"@type" => "product",
|
459 |
+
"name" => $KcSeoWPSchema->sanitizeOutPut($metaData['itemName'])
|
460 |
+
);
|
461 |
+
}
|
462 |
+
if (!empty($metaData['ratingValue'])) {
|
463 |
+
$review["reviewRating"] = array(
|
464 |
+
"@type" => "Rating",
|
465 |
+
"ratingValue" => $KcSeoWPSchema->sanitizeOutPut($metaData['ratingValue']),
|
466 |
+
"bestRating" => $KcSeoWPSchema->sanitizeOutPut($metaData['bestRating']),
|
467 |
+
"worstRating" => $KcSeoWPSchema->sanitizeOutPut($metaData['worstRating'])
|
468 |
+
);
|
469 |
+
}
|
470 |
+
if (!empty($metaData['name'])) {
|
471 |
+
$review["name"] = $KcSeoWPSchema->sanitizeOutPut($metaData['name']);
|
472 |
+
}
|
473 |
+
if (!empty($metaData['author'])) {
|
474 |
+
$review["author"] = array(
|
475 |
+
"@type" => "Person",
|
476 |
+
"name" => $KcSeoWPSchema->sanitizeOutPut($metaData['author'])
|
477 |
+
);
|
478 |
+
}
|
479 |
+
if (!empty($metaData['reviewBody'])) {
|
480 |
+
$review["reviewBody"] = $KcSeoWPSchema->sanitizeOutPut($metaData['reviewBody']);
|
481 |
+
}
|
482 |
+
if (!empty($metaData['datePublished'])) {
|
483 |
+
$review["datePublished"] = $KcSeoWPSchema->sanitizeOutPut($metaData['datePublished']);
|
484 |
+
}
|
485 |
+
if (!empty($metaData['publisher'])) {
|
486 |
+
$review["publisher"] = array(
|
487 |
+
"@type" => "Organization",
|
488 |
+
"name" => $KcSeoWPSchema->sanitizeOutPut($metaData['publisher'])
|
489 |
+
);
|
490 |
+
}
|
491 |
+
$html .= $this->get_jsonEncode(apply_filters('kcseo_snippet_review', $review, $metaData));
|
492 |
+
break;
|
493 |
+
case 'aggregate_rating':
|
494 |
+
$aRating = array(
|
495 |
+
"@context" => "http://schema.org",
|
496 |
+
"@type" => !empty($metaData['schema_type']) ? $metaData['schema_type'] : "LocalBusiness"
|
497 |
+
);
|
498 |
+
if (!empty($metaData['name'])) {
|
499 |
+
$aRating["name"] = $KcSeoWPSchema->sanitizeOutPut($metaData['name']);
|
500 |
+
}
|
501 |
+
if (!empty($metaData['description'])) {
|
502 |
+
$aRating["description"] = $KcSeoWPSchema->sanitizeOutPut($metaData['description'],
|
503 |
+
'textarea');
|
504 |
+
}
|
505 |
+
if ($aRating["@type"] != "Organization") {
|
506 |
+
if (!empty($metaData['image'])) {
|
507 |
+
$img = $KcSeoWPSchema->imageInfo(absint($metaData['image']));
|
508 |
+
$aRating["image"] = array(
|
509 |
+
"@type" => "ImageObject",
|
510 |
+
"url" => $KcSeoWPSchema->sanitizeOutPut($img['url'], 'url'),
|
511 |
+
"height" => $img['height'],
|
512 |
+
"width" => $img['width']
|
513 |
+
);
|
514 |
+
}
|
515 |
+
if (!empty($metaData['priceRange'])) {
|
516 |
+
$aRating["priceRange"] = $KcSeoWPSchema->sanitizeOutPut($metaData['priceRange']);
|
517 |
+
}
|
518 |
+
if (!empty($metaData['telephone'])) {
|
519 |
+
$aRating["telephone"] = $KcSeoWPSchema->sanitizeOutPut($metaData['telephone']);
|
520 |
+
}
|
521 |
+
|
522 |
+
if (!empty($metaData['address'])) {
|
523 |
+
$aRating["address"] = $KcSeoWPSchema->sanitizeOutPut($metaData['address']);
|
524 |
+
}
|
525 |
+
}
|
526 |
+
|
527 |
+
if (!empty($metaData['ratingValue'])) {
|
528 |
+
$rValue = array();
|
529 |
+
$rValue["@type"] = "AggregateRating";
|
530 |
+
$rValue["ratingValue"] = $KcSeoWPSchema->sanitizeOutPut($metaData['ratingValue']);
|
531 |
+
if (!empty($metaData['bestRating'])) {
|
532 |
+
$rValue["bestRating"] = $KcSeoWPSchema->sanitizeOutPut($metaData['bestRating']);
|
533 |
+
}
|
534 |
+
if (!empty($metaData['worstRating'])) {
|
535 |
+
$rValue["worstRating"] = $KcSeoWPSchema->sanitizeOutPut($metaData['worstRating']);
|
536 |
+
}
|
537 |
+
if (!empty($metaData['ratingCount'])) {
|
538 |
+
$rValue["ratingCount"] = $KcSeoWPSchema->sanitizeOutPut($metaData['ratingCount']);
|
539 |
+
}
|
540 |
+
|
541 |
+
$aRating["aggregateRating"] = $rValue;
|
542 |
+
}
|
543 |
+
$html .= $this->get_jsonEncode(apply_filters('kcseo_snippet_aggregate_rating', $aRating, $metaData));
|
544 |
+
break;
|
545 |
+
|
546 |
+
case 'restaurant':
|
547 |
+
$restaurant = array(
|
548 |
+
"@context" => "http://schema.org",
|
549 |
+
"@type" => "Restaurant"
|
550 |
+
);
|
551 |
+
if (!empty($metaData['name'])) {
|
552 |
+
$restaurant["name"] = $KcSeoWPSchema->sanitizeOutPut($metaData['name']);
|
553 |
+
}
|
554 |
+
if (!empty($metaData['description'])) {
|
555 |
+
$restaurant["description"] = $KcSeoWPSchema->sanitizeOutPut($metaData['description'],
|
556 |
+
'textarea');
|
557 |
+
}
|
558 |
+
if (!empty($metaData['openingHours'])) {
|
559 |
+
$restaurant["openingHours"] = $KcSeoWPSchema->sanitizeOutPut($metaData['openingHours'],
|
560 |
+
'textarea');
|
561 |
+
}
|
562 |
+
if (!empty($metaData['telephone'])) {
|
563 |
+
$restaurant["telephone"] = $KcSeoWPSchema->sanitizeOutPut($metaData['telephone']);
|
564 |
+
}
|
565 |
+
if (!empty($metaData['menu'])) {
|
566 |
+
$restaurant["menu"] = $KcSeoWPSchema->sanitizeOutPut($metaData['menu'], 'url');
|
567 |
+
}
|
568 |
+
if (!empty($metaData['image'])) {
|
569 |
+
$img = $KcSeoWPSchema->imageInfo(absint($metaData['image']));
|
570 |
+
$restaurant["image"] = $KcSeoWPSchema->sanitizeOutPut($img['url'], 'url');
|
571 |
+
}
|
572 |
+
if (!empty($metaData['address'])) {
|
573 |
+
$restaurant["address"] = $KcSeoWPSchema->sanitizeOutPut($metaData['address'], 'textarea');
|
574 |
+
}
|
575 |
+
if (!empty($metaData['priceRange'])) {
|
576 |
+
$restaurant["priceRange"] = $KcSeoWPSchema->sanitizeOutPut($metaData['priceRange']);
|
577 |
+
}
|
578 |
+
if (!empty($metaData['servesCuisine'])) {
|
579 |
+
$restaurant["servesCuisine"] = $KcSeoWPSchema->sanitizeOutPut($metaData['servesCuisine']);
|
580 |
+
}
|
581 |
+
$html .= $this->get_jsonEncode(apply_filters('kcseo_snippet_restaurant', $restaurant, $metaData));
|
582 |
+
break;
|
583 |
+
|
584 |
+
case 'localBusiness':
|
585 |
+
$local_business = array(
|
586 |
+
"@context" => "http://schema.org",
|
587 |
+
"@type" => "LocalBusiness"
|
588 |
+
);
|
589 |
+
if (!empty($metaData['name'])) {
|
590 |
+
$local_business["name"] = $KcSeoWPSchema->sanitizeOutPut($metaData['name']);
|
591 |
+
}
|
592 |
+
if (!empty($metaData['description'])) {
|
593 |
+
$local_business["description"] = $KcSeoWPSchema->sanitizeOutPut($metaData['description'],
|
594 |
+
'textarea');
|
595 |
+
}
|
596 |
+
if (!empty($metaData['image'])) {
|
597 |
+
$img = $KcSeoWPSchema->imageInfo(absint($metaData['image']));
|
598 |
+
$local_business["image"] = $KcSeoWPSchema->sanitizeOutPut($img['url'], 'url');
|
599 |
+
}
|
600 |
+
if (!empty($metaData['priceRange'])) {
|
601 |
+
$local_business["priceRange"] = $KcSeoWPSchema->sanitizeOutPut($metaData['priceRange']);
|
602 |
+
}
|
603 |
+
if (!empty($metaData['addressLocality']) || !empty($metaData['addressRegion'])
|
604 |
+
|| !empty($metaData['postalCode']) || !empty($metaData['streetAddress'])) {
|
605 |
+
$local_business["address"] = array(
|
606 |
+
"@type" => "PostalAddress",
|
607 |
+
"addressLocality" => $KcSeoWPSchema->sanitizeOutPut($metaData['addressLocality']),
|
608 |
+
"addressRegion" => $KcSeoWPSchema->sanitizeOutPut($metaData['addressRegion']),
|
609 |
+
"postalCode" => $KcSeoWPSchema->sanitizeOutPut($metaData['postalCode']),
|
610 |
+
"streetAddress" => $KcSeoWPSchema->sanitizeOutPut($metaData['streetAddress'])
|
611 |
+
);
|
612 |
+
}
|
613 |
+
|
614 |
+
if (!empty($metaData['telephone'])) {
|
615 |
+
$local_business["telephone"] = $KcSeoWPSchema->sanitizeOutPut($metaData['telephone']);
|
616 |
+
}
|
617 |
+
$html .= $this->get_jsonEncode(apply_filters('kcseo_snippet_local_business', $local_business, $metaData));
|
618 |
+
if (isset($metaData['review_active'])) {
|
619 |
+
$local_business_review = array(
|
620 |
+
"@context" => "http://schema.org",
|
621 |
+
"@type" => "Review",
|
622 |
+
);
|
623 |
+
if (isset($metaData['review_datePublished']) && !empty($metaData['review_datePublished'])) {
|
624 |
+
$local_business_review["datePublished"] = $KcSeoWPSchema->sanitizeOutPut($metaData['review_datePublished']);
|
625 |
+
}
|
626 |
+
if (isset($metaData['review_body']) && !empty($metaData['review_body'])) {
|
627 |
+
$local_business_review["reviewBody"] = $KcSeoWPSchema->sanitizeOutPut($metaData['review_body'], 'textarea');
|
628 |
+
}
|
629 |
+
|
630 |
+
unset($local_business['@context']);
|
631 |
+
if (isset($local_business["description"])) {
|
632 |
+
$local_business_review["description"] = KcSeoHelper::filter_content($local_business["description"], 200);
|
633 |
+
unset($local_business["description"]);
|
634 |
+
}
|
635 |
+
if (isset($metaData['review_sameAs']) && !empty($metaData['review_sameAs'])) {
|
636 |
+
$sameAs = KcSeoHelper::get_same_as($KcSeoWPSchema->sanitizeOutPut($metaData['review_sameAs'], "textarea"));
|
637 |
+
if (!empty($sameAs)) {
|
638 |
+
$local_business["sameAs"] = $sameAs;
|
639 |
+
}
|
640 |
+
}
|
641 |
+
|
642 |
+
$local_business_review["itemReviewed"] = $local_business;
|
643 |
+
if (!empty($metaData['review_author'])) {
|
644 |
+
$local_business_review["author"] = array(
|
645 |
+
"@type" => "Person",
|
646 |
+
"name" => $KcSeoWPSchema->sanitizeOutPut($metaData['review_author'])
|
647 |
+
);
|
648 |
+
|
649 |
+
if (isset($metaData['review_author_sameAs']) && !empty($metaData['review_author_sameAs'])) {
|
650 |
+
$sameAs = KcSeoHelper::get_same_as($KcSeoWPSchema->sanitizeOutPut($metaData['review_author_sameAs'], "textarea"));
|
651 |
+
if (!empty($sameAs)) {
|
652 |
+
$local_business_review["author"]["sameAs"] = $sameAs;
|
653 |
+
}
|
654 |
+
}
|
655 |
+
}
|
656 |
+
if (isset($metaData['review_ratingValue'])) {
|
657 |
+
$local_business_review["reviewRating"] = array(
|
658 |
+
"@type" => "Rating",
|
659 |
+
"ratingValue" => $KcSeoWPSchema->sanitizeOutPut($metaData['review_ratingValue'], 'number')
|
660 |
+
);
|
661 |
+
if (isset($metaData['review_bestRating'])) {
|
662 |
+
$local_business_review["reviewRating"]["bestRating"] = $KcSeoWPSchema->sanitizeOutPut($metaData['review_bestRating'], 'number');
|
663 |
+
}
|
664 |
+
if (isset($metaData['review_worstRating'])) {
|
665 |
+
$local_business_review["reviewRating"]["worstRating"] = $KcSeoWPSchema->sanitizeOutPut($metaData['review_worstRating'], 'number');
|
666 |
+
}
|
667 |
+
}
|
668 |
+
$html .= $this->get_jsonEncode(apply_filters('kcseo_snippet_local_business_review', $local_business_review, $metaData));
|
669 |
+
}
|
670 |
+
break;
|
671 |
+
|
672 |
+
default:
|
673 |
+
break;
|
674 |
+
}
|
675 |
+
|
676 |
+
}
|
677 |
+
|
678 |
+
return $html;
|
679 |
+
}
|
680 |
+
|
681 |
+
function get_field($data) {
|
682 |
+
$html = null;
|
683 |
+
global $KcSeoWPSchema;
|
684 |
+
$id = $data['id'];
|
685 |
+
$name = $data['name'];
|
686 |
+
$value = $data['value'];
|
687 |
+
$attr = !empty($data['attr']) ? $data['attr'] : null;
|
688 |
+
|
689 |
+
$class = isset($data['class']) ? ($data['class'] ? $data['class'] : null) : null;
|
690 |
+
$require = (isset($data['required']) ? ($data['required'] ? sprintf('<span data-kcseo-tooltip="%s" class="required">*</span>', __("Required", "wp-seo-structured-data-schema-pro")) : null) : null);
|
691 |
+
$recommended = (isset($data['recommended']) ? ($data['recommended'] ? sprintf('<span data-kcseo-tooltip="%s" class="recommended">*</span>', __("Recommended", "wp-seo-structured-data-schema-pro")) : null) : null);
|
692 |
+
$title = (isset($data['title']) ? ($data['title'] ? $data['title'] : null) : null);
|
693 |
+
$desc = (isset($data['desc']) ? ($data['desc'] ? $data['desc'] : null) : null);
|
694 |
+
$holderClass = (!empty($data['holderClass']) ? $data['holderClass'] : null);
|
695 |
+
|
696 |
+
switch ($data['type']) {
|
697 |
+
case 'checkbox':
|
698 |
+
$checked = ($value ? "checked" : null);
|
699 |
+
$html .= "<div class='kSeo-checkbox-wrapper'>";
|
700 |
+
$html .= "<label for='{$id}'><input type='checkbox' id='{$id}' class='{$class}' name='{$name}' {$checked} value='1' /> Enable</label>";
|
701 |
+
$html .= "</div>";
|
702 |
+
break;
|
703 |
+
case 'text':
|
704 |
+
$html .= "<input type='text' id='{$id}' class='{$class}' {$attr} name='{$name}' value='" . esc_html($value) . "' />";
|
705 |
+
break;
|
706 |
+
case 'number':
|
707 |
+
if ($data['fieldId'] == 'price') {
|
708 |
+
$html .= "<input type='number' step='any' id='{$id}' class='{$class}' {$attr} name='{$name}' value='" . esc_attr($value) . "' />";
|
709 |
+
} else {
|
710 |
+
$html .= "<input type='number' id='{$id}' class='{$class}' name='{$name}' {$attr} value='" . esc_attr($value) . "' />";
|
711 |
+
}
|
712 |
+
break;
|
713 |
+
case 'textarea':
|
714 |
+
$html .= "<textarea id='{$id}' class='{$class}' {$attr} name='{$name}' >" . wp_kses($value,
|
715 |
+
array()) . "</textarea>";
|
716 |
+
break;
|
717 |
+
case 'image':
|
718 |
+
$html .= '<div class="kSeo-image">';
|
719 |
+
$ImageId = !empty($value) ? absint($value) : 0;
|
720 |
+
$image = $ingInfo = null;
|
721 |
+
if ($ImageId) {
|
722 |
+
$image = wp_get_attachment_image($ImageId, "thumbnail");
|
723 |
+
$imgData = $KcSeoWPSchema->imageInfo($ImageId);
|
724 |
+
$ingInfo .= "<span><strong>URL: </strong>{$imgData['url']}</span>";
|
725 |
+
$ingInfo .= "<span><strong>Width: </strong>{$imgData['width']}px</span>";
|
726 |
+
$ingInfo .= "<span><strong>Height: </strong>{$imgData['height']}px</span>";
|
727 |
+
}
|
728 |
+
$html .= "<div class='kSeo-image-wrapper'>";
|
729 |
+
$html .= '<span class="kSeoImgAdd"><span class="dashicons dashicons-plus-alt"></span></span>';
|
730 |
+
$html .= '<span class="kSeoImgRemove ' . ($image ? null : "kSeo-hidden") . '"><span class="dashicons dashicons-trash"></span></span>';
|
731 |
+
$html .= '<div class="kSeo-image-preview">' . $image . '</div>';
|
732 |
+
$html .= "<input type='hidden' name='{$name}' value='" . absint($ImageId) . "' />";
|
733 |
+
$html .= "</div>";
|
734 |
+
$html .= "<div class='image-info'>{$ingInfo}</div>";
|
735 |
+
$html .= '</div>';
|
736 |
+
break;
|
737 |
+
case 'select':
|
738 |
+
$html .= "<select name='{$name}' {$attr} class='select2 {$class}' id='{$id}'>";
|
739 |
+
if (!empty($data['empty'])) {
|
740 |
+
$html .= "<option value=''>{$data['empty']}</option>";
|
741 |
+
}
|
742 |
+
if (!empty($data['options']) && is_array($data['options'])) {
|
743 |
+
if ($this->isAssoc($data['options'])) {
|
744 |
+
foreach ($data['options'] as $optKey => $optValue) {
|
745 |
+
$slt = ($optKey == $value ? "selected" : null);
|
746 |
+
$html .= "<option value='" . esc_attr($optKey) . "' {$slt}>" . esc_html($optValue) . "</option>";
|
747 |
+
}
|
748 |
+
} else {
|
749 |
+
foreach ($data['options'] as $optValue) {
|
750 |
+
$slt = ($optValue == $value ? "selected" : null);
|
751 |
+
$html .= "<option value='" . esc_attr($optValue) . "' {$slt}>" . esc_html($optValue) . "</option>";
|
752 |
+
}
|
753 |
+
}
|
754 |
+
}
|
755 |
+
$html .= "</select>";
|
756 |
+
break;
|
757 |
+
case 'schema_type':
|
758 |
+
$html .= "<select name='{$name}' class='select2 {$class}' id='{$id}'>";
|
759 |
+
if (!empty($data['empty'])) {
|
760 |
+
$html .= "<option value=''>{$data['empty']}</option>";
|
761 |
+
}
|
762 |
+
|
763 |
+
foreach ($data['options'] as $key => $site) {
|
764 |
+
if (is_array($site)) {
|
765 |
+
$slt = ($key == $value ? "selected" : null);
|
766 |
+
$html .= "<option value='$key' $slt> $key</option>";
|
767 |
+
foreach ($site as $inKey => $inSite) {
|
768 |
+
if (is_array($inSite)) {
|
769 |
+
$slt = ($inKey == $value ? "selected" : null);
|
770 |
+
$html .= "<option value='$inKey' $slt> $inKey</option>";
|
771 |
+
foreach ($inSite as $inInKey => $inInSite) {
|
772 |
+
if (is_array($inInSite)) {
|
773 |
+
$slt = ($inInKey == $value ? "selected" : null);
|
774 |
+
$html .= "<option value='$inInKey' $slt> $inInKey</option>";
|
775 |
+
foreach ($inInSite as $iSite) {
|
776 |
+
$slt = ($iSite == $value ? "selected" : null);
|
777 |
+
$html .= "<option value='$iSite' $slt> $iSite</option>";
|
778 |
+
}
|
779 |
+
} else {
|
780 |
+
$slt = ($inInSite == $value ? "selected" : null);
|
781 |
+
$html .= "<option value='$inInSite' $slt> $inInSite</option>";
|
782 |
+
}
|
783 |
+
}
|
784 |
+
} else {
|
785 |
+
$slt = ($inSite == $value ? "selected" : null);
|
786 |
+
$html .= "<option value='$inSite' $slt> $inSite</option>";
|
787 |
+
}
|
788 |
+
}
|
789 |
+
} else {
|
790 |
+
$slt = ($site == $value ? "selected" : null);
|
791 |
+
$html .= "<option value='$site' $slt>$site</option>";
|
792 |
+
}
|
793 |
+
}
|
794 |
+
$html .= "</select>";
|
795 |
+
break;
|
796 |
+
default:
|
797 |
+
$html .= "<input id='{$id}' type='{$data['type']}' {$attr} value='" . esc_attr($value) . "' name='$name' />";
|
798 |
+
break;
|
799 |
+
|
800 |
+
}
|
801 |
+
$label = "<label class='field-label' for='{$id}'>{$title}{$require}{$recommended}</label>";
|
802 |
+
$field_html = sprintf('<div class="field-content" id="%s-content">%s<p class="description">%s</div>', $id, $html, $desc);
|
803 |
+
if ($data['type'] == 'heading') {
|
804 |
+
$holderClass .= ' kcseo-heading-container';
|
805 |
+
$label = '';
|
806 |
+
$field_html = sprintf('<div class="kcseo-section-title-wrap">%s%s</div>',
|
807 |
+
$title ? sprintf('<h5>%s</h5>', $title) : '',
|
808 |
+
$desc ? sprintf('<p class="description">%s</p>', $desc) : null
|
809 |
+
);
|
810 |
+
}
|
811 |
+
|
812 |
+
$html = sprintf('<div class="field-container %s" id="%s-container">%s%s</div>',
|
813 |
+
$holderClass,
|
814 |
+
$id,
|
815 |
+
$label,
|
816 |
+
$field_html
|
817 |
+
);
|
818 |
+
|
819 |
+
return $html;
|
820 |
+
}
|
821 |
+
|
822 |
+
function get_jsonEncode($data = array()) {
|
823 |
+
$html = null;
|
824 |
+
/** @var TYPE_NAME $data */
|
825 |
+
if (!empty($data) && is_array($data)) {
|
826 |
+
$html .= '<script type="application/ld+json">' . json_encode($data,
|
827 |
+
JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES) . '</script>';
|
828 |
+
}
|
829 |
+
|
830 |
+
return $html;
|
831 |
+
}
|
832 |
+
|
833 |
+
function imgInfo($url = null) {
|
834 |
+
$img = array();
|
835 |
+
if ($url) {
|
836 |
+
$imgA = @getimagesize($url);
|
837 |
+
if (is_array($imgA) && !empty($imgA)) {
|
838 |
+
$img['width'] = $imgA[0];
|
839 |
+
$img['height'] = $imgA[1];
|
840 |
+
} else {
|
841 |
+
$img['width'] = 0;
|
842 |
+
$img['height'] = 0;
|
843 |
+
}
|
844 |
+
}
|
845 |
+
|
846 |
+
return $img;
|
847 |
+
}
|
848 |
+
|
849 |
+
function isAssoc($array) {
|
850 |
+
$keys = array_keys($array);
|
851 |
+
|
852 |
+
return $keys !== array_keys($keys);
|
853 |
+
}
|
854 |
+
|
855 |
+
|
856 |
+
}
|
857 |
endif;
|
lib/views/settings.php
CHANGED
@@ -1,114 +1,161 @@
|
|
1 |
<?php
|
2 |
global $KcSeoWPSchema;
|
3 |
-
$settings = get_option($KcSeoWPSchema->options['main_settings']);
|
4 |
?>
|
5 |
<div class="wrap">
|
6 |
-
<h2><?php _e('Schema Settings', "wp-seo-structured-data-schema"); ?></h2>
|
7 |
|
8 |
<div id="kcseo-settings">
|
9 |
<div id="kcseo-options">
|
10 |
<form id="kcseo-main-settings">
|
11 |
<table width="40%" cellpadding="10" class="form-table">
|
12 |
-
<tr
|
13 |
-
<th><?php _e("Business / Org Schema", "wp-seo-structured-data-schema") ?></th>
|
14 |
<td align="left" scope="row">
|
15 |
-
|
16 |
-
<input type="radio" <?php echo($dd == 'home_page' ? 'checked' : null); ?>
|
17 |
-
|
18 |
-
|
19 |
-
|
|
|
20 |
value="all"
|
21 |
-
id="site_schema_all"><label for="site_schema_all"><?php _e("Sitewide (Apply General Settings schema
|
22 |
-
sitewide)", "wp-seo-structured-data-schema") ?></label><br>
|
23 |
-
<input type="radio" <?php echo($dd == 'off' ? 'checked' : null); ?> name="site_schema"
|
24 |
value="off"
|
25 |
id="site_schema_off"><label
|
26 |
-
for="site_schema_off"><?php _e("Turn off (Turn off global schema)", "wp-seo-structured-data-schema") ?></label>
|
27 |
</td>
|
28 |
</tr>
|
29 |
-
<tr
|
30 |
<th>
|
31 |
-
|
32 |
-
<span class='kcseo-pro-label'><?php _e("PRO", "wp-seo-structured-data-schema
|
33 |
</th>
|
34 |
<td align="left" scope="row">
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
</td>
|
42 |
</tr>
|
43 |
-
<tr
|
44 |
-
<th
|
45 |
-
|
|
|
46 |
</tr>
|
47 |
-
<tr
|
48 |
<th>
|
49 |
-
|
50 |
-
<span class='kcseo-pro-label'><?php _e("PRO", "wp-seo-structured-data-schema
|
51 |
</th>
|
52 |
<td align="left" scope="row">
|
53 |
<select disabled>
|
54 |
-
<option value=""><?php _e("Select one menu", "wp-seo-structure-data-schema-pro") ?></option>
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
</select>
|
65 |
-
<p class="description"><?php _e("Please deselect the navigation menu if you want to deactivate site navigation
|
66 |
-
schema.", "wp-seo-structured-data-schema
|
67 |
</td>
|
68 |
</tr>
|
69 |
-
<tr
|
70 |
-
<th
|
|
|
71 |
</tr>
|
72 |
-
<tr
|
73 |
<th>
|
74 |
-
|
75 |
-
<span class='kcseo-pro-label'><?php _e("PRO", "wp-seo-structured-data-schema
|
76 |
</th>
|
77 |
<td align="left" scope="row">
|
78 |
<input type="text" disabled class="disabled regular-text" value=""/>
|
79 |
</td>
|
80 |
</tr>
|
81 |
-
<tr
|
82 |
<th>
|
83 |
-
|
84 |
-
<span class='kcseo-pro-label'><?php _e("PRO", "wp-seo-structured-data-schema
|
85 |
</th>
|
86 |
<td align="left" scope="row"></td>
|
87 |
</tr>
|
88 |
-
<tr
|
89 |
-
<th
|
90 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
91 |
</tr>
|
92 |
-
<tr
|
93 |
-
<th><?php _e("Delete all data", "wp-seo-structured-data-schema") ?></th>
|
94 |
<td align="left" scope="row">
|
95 |
-
|
96 |
<input type="checkbox" <?php echo $dd; ?> name="delete-data" value="1"
|
97 |
id="delete-data"><label
|
98 |
-
for="delete-data"><?php _e("Enable", "wp-seo-structured-data-schema") ?></label>
|
99 |
-
<p class="description"><?php _e("This will delete all schema created and applied by this plugin when plugin is
|
100 |
-
deleted.", "wp-seo-structured-data-schema") ?></p>
|
101 |
</td>
|
102 |
</tr>
|
103 |
</table>
|
104 |
<p class="submit"><input type="submit" name="submit" id="tlpSaveButton" class="button button-primary"
|
105 |
-
value="<?php _e('Save Changes', "wp-seo-structured-data-schema"); ?>"></p>
|
106 |
|
107 |
-
|
108 |
</form>
|
109 |
<div id="response"></div>
|
110 |
</div>
|
111 |
-
|
112 |
</div>
|
113 |
|
114 |
</div>
|
1 |
<?php
|
2 |
global $KcSeoWPSchema;
|
3 |
+
$settings = get_option( $KcSeoWPSchema->options['main_settings'] );
|
4 |
?>
|
5 |
<div class="wrap">
|
6 |
+
<h2><?php _e( 'Schema Settings', "wp-seo-structured-data-schema" ); ?></h2>
|
7 |
|
8 |
<div id="kcseo-settings">
|
9 |
<div id="kcseo-options">
|
10 |
<form id="kcseo-main-settings">
|
11 |
<table width="40%" cellpadding="10" class="form-table">
|
12 |
+
<tr>
|
13 |
+
<th><?php _e( "Business / Org Schema", "wp-seo-structured-data-schema" ) ?></th>
|
14 |
<td align="left" scope="row">
|
15 |
+
<?php $dd = ! empty( $settings['site_schema'] ) ? $settings['site_schema'] : 'home_page'; ?>
|
16 |
+
<input type="radio" <?php echo( $dd == 'home_page' ? 'checked' : null ); ?>
|
17 |
+
name="site_schema"
|
18 |
+
value="home_page" id="site_schema_home"><label for="site_schema_home"><?php _e( "Home page
|
19 |
+
only", "wp-seo-structured-data-schema" ) ?></label><br>
|
20 |
+
<input type="radio" <?php echo( $dd == 'all' ? 'checked' : null ); ?> name="site_schema"
|
21 |
value="all"
|
22 |
+
id="site_schema_all"><label for="site_schema_all"><?php _e( "Sitewide (Apply General Settings schema
|
23 |
+
sitewide)", "wp-seo-structured-data-schema" ) ?></label><br>
|
24 |
+
<input type="radio" <?php echo( $dd == 'off' ? 'checked' : null ); ?> name="site_schema"
|
25 |
value="off"
|
26 |
id="site_schema_off"><label
|
27 |
+
for="site_schema_off"><?php _e( "Turn off (Turn off global schema)", "wp-seo-structured-data-schema" ) ?></label>
|
28 |
</td>
|
29 |
</tr>
|
30 |
+
<tr>
|
31 |
<th>
|
32 |
+
<?php _e( "Post Type", "wp-seo-structured-data-schema" ) ?>
|
33 |
+
<span class='kcseo-pro-label'><?php _e( "PRO", "wp-seo-structured-data-schema" ) ?></span>
|
34 |
</th>
|
35 |
<td align="left" scope="row">
|
36 |
+
<?php
|
37 |
+
$postTypes = $KcSeoWPSchema->get_post_type_list();
|
38 |
+
foreach ( $postTypes as $key => $value ) {
|
39 |
+
echo "<label for='pt-{$key}'><input disabled id='pt-{$key}' type='checkbox' /> {$value}</label><br>";
|
40 |
+
}
|
41 |
+
?>
|
42 |
</td>
|
43 |
</tr>
|
44 |
+
<tr>
|
45 |
+
<th colspan="2">
|
46 |
+
<h3><?php _e( "Site Navigation Element Schema", "wp-seo-structured-data-schema" ) ?></h3>
|
47 |
+
</th>
|
48 |
</tr>
|
49 |
+
<tr>
|
50 |
<th>
|
51 |
+
<?php _e( "Publisher Name", "wp-seo-structured-data-schema" ) ?>
|
52 |
+
<span class='kcseo-pro-label'><?php _e( "PRO", "wp-seo-structured-data-schema" ) ?></span>
|
53 |
</th>
|
54 |
<td align="left" scope="row">
|
55 |
<select disabled>
|
56 |
+
<option value=""><?php _e( "Select one menu", "wp-seo-structure-data-schema-pro" ) ?></option>
|
57 |
+
<?php
|
58 |
+
$menus = get_terms( 'nav_menu' );
|
59 |
+
if ( ! empty( $menus ) ) {
|
60 |
+
foreach ( $menus as $menu ) {
|
61 |
+
$slt = ( ! empty( $settings['site_nav'] ) && $settings['site_nav'] == $menu->term_id ) ? " selected" : null;
|
62 |
+
echo "<option value='{$menu->term_id}'{$slt}>{$menu->name}</option>";
|
63 |
+
}
|
64 |
+
}
|
65 |
+
?>
|
66 |
</select>
|
67 |
+
<p class="description"><?php _e( "Please deselect the navigation menu if you want to deactivate site navigation
|
68 |
+
schema.", "wp-seo-structured-data-schema" ) ?></p>
|
69 |
</td>
|
70 |
</tr>
|
71 |
+
<tr>
|
72 |
+
<th colspan="2"><h3><?php _e( "Publisher Information", "wp-seo-structured-data-schema" ) ?></h3>
|
73 |
+
</th>
|
74 |
</tr>
|
75 |
+
<tr>
|
76 |
<th>
|
77 |
+
<?php _e( "Publisher Name", "wp-seo-structured-data-schema" ) ?>
|
78 |
+
<span class='kcseo-pro-label'><?php _e( "PRO", "wp-seo-structured-data-schema" ) ?></span>
|
79 |
</th>
|
80 |
<td align="left" scope="row">
|
81 |
<input type="text" disabled class="disabled regular-text" value=""/>
|
82 |
</td>
|
83 |
</tr>
|
84 |
+
<tr>
|
85 |
<th>
|
86 |
+
<?php _e( "Publisher Logo", "wp-seo-structured-data-schema" ) ?>
|
87 |
+
<span class='kcseo-pro-label'><?php _e( "PRO", "wp-seo-structured-data-schema" ) ?></span>
|
88 |
</th>
|
89 |
<td align="left" scope="row"></td>
|
90 |
</tr>
|
91 |
+
<tr>
|
92 |
+
<th colspan="2">
|
93 |
+
<h3><?php esc_html_e( "Third party plugin Settings", "wp-seo-structured-data-schema" ) ?></h3>
|
94 |
+
</th>
|
95 |
+
</tr>
|
96 |
+
<tr>
|
97 |
+
<th><?php esc_html_e( "YOAST SEO Default Schema JSON-LD", "wp-seo-structured-data-schema" ) ?></th>
|
98 |
+
<td align="left" scope="row">
|
99 |
+
<?php $dd = ! empty( $settings['yoast_wpseo_json_ld'] ) ? "checked" : null; ?>
|
100 |
+
<input type="checkbox" <?php echo $dd; ?> name="yoast_wpseo_json_ld" value="1"
|
101 |
+
id="yoast-wpseo-json-ld"><label
|
102 |
+
for="yoast-wpseo-json-ld"><?php esc_html_e( "Disable", "wp-seo-structured-data-schema" ) ?></label>
|
103 |
+
<p class="description"><?php esc_html_e( "This will remove all default schema generated by Yoast SEO plugin.", "wp-seo-structured-data-schema" ) ?></p>
|
104 |
+
</td>
|
105 |
+
</tr>
|
106 |
+
<tr>
|
107 |
+
<th><?php esc_html_e( "YOAST SEO sitelinks searchbox", "wp-seo-structured-data-schema" ) ?></th>
|
108 |
+
<td align="left" scope="row">
|
109 |
+
<?php $dd = ! empty( $settings['yoast_wpseo_json_ld_search'] ) ? "checked" : null; ?>
|
110 |
+
<input type="checkbox" <?php echo $dd; ?> name="yoast_wpseo_json_ld_search" value="1"
|
111 |
+
id="yoast-wpseo-json-ld-search"><label
|
112 |
+
for="yoast-wpseo-json-ld-search"><?php esc_html_e( "Disable", "wp-seo-structured-data-schema" ) ?></label>
|
113 |
+
<p class="description"><?php esc_html_e( "This will remove sitelinks searchbox generated by Yoast SEO plugin.", "wp-seo-structured-data-schema" ) ?></p>
|
114 |
+
</td>
|
115 |
+
</tr>
|
116 |
+
<tr>
|
117 |
+
<th><?php esc_html_e( "Woocommerce default schema", "wp-seo-structured-data-schema" ) ?></th>
|
118 |
+
<td align="left" scope="row">
|
119 |
+
<?php $dd = ! empty( $settings['wc_schema_disable'] ) ? "checked" : null; ?>
|
120 |
+
<input type="checkbox" <?php echo $dd; ?> name="wc_schema_disable" value="1"
|
121 |
+
id="wc-schema-disable"><label
|
122 |
+
for="wc-schema-disable"><?php esc_html_e( "Disable", "wp-seo-structured-data-schema" ) ?></label>
|
123 |
+
<p class="description"><?php esc_html_e( "This will remove Woocommerce plugin generated schema.", "wp-seo-structured-data-schema" ) ?></p>
|
124 |
+
</td>
|
125 |
+
</tr>
|
126 |
+
<tr>
|
127 |
+
<th><?php esc_html_e( "Easy Digital Download default schema", "wp-seo-structured-data-schema" ) ?></th>
|
128 |
+
<td align="left" scope="row">
|
129 |
+
<?php $dd = ! empty( $settings['edd_schema_microdata'] ) ? "checked" : null; ?>
|
130 |
+
<input type="checkbox" <?php echo $dd; ?> name="edd_schema_microdata" value="1"
|
131 |
+
id="edd-schema-microdata"><label
|
132 |
+
for="edd-schema-microdata"><?php esc_html_e( "Disable", "wp-seo-structured-data-schema" ) ?></label>
|
133 |
+
<p class="description"><?php esc_html_e( "This will remove Easy Digital Download plugin generated schema.", "wp-seo-structured-data-schema" ) ?></p>
|
134 |
+
</td>
|
135 |
+
</tr>
|
136 |
+
<tr>
|
137 |
+
<th colspan="2"><h3><?php _e( "System Settings", "wp-seo-structured-data-schema" ) ?></h3></th>
|
138 |
</tr>
|
139 |
+
<tr>
|
140 |
+
<th><?php _e( "Delete all data", "wp-seo-structured-data-schema" ) ?></th>
|
141 |
<td align="left" scope="row">
|
142 |
+
<?php $dd = ! empty( $settings['delete-data'] ) ? "checked" : null; ?>
|
143 |
<input type="checkbox" <?php echo $dd; ?> name="delete-data" value="1"
|
144 |
id="delete-data"><label
|
145 |
+
for="delete-data"><?php _e( "Enable", "wp-seo-structured-data-schema" ) ?></label>
|
146 |
+
<p class="description"><?php _e( "This will delete all schema created and applied by this plugin when plugin is
|
147 |
+
deleted.", "wp-seo-structured-data-schema" ) ?></p>
|
148 |
</td>
|
149 |
</tr>
|
150 |
</table>
|
151 |
<p class="submit"><input type="submit" name="submit" id="tlpSaveButton" class="button button-primary"
|
152 |
+
value="<?php _e( 'Save Changes', "wp-seo-structured-data-schema" ); ?>"></p>
|
153 |
|
154 |
+
<?php wp_nonce_field( $KcSeoWPSchema->nonceText(), '_kcseo_nonce' ); ?>
|
155 |
</form>
|
156 |
<div id="response"></div>
|
157 |
</div>
|
158 |
+
<?php $KcSeoWPSchema->advertisingBlock(); ?>
|
159 |
</div>
|
160 |
|
161 |
</div>
|
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.
|
7 |
* Author: WPSEMPlugins
|
8 |
* Author URI: https://wpsemplugins.com/
|
9 |
* Text Domain: wp-seo-structured-data-schema
|
@@ -14,6 +14,11 @@
|
|
14 |
if ( ! defined( 'ABSPATH' ) ) {
|
15 |
exit;
|
16 |
}
|
|
|
|
|
|
|
|
|
|
|
17 |
if ( ! defined( 'JSON_UNESCAPED_SLASHES' ) ) {
|
18 |
define( 'JSON_UNESCAPED_SLASHES', 64 );
|
19 |
}
|
@@ -37,8 +42,7 @@ require( 'lib/init.php' );
|
|
37 |
register_uninstall_hook( __FILE__, 'KCSEO_uninstall' );
|
38 |
|
39 |
function KCSEO_uninstall() {
|
40 |
-
|
41 |
-
$settings = get_option( $KcSeoWPSchema->options['main_settings'] );
|
42 |
if ( ! empty( $settings['delete-data'] ) ) {
|
43 |
$schemaFields = KcSeoOptions::getSchemaTypes();
|
44 |
|
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.6.0
|
7 |
* Author: WPSEMPlugins
|
8 |
* Author URI: https://wpsemplugins.com/
|
9 |
* Text Domain: wp-seo-structured-data-schema
|
14 |
if ( ! defined( 'ABSPATH' ) ) {
|
15 |
exit;
|
16 |
}
|
17 |
+
// Define KCSEO_VERSION VERSION.
|
18 |
+
if ( ! defined( 'KCSEO_VERSION' ) ) {
|
19 |
+
$plugin_data = get_file_data( __FILE__, array( 'version' => 'Version' ), false );
|
20 |
+
define( 'KCSEO_VERSION', $plugin_data['version'] );
|
21 |
+
}
|
22 |
if ( ! defined( 'JSON_UNESCAPED_SLASHES' ) ) {
|
23 |
define( 'JSON_UNESCAPED_SLASHES', 64 );
|
24 |
}
|
42 |
register_uninstall_hook( __FILE__, 'KCSEO_uninstall' );
|
43 |
|
44 |
function KCSEO_uninstall() {
|
45 |
+
$settings = get_option( kcseo()->options['main_settings'] );
|
|
|
46 |
if ( ! empty( $settings['delete-data'] ) ) {
|
47 |
$schemaFields = KcSeoOptions::getSchemaTypes();
|
48 |
|