Version Description
Download this release
Release Info
Developer | pbaylies |
Plugin | All in One SEO Pack |
Version | 2.0.4 |
Comparing to | |
See all releases |
Code changes from version 2.0.3.1 to 2.0.4
- aioseop_class.php +336 -194
- aioseop_feature_manager.php +7 -1
- aioseop_functions.php +10 -7
- aioseop_module.css +7 -0
- aioseop_module.js +1 -1
- aioseop_module_class.php +44 -12
- aioseop_performance.php +18 -11
- aioseop_sitemap.php +97 -48
- all_in_one_seo_pack-ru_RU.mo +0 -0
- all_in_one_seo_pack.php +5 -5
- quickedit_functions.js +2 -2
- readme.txt +21 -28
aioseop_class.php
CHANGED
@@ -61,73 +61,97 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
61 |
$this->store_option = true;
|
62 |
$this->file = __FILE__; // the current file
|
63 |
parent::__construct();
|
64 |
-
$this->default_options = array(
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
'name' => __( 'Home Title:', 'all_in_one_seo_pack' ),
|
71 |
-
'help_text' => __(
|
72 |
'default' => null, 'type' => 'textarea', 'sanitize' => 'text' ),
|
73 |
-
|
|
|
74 |
'name' => __( 'Home Description:', 'all_in_one_seo_pack' ),
|
75 |
-
'help_text' => __(
|
76 |
'default' => '', 'type' => 'textarea', 'sanitize' => 'text' ),
|
77 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
'name' => __( 'Use Keywords:', 'all_in_one_seo_pack' ),
|
79 |
-
'help_text' => __(
|
80 |
'default' => 0,
|
81 |
'type' => 'radio',
|
82 |
'initial_options' => Array( 0 => __( 'Enabled', 'all_in_one_seo_pack' ),
|
83 |
1 => __( 'Disabled', 'all_in_one_seo_pack' ) )
|
84 |
),
|
85 |
-
|
86 |
-
|
87 |
-
'
|
88 |
-
'
|
|
|
89 |
'condshow' => Array( "aiosp_togglekeywords" => 0 ) ),
|
90 |
-
|
91 |
-
|
92 |
-
'
|
93 |
-
'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
94 |
"rewrite_titles"=> Array(
|
95 |
'name' => __( 'Rewrite Titles:', 'all_in_one_seo_pack' ),
|
96 |
-
'help_text' => __( "Note that this is all about the title tag. This is what you see in your browser's window title bar. This is NOT visible on a page, only in the
|
97 |
'default' => 1,
|
98 |
'type' => 'radio',
|
99 |
'initial_options' => Array( 1 => __( 'Enabled', 'all_in_one_seo_pack' ),
|
100 |
0 => __( 'Disabled', 'all_in_one_seo_pack' ) )
|
101 |
),
|
102 |
-
|
103 |
-
'name' => __( 'Force Rewrites:', 'all_in_one_seo_pack' ),
|
104 |
-
'help_text' => __( "Use output buffering to ensure that the title gets rewritten.", 'all_in_one_seo_pack' ),
|
105 |
-
'default' => 1,
|
106 |
-
'type' => 'hidden',
|
107 |
-
'prefix' => $this->prefix,
|
108 |
-
'initial_options' => Array( 1 => __( 'Enabled', 'all_in_one_seo_pack' ),
|
109 |
-
0 => __( 'Disabled', 'all_in_one_seo_pack' ) )
|
110 |
-
),
|
111 |
-
"use_original_title"=> Array(
|
112 |
-
'name' => __( 'Use Original Title:', 'all_in_one_seo_pack' ),
|
113 |
-
'help_text' => __( "Use wp_title to set the title; disable this option if you run into conflicts with the title being set by your theme or another plugin.", 'all_in_one_seo_pack' ),
|
114 |
-
'type' => 'radio',
|
115 |
-
'default' => 0,
|
116 |
-
'initial_options' => Array( 1 => __( 'Enabled', 'all_in_one_seo_pack' ),
|
117 |
-
0 => __( 'Disabled', 'all_in_one_seo_pack' ) )
|
118 |
-
),
|
119 |
"cap_titles"=> Array(
|
120 |
'name' => __( 'Capitalize Titles:', 'all_in_one_seo_pack' ),
|
121 |
-
'help_text' => __( "Check this and Search Page Titles and Tag Page Titles will have the first letter of each word capitalized.", 'all_in_one_seo_pack' ),
|
122 |
'default' => 1),
|
|
|
123 |
"cap_cats"=> Array(
|
124 |
'name' => __( 'Capitalize Category Titles:', 'all_in_one_seo_pack' ),
|
125 |
-
'help_text' => __( "Check this and Category Titles will have the first letter of each word capitalized.", 'all_in_one_seo_pack' ),
|
126 |
'default' => 1),
|
127 |
-
|
|
|
128 |
'name' => __( 'Page Title Format:', 'all_in_one_seo_pack' ),
|
129 |
'help_text' =>
|
130 |
-
__( 'The following macros are supported:
|
131 |
. '<ul><li>' . __( '%blog_title% - Your blog title', 'all_in_one_seo_pack' ) . '</li><li>' .
|
132 |
__( '%blog_description% - Your blog description', 'all_in_one_seo_pack' ) . '</li><li>' .
|
133 |
__( '%page_title% - The original title of the page', 'all_in_one_seo_pack' ) . '</li><li>' .
|
@@ -141,10 +165,11 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
141 |
'type' => 'text',
|
142 |
'default' => '%page_title% | %blog_title%',
|
143 |
'condshow' => Array( "aiosp_rewrite_titles" => 1 ) ),
|
144 |
-
|
|
|
145 |
'name' => __( 'Post Title Format:', 'all_in_one_seo_pack' ),
|
146 |
'help_text' =>
|
147 |
-
__( 'The following macros are supported:
|
148 |
. '<ul><li>' . __( '%blog_title% - Your blog title', 'all_in_one_seo_pack' ) . '</li><li>' .
|
149 |
__( '%blog_description% - Your blog description', 'all_in_one_seo_pack' ) . '</li><li>' .
|
150 |
__( '%post_title% - The original title of the post', 'all_in_one_seo_pack' ) . '</li><li>' .
|
@@ -158,10 +183,11 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
158 |
'type' => 'text',
|
159 |
'default' => '%post_title% | %blog_title%',
|
160 |
'condshow' => Array( "aiosp_rewrite_titles" => 1 ) ),
|
161 |
-
|
|
|
162 |
'name' => __( 'Category Title Format:', 'all_in_one_seo_pack' ),
|
163 |
'help_text' =>
|
164 |
-
__( 'The following macros are supported:
|
165 |
'<ul><li>' . __( '%blog_title% - Your blog title', 'all_in_one_seo_pack' ) . '</li><li>' .
|
166 |
__( '%blog_description% - Your blog description', 'all_in_one_seo_pack' ) . '</li><li>' .
|
167 |
__( '%category_title% - The original title of the category', 'all_in_one_seo_pack' ) . '</li><li>' .
|
@@ -169,10 +195,11 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
169 |
'type' => 'text',
|
170 |
'default' => '%category_title% | %blog_title%',
|
171 |
'condshow' => Array( "aiosp_rewrite_titles" => 1 ) ),
|
172 |
-
|
|
|
173 |
'name' => __( 'Date Archive Title Format:', 'all_in_one_seo_pack' ),
|
174 |
'help_text' =>
|
175 |
-
__( 'The following macros are supported:
|
176 |
'<ul><li>' . __( '%blog_title% - Your blog title', 'all_in_one_seo_pack' ) . '</li><li>' .
|
177 |
__( '%blog_description% - Your blog description', 'all_in_one_seo_pack' ) . '</li><li>' .
|
178 |
__( '%date% - The original archive title given by wordpress, e.g. "2007" or "2007 August"', 'all_in_one_seo_pack' ) . '</li><li>' .
|
@@ -182,39 +209,43 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
182 |
'type' => 'text',
|
183 |
'default' => '%date% | %blog_title%',
|
184 |
'condshow' => Array( "aiosp_rewrite_titles" => 1 ) ),
|
|
|
185 |
"author_title_format"=> Array(
|
186 |
'name' => __( 'Author Archive Title Format:', 'all_in_one_seo_pack' ),
|
187 |
'help_text' =>
|
188 |
-
__( 'The following macros are supported:
|
189 |
'<ul><li>' . __( '%blog_title% - Your blog title', 'all_in_one_seo_pack' ) . '</li><li>' .
|
190 |
__( '%blog_description% - Your blog description', 'all_in_one_seo_pack' ) . '</li><li>' .
|
191 |
__( '%author% - The original archive title given by wordpress, e.g. "Steve" or "John Smith"', 'all_in_one_seo_pack' ) . '</li></ul>',
|
192 |
'type' => 'text',
|
193 |
'default' => '%author% | %blog_title%',
|
194 |
'condshow' => Array( "aiosp_rewrite_titles" => 1 ) ),
|
195 |
-
|
|
|
196 |
'name' => __( 'Tag Title Format:', 'all_in_one_seo_pack' ),
|
197 |
'help_text' =>
|
198 |
-
__( 'The following macros are supported:
|
199 |
'<ul><li>' . __( '%blog_title% - Your blog title', 'all_in_one_seo_pack' ) . '</li><li>' .
|
200 |
__( '%blog_description% - Your blog description', 'all_in_one_seo_pack' ) . '</li><li>' .
|
201 |
__( '%tag% - The name of the tag', 'all_in_one_seo_pack' ) . '</li></ul>',
|
202 |
'type' => 'text',
|
203 |
'default' => '%tag% | %blog_title%',
|
204 |
'condshow' => Array( "aiosp_rewrite_titles" => 1 ) ),
|
205 |
-
|
|
|
206 |
'name' => __( 'Search Title Format:', 'all_in_one_seo_pack' ),
|
207 |
'help_text' =>
|
208 |
-
__( 'The following macros are supported:
|
209 |
'<ul><li>' . __( '%blog_title% - Your blog title', 'all_in_one_seo_pack' ) . '</li><li>' .
|
210 |
__( '%blog_description% - Your blog description', 'all_in_one_seo_pack' ) . '</li><li>' .
|
211 |
__( '%search% - What was searched for', 'all_in_one_seo_pack' ) . '</li></ul>',
|
212 |
'type' => 'text',
|
213 |
'default' => '%search% | %blog_title%',
|
214 |
'condshow' => Array( "aiosp_rewrite_titles" => 1 ) ),
|
215 |
-
|
|
|
216 |
'name' => __( 'Description Format', 'all_in_one_seo_pack' ),
|
217 |
-
'help_text' => __( 'The following macros are supported:
|
218 |
'<ul><li>' . __( '%blog_title% - Your blog title', 'all_in_one_seo_pack' ) . '</li><li>' .
|
219 |
__( '%blog_description% - Your blog description', 'all_in_one_seo_pack' ) . '</li><li>' .
|
220 |
__( '%description% - The original description as determined by the plugin, e.g. the excerpt if one is set or an auto-generated one if that option is set', 'all_in_one_seo_pack' ) . '</li><li>' .
|
@@ -222,9 +253,10 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
222 |
'type' => 'text',
|
223 |
'default' => '%description%',
|
224 |
'condshow' => Array( "aiosp_rewrite_titles" => 1 ) ),
|
225 |
-
|
|
|
226 |
'name' => __( '404 Title Format:', 'all_in_one_seo_pack' ),
|
227 |
-
'help_text' => __( 'The following macros are supported:
|
228 |
'<ul><li>' . __( '%blog_title% - Your blog title', 'all_in_one_seo_pack' ) . '</li><li>' .
|
229 |
__( '%blog_description% - Your blog description', 'all_in_one_seo_pack' ) . '</li><li>' .
|
230 |
__( '%request_url% - The original URL path, like "/url-that-does-not-exist/"', 'all_in_one_seo_pack' ) . '</li><li>' .
|
@@ -233,25 +265,28 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
233 |
'type' => 'text',
|
234 |
'default' => 'Nothing found for %request_words%',
|
235 |
'condshow' => Array( "aiosp_rewrite_titles" => 1 ) ),
|
|
|
236 |
"paged_format"=> Array(
|
237 |
'name' => __( 'Paged Format:', 'all_in_one_seo_pack' ),
|
238 |
-
'help_text' => __(
|
239 |
. __( 'The following macros are supported:', 'all_in_one_seo_pack' )
|
240 |
. '<ul><li>' . __( '%page% - The page number', 'all_in_one_seo_pack' ) . '</li></ul>',
|
241 |
'type' => 'text',
|
242 |
'default' => ' - Part %page%',
|
243 |
'condshow' => Array( "aiosp_rewrite_titles" => 1 ) ),
|
|
|
244 |
"enablecpost"=> Array(
|
245 |
'name' => __( 'SEO for Custom Post Types:', 'all_in_one_seo_pack' ),
|
246 |
-
'help_text' => __(
|
247 |
'default' => 'on',
|
248 |
'type' => 'radio',
|
249 |
'initial_options' => Array( 'on' => __( 'Enabled', 'all_in_one_seo_pack' ),
|
250 |
0 => __( 'Disabled', 'all_in_one_seo_pack' ) )
|
251 |
),
|
|
|
252 |
"cpostadvanced" => Array(
|
253 |
'name' => __( 'Enable Advanced Options:', 'all_in_one_seo_pack' ),
|
254 |
-
'help_text' => __(
|
255 |
'default' => 0,
|
256 |
'type' => 'radio',
|
257 |
'initial_options' => Array( 'on' => __( 'Enabled', 'all_in_one_seo_pack' ),
|
@@ -259,156 +294,184 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
259 |
'label' => null,
|
260 |
'condshow' => Array( "aiosp_enablecpost" => 'on' )
|
261 |
),
|
|
|
262 |
"cpostactive" => Array(
|
263 |
'name' => __( 'SEO on only these post types:', 'all_in_one_seo_pack' ),
|
264 |
-
'help_text' => __(
|
265 |
'type' => 'multicheckbox',
|
266 |
'default' => array('post', 'page'),
|
267 |
'condshow' => Array( 'aiosp_enablecpost' => 'on', 'aiosp_cpostadvanced' => 'on' )
|
268 |
),
|
269 |
-
|
270 |
-
'name' => __( 'Default to NOINDEX:', 'all_in_one_seo_pack' ),
|
271 |
-
'help_text' => __( 'Select noindex robots meta on specific custom post types by default.', 'all_in_one_seo_pack' ),
|
272 |
-
'type' => 'multicheckbox',
|
273 |
-
'default' => array(),
|
274 |
-
'condshow' => Array( 'aiosp_enablecpost' => 'on', 'aiosp_cpostadvanced' => 'on' )
|
275 |
-
),
|
276 |
-
"cpostnofollow" => Array(
|
277 |
-
'name' => __( 'Default to NOFOLLOW:', 'all_in_one_seo_pack' ),
|
278 |
-
'help_text' => __( 'Select nofollow robots meta on specific custom post types by default.', 'all_in_one_seo_pack' ),
|
279 |
-
'type' => 'multicheckbox',
|
280 |
-
'default' => array(),
|
281 |
-
'condshow' => Array( 'aiosp_enablecpost' => 'on', 'aiosp_cpostadvanced' => 'on' )
|
282 |
-
),
|
283 |
"cposttitles" => Array(
|
284 |
'name' => __( 'Custom titles:', 'all_in_one_seo_pack' ),
|
285 |
-
'help_text' => __(
|
286 |
'type' => 'checkbox',
|
287 |
'default' => 0,
|
288 |
'condshow' => Array( 'aiosp_enablecpost' => 'on', 'aiosp_cpostadvanced' => 'on' )
|
289 |
),
|
|
|
290 |
"posttypecolumns" => Array(
|
291 |
-
'name' => __( 'Show
|
292 |
-
'help_text' => __(
|
293 |
'type' => 'multicheckbox',
|
294 |
'default' => array('post', 'page') ),
|
|
|
295 |
"admin_bar" => Array(
|
296 |
'name' => __( 'Display Menu In Admin Bar:', 'all_in_one_seo_pack' ),
|
297 |
-
'help_text' => __(
|
298 |
'default' => 'on',
|
299 |
),
|
|
|
300 |
"custom_menu_order" => Array(
|
301 |
'name' => __( 'Display Menu At The Top:', 'all_in_one_seo_pack' ),
|
302 |
-
'help_text' => __(
|
303 |
'default' => 'on',
|
304 |
),
|
|
|
305 |
"google_verify" => Array(
|
306 |
'name' => __( 'Google Webmaster Tools:', 'all_in_one_seo_pack' ),
|
307 |
-
'help_text' => __(
|
308 |
'default' => '', 'type' => 'text' ),
|
|
|
309 |
"bing_verify" => Array(
|
310 |
'name' => __( 'Bing Webmaster Center:', 'all_in_one_seo_pack' ),
|
311 |
-
'help_text' => __(
|
312 |
'default' => '', 'type' => 'text' ),
|
|
|
313 |
"pinterest_verify" => Array(
|
314 |
'name' => __( 'Pinterest Site Verification:', 'all_in_one_seo_pack' ),
|
315 |
-
'help_text' => __(
|
316 |
'default' => '', 'type' => 'text' ),
|
|
|
317 |
"google_publisher"=> Array(
|
318 |
'name' => __( 'Google Plus Default Profile:', 'all_in_one_seo_pack' ),
|
319 |
-
'help_text' => __(
|
320 |
'default' => '', 'type' => 'text' ),
|
|
|
321 |
"google_disable_profile"=> Array(
|
322 |
'name' => __( 'Disable Google Plus Profile:', 'all_in_one_seo_pack' ),
|
323 |
-
'help_text' => __(
|
324 |
'default' => 0, 'type' => 'checkbox' ),
|
|
|
325 |
"google_analytics_id"=> Array(
|
326 |
'name' => __( 'Google Analytics ID:', 'all_in_one_seo_pack' ),
|
327 |
-
'help_text' => __(
|
328 |
'default' => null, 'type' => 'text' ),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
329 |
"ga_domain"=> Array(
|
330 |
'name' => __( 'Tracking Domain:', 'all_in_one_seo_pack' ),
|
331 |
'type' => 'text',
|
332 |
-
'help_text' => __(
|
333 |
'condshow' => Array( 'aiosp_google_analytics_id' => Array( 'lhs' => 'aiosp_google_analytics_id', 'op' => '!=', 'rhs' => '' ) ) ),
|
|
|
334 |
"ga_multi_domain"=> Array(
|
335 |
'name' => __( 'Track Multiple Domains:', 'all_in_one_seo_pack' ),
|
336 |
-
'help_text' => __(
|
337 |
'default' => 0,
|
338 |
'condshow' => Array( 'aiosp_google_analytics_id' => Array( 'lhs' => 'aiosp_google_analytics_id', 'op' => '!=', 'rhs' => '' ) ) ),
|
|
|
339 |
"ga_track_outbound_links"=> Array(
|
340 |
'name' => __( 'Track Outbound Links:', 'all_in_one_seo_pack' ),
|
341 |
-
'help_text' => __(
|
342 |
'default' => 0,
|
343 |
'condshow' => Array( 'aiosp_google_analytics_id' => Array( 'lhs' => 'aiosp_google_analytics_id', 'op' => '!=', 'rhs' => '' ) ) ),
|
344 |
-
|
345 |
-
|
346 |
-
'
|
347 |
-
'
|
348 |
-
'
|
349 |
-
|
350 |
-
'
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
'
|
356 |
-
'
|
357 |
-
'default' =>
|
358 |
-
'condshow' => Array(
|
|
|
|
|
359 |
"category_noindex"=> Array(
|
360 |
-
'name' => __( 'Use
|
361 |
-
'help_text' => __(
|
362 |
'default' => 1),
|
|
|
363 |
"archive_date_noindex"=> Array(
|
364 |
-
'name' => __( 'Use
|
365 |
-
'help_text' => __(
|
366 |
'default' => 1),
|
|
|
367 |
"archive_author_noindex"=> Array(
|
368 |
-
'name' => __( 'Use
|
369 |
-
'help_text' => __(
|
370 |
'default' => 1),
|
|
|
371 |
"tags_noindex"=> Array(
|
372 |
-
'name' => __( 'Use
|
373 |
-
'help_text' => __(
|
|
|
|
|
|
|
|
|
|
|
374 |
'default' => 0),
|
|
|
375 |
"generate_descriptions"=> Array(
|
376 |
'name' => __( 'Autogenerate Descriptions:', 'all_in_one_seo_pack' ),
|
377 |
-
'help_text' => __( "Check this and your
|
378 |
'default' => 1),
|
|
|
379 |
"hide_paginated_descriptions"=> Array(
|
380 |
'name' => __( 'Remove Descriptions For Paginated Pages:', 'all_in_one_seo_pack' ),
|
381 |
-
'help_text' => __( "Check this and your
|
382 |
'default' => 0),
|
|
|
383 |
"unprotect_meta"=> Array(
|
384 |
'name' => __( 'Unprotect Post Meta Fields:', 'all_in_one_seo_pack' ),
|
385 |
-
'help_text' => __( "
|
386 |
'default' => 0),
|
|
|
387 |
"ex_pages" => Array(
|
388 |
'name' => __( 'Exclude Pages:', 'all_in_one_seo_pack' ),
|
389 |
-
'help_text' => __( "Enter
|
390 |
'type' => 'textarea', 'default' => '' ),
|
|
|
391 |
"post_meta_tags"=> Array(
|
392 |
'name' => __( 'Additional Post Headers:', 'all_in_one_seo_pack' ),
|
393 |
-
'help_text' => __(
|
394 |
'type' => 'textarea', 'default' => '', 'sanitize' => 'default' ),
|
|
|
395 |
"page_meta_tags"=> Array(
|
396 |
'name' => __( 'Additional Page Headers:', 'all_in_one_seo_pack' ),
|
397 |
-
'help_text' => __(
|
398 |
'type' => 'textarea', 'default' => '', 'sanitize' => 'default' ),
|
|
|
399 |
"front_meta_tags"=> Array(
|
400 |
'name' => __( 'Additional Front Page Headers:', 'all_in_one_seo_pack' ),
|
401 |
-
'help_text' => __(
|
402 |
'type' => 'textarea', 'default' => '', 'sanitize' => 'default' ),
|
|
|
403 |
"home_meta_tags"=> Array(
|
404 |
'name' => __( 'Additional Blog Page Headers:', 'all_in_one_seo_pack' ),
|
405 |
-
'help_text' => __(
|
406 |
'type' => 'textarea', 'default' => '', 'sanitize' => 'default' ),
|
407 |
-
|
408 |
-
'name' => __( 'Log important events:', 'all_in_one_seo_pack' ),
|
409 |
-
'help_text' => __( 'Check this and SEO pack will create a log of important events (all_in_one_seo_pack.log) in its plugin directory which might help debugging it. Make sure this directory is writable.', 'all_in_one_seo_pack' ),
|
410 |
-
'default' => null ),
|
411 |
);
|
|
|
412 |
|
413 |
$this->locations = Array(
|
414 |
'default' => Array( 'name' => $this->name, 'prefix' => 'aiosp_', 'type' => 'settings', 'options' => null ),
|
@@ -418,7 +481,7 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
418 |
'edit' => Array( 'type' => 'hidden', 'default' => 'aiosp_edit', 'prefix' => true, 'nowrap' => 1 ),
|
419 |
'nonce-aioseop-edit' => Array( 'type' => 'hidden', 'default' => null, 'prefix' => false, 'nowrap' => 1 ),
|
420 |
'upgrade' => Array( 'type' => 'html', 'label' => 'none',
|
421 |
-
'default' => '<a target="__blank" href="http://semperplugins.com/plugins/all-in-one-seo-pack-pro-version
|
422 |
. __( 'Upgrade to All in One SEO Pack Pro Version', 'all_in_one_seo_pack' ) . '</a>'
|
423 |
),
|
424 |
'snippet' => Array( 'name' => __( 'Preview Snippet', 'all_in_one_seo_pack' ), 'type' => 'custom', 'help_text' => __( 'A preview of what this page might look like in search engine results.', 'all_in_one_seo_pack' ), 'label' => 'top',
|
@@ -452,43 +515,53 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
452 |
$this->layout = Array(
|
453 |
'default' => Array(
|
454 |
'name' => __( 'General Settings', 'all_in_one_seo_pack' ),
|
|
|
455 |
'options' => Array() // this is set below, to the remaining options -- pdb
|
456 |
),
|
457 |
'home' => Array(
|
458 |
'name' => __( 'Home Page Settings', 'all_in_one_seo_pack' ),
|
|
|
459 |
'options' => Array( 'home_title', 'home_description', 'home_keywords' )
|
460 |
),
|
461 |
'keywords' => Array(
|
462 |
'name' => __( 'Keyword Settings', 'all_in_one_seo_pack' ),
|
|
|
463 |
'options' => Array( "togglekeywords", "use_categories", "use_tags_as_keywords", "dynamic_postspage_keywords" )
|
464 |
),
|
465 |
'title' => Array(
|
466 |
'name' => __( 'Title Settings', 'all_in_one_seo_pack' ),
|
|
|
467 |
'options' => Array( "rewrite_titles", "force_rewrites", "cap_titles", "cap_cats", "page_title_format", "post_title_format", "category_title_format", "archive_title_format", "author_title_format",
|
468 |
"tag_title_format", "search_title_format", "description_format", "404_title_format", "paged_format" )
|
469 |
),
|
470 |
'cpt' => Array(
|
471 |
'name' => __( 'Custom Post Type Settings', 'all_in_one_seo_pack' ),
|
|
|
472 |
'options' => Array( "enablecpost", "cpostadvanced", "cpostactive", "cposttitles" )
|
473 |
),
|
474 |
'display' => Array(
|
475 |
'name' => __( 'Display Settings', 'all_in_one_seo_pack' ),
|
|
|
476 |
'options' => Array( "posttypecolumns", "admin_bar", "custom_menu_order" )
|
477 |
),
|
478 |
'webmaster' => Array(
|
479 |
'name' => __( 'Webmaster Verification', 'all_in_one_seo_pack' ),
|
|
|
480 |
'options' => Array( "google_verify", "bing_verify", "pinterest_verify" )
|
481 |
),
|
482 |
'google' => Array(
|
483 |
'name' => __( 'Google Settings', 'all_in_one_seo_pack' ),
|
484 |
-
'
|
|
|
485 |
),
|
486 |
'noindex' => Array(
|
487 |
'name' => __( 'Noindex Settings', 'all_in_one_seo_pack' ),
|
488 |
-
'
|
|
|
489 |
),
|
490 |
'advanced' => Array(
|
491 |
'name' => __( 'Advanced Settings', 'all_in_one_seo_pack' ),
|
|
|
492 |
'options' => Array( 'generate_descriptions', 'hide_paginated_descriptions', 'unprotect_meta', 'ex_pages', 'post_meta_tags', 'page_meta_tags', 'front_meta_tags', 'home_meta_tags' )
|
493 |
)
|
494 |
);
|
@@ -711,16 +784,16 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
711 |
}
|
712 |
|
713 |
function add_admin_pointers() {
|
714 |
-
$this->pointers['
|
715 |
'pointer_text' => '<h3>' . sprintf( __( 'Welcome to Version %s!', 'all_in_one_seo_pack' ), AIOSEOP_VERSION )
|
716 |
. '</h3><p>' . __( 'Thank you for running the latest and greatest All in One SEO Pack ever! Please review your settings, as we\'re always adding new features for you!', 'all_in_one_seo_pack' ) . '</p>',
|
717 |
'pointer_edge' => 'top',
|
718 |
'pointer_align' => 'left',
|
719 |
'pointer_scope' => 'global'
|
720 |
);
|
721 |
-
$this->pointers['
|
722 |
'pointer_text' => '<h3>' . sprintf( __( 'Review Your Settings', 'all_in_one_seo_pack' ), AIOSEOP_VERSION )
|
723 |
-
. '</h3><p>' . __( 'Thank you for running the latest and greatest All in One SEO Pack ever! New
|
724 |
'pointer_edge' => 'bottom',
|
725 |
'pointer_align' => 'left',
|
726 |
'pointer_scope' => 'local'
|
@@ -769,7 +842,7 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
769 |
$get_opts = $this->default_options( $location );
|
770 |
foreach ( Array( 'keywords', 'description', 'title', 'sitemap_exclude', 'disable', 'disable_analytics', 'noindex', 'nofollow', 'noodp', 'noydir', 'titleatr', 'menulabel' ) as $f ) {
|
771 |
$field = "aiosp_$f";
|
772 |
-
$get_opts[$field] = htmlspecialchars(
|
773 |
}
|
774 |
$opts = wp_parse_args( $opts, $get_opts );
|
775 |
return $opts;
|
@@ -859,7 +932,7 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
859 |
<a target="_blank" title="<?php _e('All in One SEO Plugin Support Forum', 'all_in_one_seo_pack' ); ?>"
|
860 |
href="http://semperplugins.com/support/"><?php _e('Support Forum', 'all_in_one_seo_pack' ); ?></a>
|
861 |
| <strong><a target="_blank" title="<?php _e('Pro Version', 'all_in_one_seo_pack' ); ?>"
|
862 |
-
href="http://semperplugins.com/plugins/all-in-one-seo-pack-pro-version
|
863 |
<?php _e('UPGRADE TO PRO VERSION', 'all_in_one_seo_pack' ); ?></a></strong></p>
|
864 |
</div>
|
865 |
<?php
|
@@ -938,9 +1011,9 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
938 |
$post = $this->get_queried_object();
|
939 |
|
940 |
if ( is_single() || is_page() ) {
|
941 |
-
$aiosp_disable = htmlspecialchars(
|
942 |
if ( $aiosp_disable ) {
|
943 |
-
$aiosp_disable_analytics = htmlspecialchars(
|
944 |
if ( !$aiosp_disable_analytics ) {
|
945 |
if ( aioseop_option_isset( 'aiosp_google_analytics_id' ) ) {
|
946 |
remove_action( 'aioseop_modules_wp_head', array( $this, 'aiosp_google_analytics' ) );
|
@@ -953,7 +1026,7 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
953 |
if ( !empty( $aioseop_options['aiosp_cpostadvanced'] ) ) {
|
954 |
$wp_post_types = $aioseop_options['aiosp_cpostactive'];
|
955 |
if ( empty( $aioseop_options['aiosp_cpostactive'] ) ) return;
|
956 |
-
if( !is_singular( $wp_post_types ) ) return;
|
957 |
}
|
958 |
}
|
959 |
|
@@ -1026,15 +1099,27 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
1026 |
if ( is_feed() ) return;
|
1027 |
|
1028 |
if( aioseop_mrt_exclude_this_page() ) return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1029 |
|
1030 |
global $wp_query;
|
1031 |
global $aioseop_options;
|
1032 |
-
$post = $this->get_queried_object();
|
1033 |
$meta_string = null;
|
1034 |
$description = '';
|
1035 |
-
|
1036 |
if ( is_single() || is_page() ) {
|
1037 |
-
$aiosp_disable = htmlspecialchars(
|
1038 |
if ( $aiosp_disable ) return;
|
1039 |
if( empty( $aioseop_options['aiosp_enablecpost'] ) ) {
|
1040 |
$wp_post_types = get_post_types( Array( '_builtin' => true ) ); // don't display meta if SEO isn't enabled on custom post types -- pdb
|
@@ -1089,9 +1174,9 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
1089 |
if ( $is_front_page_keywords )
|
1090 |
$keywords = trim( $this->internationalize( $aioseop_options['aiosp_home_keywords'] ) );
|
1091 |
elseif ( $this->is_static_posts_page() && !$aioseop_options['aiosp_dynamic_postspage_keywords'] ) // and if option = use page set keywords instead of keywords from recent posts
|
1092 |
-
$keywords =
|
1093 |
elseif ( !empty( $blog_page ) && !$aioseop_options['aiosp_dynamic_postspage_keywords'] )
|
1094 |
-
$keywords =
|
1095 |
else $keywords = $this->get_all_keywords();
|
1096 |
|
1097 |
if ( is_category() && $this->show_page_description() )
|
@@ -1103,14 +1188,13 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
1103 |
elseif ( is_author() && $this->show_page_description() )
|
1104 |
$description = $this->internationalize( get_the_author_meta( 'description' ) );
|
1105 |
else if ( $is_front_page )
|
1106 |
-
$description = trim(
|
1107 |
else if ( is_single() || is_page() || is_home() || $this->is_static_posts_page() )
|
1108 |
-
|
1109 |
-
$description = $this->get_aioseop_description( $post );
|
1110 |
|
1111 |
/*
|
1112 |
if ( $this->is_static_front_page() )
|
1113 |
-
$description = trim(
|
1114 |
elseif ( !empty( $blog_page ) )
|
1115 |
$description = $this->get_post_description( $blog_page );
|
1116 |
if ( empty( $description ) && is_object( $post ) && !is_archive() && empty( $blog_page ) )
|
@@ -1165,23 +1249,25 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
1165 |
|
1166 |
if ( isset( $keywords ) && $togglekeywords == 0 && !empty( $keywords ) && !( is_home() && is_paged() ) ) {
|
1167 |
if ( isset( $meta_string ) ) $meta_string .= "\n";
|
1168 |
-
$keywords = str_replace( '"', '', $keywords );
|
1169 |
$meta_string .= sprintf( "<meta name=\"keywords\" content=\"%s\" />\n", $keywords );
|
1170 |
}
|
1171 |
|
1172 |
$is_tag = is_tag();
|
1173 |
|
|
|
|
|
1174 |
if ( ( is_category() && $aioseop_options['aiosp_category_noindex'] ) || ( !is_category() && is_archive() &&!$is_tag
|
1175 |
&& ( ( $aioseop_options['aiosp_archive_date_noindex'] && is_date() ) || ( $aioseop_options['aiosp_archive_author_noindex'] && is_author() ) ) )
|
1176 |
-
|| ( $aioseop_options['aiosp_tags_noindex'] && $is_tag ) ) {
|
1177 |
-
$
|
1178 |
} else {
|
1179 |
if ( is_single() || is_page() ) {
|
1180 |
$post_type = get_post_type();
|
1181 |
-
$aiosp_noindex = htmlspecialchars(
|
1182 |
-
$aiosp_nofollow = htmlspecialchars(
|
1183 |
-
$aiosp_noodp = htmlspecialchars(
|
1184 |
-
$aiosp_noydir = htmlspecialchars(
|
1185 |
if ( $aiosp_noindex || $aiosp_nofollow || $aiosp_noodp || $aiosp_noydir || !empty( $aioseop_options['aiosp_cpostnoindex'] ) || !empty( $aioseop_options['aiosp_cpostnofollow'] ) ) {
|
1186 |
$noindex = "index";
|
1187 |
$nofollow = "follow";
|
@@ -1194,11 +1280,15 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
1194 |
$nofollow = "no" . $nofollow;
|
1195 |
if ( $aiosp_noodp ) $nofollow .= ',noodp';
|
1196 |
if ( $aiosp_noydir ) $nofollow .= ',noydir';
|
1197 |
-
$
|
1198 |
}
|
1199 |
}
|
1200 |
}
|
1201 |
|
|
|
|
|
|
|
|
|
1202 |
if ( $is_front_page )
|
1203 |
foreach( Array( 'google' => 'google-site-verification', 'bing' => 'msvalidate.01', 'pinterest' => 'p:domain_verify' ) as $k => $v )
|
1204 |
if ( !empty( $aioseop_options["aiosp_{$k}_verify"] ) )
|
@@ -1206,7 +1296,7 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
1206 |
|
1207 |
foreach( Array( 'page_meta', 'post_meta', 'home_meta', 'front_meta' ) as $meta ) {
|
1208 |
if ( !empty( $aioseop_options["aiosp_{$meta}_tags" ] ) )
|
1209 |
-
$$meta = html_entity_decode(
|
1210 |
else
|
1211 |
$$meta = '';
|
1212 |
}
|
@@ -1220,6 +1310,8 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
1220 |
if ( isset( $meta_string ) ) $meta_string .= "\n";
|
1221 |
$meta_string .= $post_meta;
|
1222 |
}
|
|
|
|
|
1223 |
|
1224 |
if ( !empty( $post ) && isset( $post->post_author ) && empty( $aioseop_options['aiosp_google_disable_profile'] ) )
|
1225 |
$googleplus = get_the_author_meta( 'googleplus', $post->post_author );
|
@@ -1228,12 +1320,22 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
1228 |
$googleplus = $aioseop_options['aiosp_google_publisher'];
|
1229 |
|
1230 |
if ( $is_front_page && !empty( $aioseop_options['aiosp_google_publisher'] ) )
|
1231 |
-
$
|
1232 |
-
|
1233 |
-
|
1234 |
-
|
1235 |
-
|
1236 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1237 |
|
1238 |
if ( $is_front_page && !empty( $front_meta ) ) {
|
1239 |
if ( isset( $meta_string ) ) $meta_string .= "\n";
|
@@ -1314,14 +1416,47 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
1314 |
echo "<!-- /all in one seo pack -->\n";
|
1315 |
}
|
1316 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1317 |
function aiosp_google_analytics() {
|
1318 |
global $aioseop_options;
|
|
|
|
|
1319 |
ob_start();
|
1320 |
-
|
1321 |
-
|
1322 |
-
|
|
|
1323 |
var _gaq = _gaq || [];
|
1324 |
-
_gaq.push(['_setAccount', '<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
1325 |
<?php if ( !empty( $aioseop_options['aiosp_ga_multi_domain'] ) ) {
|
1326 |
?> _gaq.push(['_setAllowLinker', true]);
|
1327 |
<?php
|
@@ -1343,18 +1478,22 @@ function aiosp_google_analytics() {
|
|
1343 |
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
1344 |
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
1345 |
})();
|
1346 |
-
|
1347 |
</script>
|
1348 |
<?php
|
1349 |
-
|
1350 |
-
?>
|
1351 |
<script type="text/javascript">
|
1352 |
-
|
1353 |
-
|
1354 |
-
|
1355 |
-
|
1356 |
-
|
1357 |
-
|
|
|
|
|
|
|
|
|
|
|
1358 |
/* use regular Javascript for this */
|
1359 |
function getAttr(ele, attr) {
|
1360 |
var result = (ele.getAttribute && ele.getAttribute(attr)) || null;
|
@@ -1383,8 +1522,9 @@ function aiosp_google_analytics() {
|
|
1383 |
};
|
1384 |
</script>
|
1385 |
<?php
|
1386 |
-
|
1387 |
$analytics = ob_get_clean();
|
|
|
1388 |
echo apply_filters( 'aiosp_google_analytics', $analytics );
|
1389 |
}
|
1390 |
|
@@ -1485,7 +1625,7 @@ function aiosp_google_analytics() {
|
|
1485 |
if ( !$this->show_page_description() )
|
1486 |
return '';
|
1487 |
|
1488 |
-
$description = trim(
|
1489 |
if ( !$description ) {
|
1490 |
$description = $this->trim_excerpt_without_filters_full_length( $this->internationalize( $post->post_excerpt ) );
|
1491 |
if ( !$description && $aioseop_options["aiosp_generate_descriptions"] ) {
|
@@ -1514,16 +1654,13 @@ function aiosp_google_analytics() {
|
|
1514 |
return $blog_page;
|
1515 |
}
|
1516 |
|
1517 |
-
function get_aioseop_description( $
|
1518 |
global $aioseop_options;
|
1519 |
-
if ( $
|
1520 |
-
|
1521 |
-
} else {
|
1522 |
-
$post = $p;
|
1523 |
-
}
|
1524 |
$blog_page = $this->get_blog_page();
|
1525 |
if ( $this->is_static_front_page() )
|
1526 |
-
$description = trim(
|
1527 |
elseif ( !empty( $blog_page ) )
|
1528 |
$description = $this->get_post_description( $blog_page );
|
1529 |
if ( empty( $description ) && is_object( $post ) && !is_archive() && empty( $blog_page ) )
|
@@ -1537,7 +1674,7 @@ function aiosp_google_analytics() {
|
|
1537 |
$title_tag_start = "<title>";
|
1538 |
$title_tag_end = "</title>";
|
1539 |
$len_start = $this->strlen( $title_tag_start );
|
1540 |
-
$title =
|
1541 |
$start = $this->strpos( $content, $title_tag_start );
|
1542 |
$end = $this->strpos( $content, $title_tag_end );
|
1543 |
|
@@ -1585,7 +1722,7 @@ function aiosp_google_analytics() {
|
|
1585 |
} else if ( is_single() ) {
|
1586 |
$title = $this->internationalize( single_post_title( '', false ) );
|
1587 |
} else if ( is_search() && isset($s) && !empty($s) ) {
|
1588 |
-
$search = esc_attr(
|
1589 |
if ( !empty( $aioseop_options['aiosp_cap_titles'] ) )
|
1590 |
$search = $this->capitalize( $search );
|
1591 |
$title = $search;
|
@@ -1773,13 +1910,14 @@ function aiosp_google_analytics() {
|
|
1773 |
$title = $this->paged_title( $title );
|
1774 |
return apply_filters( 'aioseop_title_single', $title );
|
1775 |
} else if ( is_search() && isset( $s ) && !empty( $s ) ) {
|
1776 |
-
$search = esc_attr(
|
1777 |
if ( !empty( $aioseop_options['aiosp_cap_titles'] ) )
|
1778 |
$search = $this->capitalize( $search );
|
1779 |
$title_format = $aioseop_options['aiosp_search_title_format'];
|
1780 |
$title = str_replace( '%blog_title%', $this->internationalize( get_bloginfo( 'name' ) ), $title_format );
|
1781 |
$title = str_replace( '%blog_description%', $this->internationalize( get_bloginfo( 'description' ) ), $title );
|
1782 |
-
$title = str_replace( '%search%', $search, $title);
|
|
|
1783 |
return $title;
|
1784 |
} else if ( is_tag() ) {
|
1785 |
global $utw;
|
@@ -1934,14 +2072,14 @@ function aiosp_google_analytics() {
|
|
1934 |
}
|
1935 |
}
|
1936 |
$text = $this->substr( $text, 0, $max );
|
1937 |
-
return trim(
|
1938 |
}
|
1939 |
|
1940 |
function trim_excerpt_without_filters_full_length( $text ) {
|
1941 |
$text = str_replace( ']]>', ']]>', $text );
|
1942 |
$text = preg_replace( '|\[(.+?)\](.+?\[/\\1\])?|s', '', $text );
|
1943 |
$text = strip_tags( $text );
|
1944 |
-
return trim(
|
1945 |
}
|
1946 |
|
1947 |
/**
|
@@ -1965,11 +2103,11 @@ function aiosp_google_analytics() {
|
|
1965 |
$keywords_i = null;
|
1966 |
|
1967 |
$id = $post->ID;
|
1968 |
-
$keywords_i =
|
1969 |
if ( is_attachment() ) {
|
1970 |
$id = $post->post_parent;
|
1971 |
if ( empty( $keywords_i ) )
|
1972 |
-
$keywords_i =
|
1973 |
}
|
1974 |
$keywords_i = str_replace( '"', '', $keywords_i );
|
1975 |
if (isset( $keywords_i ) && !empty( $keywords_i ) ) {
|
@@ -1993,13 +2131,13 @@ function aiosp_google_analytics() {
|
|
1993 |
$tag = $tag->tag;
|
1994 |
$tag = str_replace( '_', ' ', $tag );
|
1995 |
$tag = str_replace( '-', ' ', $tag );
|
1996 |
-
$tag =
|
1997 |
$keywords[] = $tag;
|
1998 |
}
|
1999 |
}
|
2000 |
|
2001 |
// autometa
|
2002 |
-
$autometa =
|
2003 |
if ( isset( $autometa ) && !empty( $autometa ) ) {
|
2004 |
$autometa_array = explode( ' ', $autometa );
|
2005 |
foreach ( $autometa_array as $e )
|
@@ -2026,7 +2164,7 @@ function aiosp_google_analytics() {
|
|
2026 |
if ( $post ) {
|
2027 |
// custom field keywords
|
2028 |
$keywords_i = null;
|
2029 |
-
$keywords_i =
|
2030 |
$keywords_i = str_replace( '"', '', $keywords_i );
|
2031 |
if ( isset( $keywords_i) && !empty( $keywords_i ) )
|
2032 |
$keywords[] = $keywords_i;
|
@@ -2128,7 +2266,7 @@ function aiosp_google_analytics() {
|
|
2128 |
|
2129 |
function admin_bar_upgrade_menu() {
|
2130 |
global $wp_admin_bar;
|
2131 |
-
$wp_admin_bar->add_menu( array( 'parent' => AIOSEOP_PLUGIN_DIRNAME, 'title' => __( 'Upgrade To Pro', 'all_in_one_seo_pack' ), 'id' => 'aioseop-pro-upgrade', 'href' => 'http://semperplugins.com/plugins/all-in-one-seo-pack-pro-version
|
2132 |
}
|
2133 |
|
2134 |
function menu_order() {
|
@@ -2208,7 +2346,7 @@ function aiosp_google_analytics() {
|
|
2208 |
do_action( 'aioseop_modules_add_menus', $file );
|
2209 |
|
2210 |
$metaboxes = apply_filters( 'aioseop_add_post_metabox', Array() );
|
2211 |
-
|
2212 |
if ( !empty( $metaboxes ) ) {
|
2213 |
if ( $this->tabbed_metaboxes ) {
|
2214 |
$tabs = Array();
|
@@ -2223,7 +2361,9 @@ function aiosp_google_analytics() {
|
|
2223 |
$tab_num = count( $m );
|
2224 |
$title = $m[0]['title'];
|
2225 |
if ( $title != $this->plugin_name ) $title = $this->plugin_name . ' - ' . $title;
|
2226 |
-
if ( $tab_num
|
|
|
|
|
2227 |
add_meta_box( $m[0]['id'], $title, $m[0]['callback'], $m[0]['post_type'], $m[0]['context'], $m[0]['priority'], $m[0]['callback_args'] );
|
2228 |
} elseif ( $tab_num > 1 ) {
|
2229 |
add_meta_box( $m[0]['id'] . '_tabbed', $title, Array( $this, 'display_tabbed_metabox' ), $m[0]['post_type'], $m[0]['context'], $m[0]['priority'], $m );
|
@@ -2233,6 +2373,8 @@ function aiosp_google_analytics() {
|
|
2233 |
} else {
|
2234 |
foreach ( $metaboxes as $m ) {
|
2235 |
$title = $m['title'];
|
|
|
|
|
2236 |
if ( $title != $this->plugin_name ) $title = $this->plugin_name . ' - ' . $title;
|
2237 |
add_meta_box( $m['id'], $title, $m['callback'], $m['post_type'], $m['context'], $m['priority'], $m['callback_args'] );
|
2238 |
}
|
61 |
$this->store_option = true;
|
62 |
$this->file = __FILE__; // the current file
|
63 |
parent::__construct();
|
64 |
+
$this->default_options = array(
|
65 |
+
"donate"=> Array(
|
66 |
+
'name' => __( 'I enjoy this plugin and have made a donation:', 'all_in_one_seo_pack' ),
|
67 |
+
'help_text' => __( "All donations support continued development of this free software.", 'all_in_one_seo_pack' ),
|
68 |
+
'default' => 0),
|
69 |
+
|
70 |
+
"can"=> Array(
|
71 |
+
'name' => __( 'Canonical URLs:', 'all_in_one_seo_pack' ),
|
72 |
+
'help_text' => __( "This option will automatically generate Canonical URLs for your entire WordPress installation. This will help to prevent duplicate content penalties by <a href='http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html' target='_blank'>Google</a>.<br /><a href='http://semperplugins.com/documentation/general-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
73 |
+
'default' => 1),
|
74 |
+
|
75 |
+
"use_original_title"=> Array(
|
76 |
+
'name' => __( 'Use Original Title:', 'all_in_one_seo_pack' ),
|
77 |
+
'help_text' => __( "Use wp_title to set the title; disable this option if you run into conflicts with the title being set by your theme or another plugin.<br /><a href='http://semperplugins.com/documentation/general-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
78 |
+
'type' => 'radio',
|
79 |
+
'default' => 0,
|
80 |
+
'initial_options' => Array( 1 => __( 'Enabled', 'all_in_one_seo_pack' ),
|
81 |
+
0 => __( 'Disabled', 'all_in_one_seo_pack' ) )
|
82 |
+
),
|
83 |
+
|
84 |
+
"do_log"=> Array(
|
85 |
+
'name' => __( 'Log important events:', 'all_in_one_seo_pack' ),
|
86 |
+
'help_text' => __( "Check this and All in One SEO Pack will create a log of important events (all_in_one_seo_pack.log) in its plugin directory which might help debugging. Make sure this directory is writable.<br /><a href='http://semperplugins.com/documentation/general-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
87 |
+
'default' => null ),
|
88 |
+
|
89 |
+
"home_title"=> Array(
|
90 |
'name' => __( 'Home Title:', 'all_in_one_seo_pack' ),
|
91 |
+
'help_text' => __( "As the name implies, this will be the Meta Title of your homepage. This is independent of any other option. If not set, the default Site Title (found in WordPress under Settings, General, Site Title) will be used.<br /><a href='http://semperplugins.com/documentation/home-page-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
92 |
'default' => null, 'type' => 'textarea', 'sanitize' => 'text' ),
|
93 |
+
|
94 |
+
"home_description"=> Array(
|
95 |
'name' => __( 'Home Description:', 'all_in_one_seo_pack' ),
|
96 |
+
'help_text' => __( "This will be the Meta Description for your homepage. This is independent of any other option. The default is no Meta Description at all if this is not set.<br /><a href='http://semperplugins.com/documentation/home-page-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
97 |
'default' => '', 'type' => 'textarea', 'sanitize' => 'text' ),
|
98 |
+
|
99 |
+
"home_keywords"=> Array(
|
100 |
+
'name' => __( 'Home Keywords (comma separated):', 'all_in_one_seo_pack' ),
|
101 |
+
'help_text' => __( "Enter a comma separated list of your most important keywords for your site that will be written as Meta Keywords on your homepage. Don\'t stuff everything in here.<br /><a href='http://semperplugins.com/documentation/home-page-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
102 |
+
'default' => null, 'type' => 'textarea', 'sanitize' => 'text',
|
103 |
+
'condshow' => Array( "aiosp_togglekeywords" => 0 ) ),
|
104 |
+
|
105 |
+
"togglekeywords" => Array(
|
106 |
'name' => __( 'Use Keywords:', 'all_in_one_seo_pack' ),
|
107 |
+
'help_text' => __( "This option allows you to toggle the use of Meta Keywords throughout the whole of the site.<br /><a href='http://semperplugins.com/documentation/keyword-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
108 |
'default' => 0,
|
109 |
'type' => 'radio',
|
110 |
'initial_options' => Array( 0 => __( 'Enabled', 'all_in_one_seo_pack' ),
|
111 |
1 => __( 'Disabled', 'all_in_one_seo_pack' ) )
|
112 |
),
|
113 |
+
|
114 |
+
"use_categories"=> Array(
|
115 |
+
'name' => __( 'Use Categories for Meta Keywords:', 'all_in_one_seo_pack' ),
|
116 |
+
'help_text' => __( "Check this if you want your categories for a given post used as the Meta Keywords for this post (in addition to any keywords you specify on the Edit Post screen).<br /><a href='http://semperplugins.com/documentation/keyword-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
117 |
+
'default' => 0,
|
118 |
'condshow' => Array( "aiosp_togglekeywords" => 0 ) ),
|
119 |
+
|
120 |
+
"use_tags_as_keywords" => Array(
|
121 |
+
'name' => __( 'Use Tags for Meta Keywords:', 'all_in_one_seo_pack' ),
|
122 |
+
'help_text' => __( "Check this if you want your tags for a given post used as the Meta Keywords for this post (in addition to any keywords you specify on the Edit Post screen).<br /><a href='http://semperplugins.com/documentation/keyword-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
123 |
+
'default' => 1,
|
124 |
+
'condshow' => Array( "aiosp_togglekeywords" => 0 ) ),
|
125 |
+
|
126 |
+
"dynamic_postspage_keywords"=> Array(
|
127 |
+
'name' => __( 'Dynamically Generate Keywords for Posts Page:', 'all_in_one_seo_pack' ),
|
128 |
+
'help_text' => __( "Check this if you want your keywords on your Posts page (set in WordPress under Settings, Reading, Front Page Displays) to be dynamically generated from the keywords of the posts showing on that page. If unchecked, it will use the keywords set in the Edit Page screen for the Posts page.<br /><a href='http://semperplugins.com/documentation/keyword-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
129 |
+
'default' => 1,
|
130 |
+
'condshow' => Array( "aiosp_togglekeywords" => 0 ) ),
|
131 |
+
|
132 |
"rewrite_titles"=> Array(
|
133 |
'name' => __( 'Rewrite Titles:', 'all_in_one_seo_pack' ),
|
134 |
+
'help_text' => __( "Note that this is all about the title tag. This is what you see in your browser's window title bar. This is NOT visible on a page, only in the title bar and in the source code. If enabled, all page, post, category, search and archive page titles get rewritten. You can specify the format for most of them. For example: Using the default post title format below, Rewrite Titles will write all post titles as 'Post Title | Blog Name'. If you have manually defined a title using All in One SEO Pack, this will become the title of your post in the format string.<br /><a href='http://semperplugins.com/documentation/title-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
135 |
'default' => 1,
|
136 |
'type' => 'radio',
|
137 |
'initial_options' => Array( 1 => __( 'Enabled', 'all_in_one_seo_pack' ),
|
138 |
0 => __( 'Disabled', 'all_in_one_seo_pack' ) )
|
139 |
),
|
140 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
141 |
"cap_titles"=> Array(
|
142 |
'name' => __( 'Capitalize Titles:', 'all_in_one_seo_pack' ),
|
143 |
+
'help_text' => __( "Check this and Search Page Titles and Tag Page Titles will have the first letter of each word capitalized.<br /><a href='http://semperplugins.com/documentation/title-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
144 |
'default' => 1),
|
145 |
+
|
146 |
"cap_cats"=> Array(
|
147 |
'name' => __( 'Capitalize Category Titles:', 'all_in_one_seo_pack' ),
|
148 |
+
'help_text' => __( "Check this and Category Titles will have the first letter of each word capitalized.<br /><a href='http://semperplugins.com/documentation/title-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
149 |
'default' => 1),
|
150 |
+
|
151 |
+
"page_title_format"=> Array(
|
152 |
'name' => __( 'Page Title Format:', 'all_in_one_seo_pack' ),
|
153 |
'help_text' =>
|
154 |
+
__( "This controls the format of the title tag for Pages.<br /><a href='http://semperplugins.com/documentation/title-settings/' target='_blank'>Click here for documentation on this setting</a><br />The following macros are supported:", 'all_in_one_seo_pack' )
|
155 |
. '<ul><li>' . __( '%blog_title% - Your blog title', 'all_in_one_seo_pack' ) . '</li><li>' .
|
156 |
__( '%blog_description% - Your blog description', 'all_in_one_seo_pack' ) . '</li><li>' .
|
157 |
__( '%page_title% - The original title of the page', 'all_in_one_seo_pack' ) . '</li><li>' .
|
165 |
'type' => 'text',
|
166 |
'default' => '%page_title% | %blog_title%',
|
167 |
'condshow' => Array( "aiosp_rewrite_titles" => 1 ) ),
|
168 |
+
|
169 |
+
"post_title_format"=> Array(
|
170 |
'name' => __( 'Post Title Format:', 'all_in_one_seo_pack' ),
|
171 |
'help_text' =>
|
172 |
+
__( "This controls the format of the title tag for Posts.<br /><a href='http://semperplugins.com/documentation/title-settings/' target='_blank'>Click here for documentation on this setting</a><br />The following macros are supported:", 'all_in_one_seo_pack' )
|
173 |
. '<ul><li>' . __( '%blog_title% - Your blog title', 'all_in_one_seo_pack' ) . '</li><li>' .
|
174 |
__( '%blog_description% - Your blog description', 'all_in_one_seo_pack' ) . '</li><li>' .
|
175 |
__( '%post_title% - The original title of the post', 'all_in_one_seo_pack' ) . '</li><li>' .
|
183 |
'type' => 'text',
|
184 |
'default' => '%post_title% | %blog_title%',
|
185 |
'condshow' => Array( "aiosp_rewrite_titles" => 1 ) ),
|
186 |
+
|
187 |
+
"category_title_format"=> Array(
|
188 |
'name' => __( 'Category Title Format:', 'all_in_one_seo_pack' ),
|
189 |
'help_text' =>
|
190 |
+
__( "This controls the format of the title tag for Category Archives.<br /><a href='http://semperplugins.com/documentation/title-settings/' target='_blank'>Click here for documentation on this setting</a><br />The following macros are supported:", 'all_in_one_seo_pack' ) .
|
191 |
'<ul><li>' . __( '%blog_title% - Your blog title', 'all_in_one_seo_pack' ) . '</li><li>' .
|
192 |
__( '%blog_description% - Your blog description', 'all_in_one_seo_pack' ) . '</li><li>' .
|
193 |
__( '%category_title% - The original title of the category', 'all_in_one_seo_pack' ) . '</li><li>' .
|
195 |
'type' => 'text',
|
196 |
'default' => '%category_title% | %blog_title%',
|
197 |
'condshow' => Array( "aiosp_rewrite_titles" => 1 ) ),
|
198 |
+
|
199 |
+
"archive_title_format"=> Array(
|
200 |
'name' => __( 'Date Archive Title Format:', 'all_in_one_seo_pack' ),
|
201 |
'help_text' =>
|
202 |
+
__( "This controls the format of the title tag for Date Archives.<br /><a href='http://semperplugins.com/documentation/title-settings/' target='_blank'>Click here for documentation on this setting</a><br />The following macros are supported:", 'all_in_one_seo_pack' ) .
|
203 |
'<ul><li>' . __( '%blog_title% - Your blog title', 'all_in_one_seo_pack' ) . '</li><li>' .
|
204 |
__( '%blog_description% - Your blog description', 'all_in_one_seo_pack' ) . '</li><li>' .
|
205 |
__( '%date% - The original archive title given by wordpress, e.g. "2007" or "2007 August"', 'all_in_one_seo_pack' ) . '</li><li>' .
|
209 |
'type' => 'text',
|
210 |
'default' => '%date% | %blog_title%',
|
211 |
'condshow' => Array( "aiosp_rewrite_titles" => 1 ) ),
|
212 |
+
|
213 |
"author_title_format"=> Array(
|
214 |
'name' => __( 'Author Archive Title Format:', 'all_in_one_seo_pack' ),
|
215 |
'help_text' =>
|
216 |
+
__( "This controls the format of the title tag for Author Archives.<br /><a href='http://semperplugins.com/documentation/title-settings/' target='_blank'>Click here for documentation on this setting</a><br />The following macros are supported:", 'all_in_one_seo_pack' ) .
|
217 |
'<ul><li>' . __( '%blog_title% - Your blog title', 'all_in_one_seo_pack' ) . '</li><li>' .
|
218 |
__( '%blog_description% - Your blog description', 'all_in_one_seo_pack' ) . '</li><li>' .
|
219 |
__( '%author% - The original archive title given by wordpress, e.g. "Steve" or "John Smith"', 'all_in_one_seo_pack' ) . '</li></ul>',
|
220 |
'type' => 'text',
|
221 |
'default' => '%author% | %blog_title%',
|
222 |
'condshow' => Array( "aiosp_rewrite_titles" => 1 ) ),
|
223 |
+
|
224 |
+
"tag_title_format"=> Array(
|
225 |
'name' => __( 'Tag Title Format:', 'all_in_one_seo_pack' ),
|
226 |
'help_text' =>
|
227 |
+
__( "This controls the format of the title tag for Tag Archives.<br /><a href='http://semperplugins.com/documentation/title-settings/' target='_blank'>Click here for documentation on this setting</a><br />The following macros are supported:", 'all_in_one_seo_pack' ) .
|
228 |
'<ul><li>' . __( '%blog_title% - Your blog title', 'all_in_one_seo_pack' ) . '</li><li>' .
|
229 |
__( '%blog_description% - Your blog description', 'all_in_one_seo_pack' ) . '</li><li>' .
|
230 |
__( '%tag% - The name of the tag', 'all_in_one_seo_pack' ) . '</li></ul>',
|
231 |
'type' => 'text',
|
232 |
'default' => '%tag% | %blog_title%',
|
233 |
'condshow' => Array( "aiosp_rewrite_titles" => 1 ) ),
|
234 |
+
|
235 |
+
"search_title_format"=> Array(
|
236 |
'name' => __( 'Search Title Format:', 'all_in_one_seo_pack' ),
|
237 |
'help_text' =>
|
238 |
+
__( "This controls the format of the title tag for the Search page.<br /><a href='http://semperplugins.com/documentation/title-settings/' target='_blank'>Click here for documentation on this setting</a><br />The following macros are supported:", 'all_in_one_seo_pack' ) .
|
239 |
'<ul><li>' . __( '%blog_title% - Your blog title', 'all_in_one_seo_pack' ) . '</li><li>' .
|
240 |
__( '%blog_description% - Your blog description', 'all_in_one_seo_pack' ) . '</li><li>' .
|
241 |
__( '%search% - What was searched for', 'all_in_one_seo_pack' ) . '</li></ul>',
|
242 |
'type' => 'text',
|
243 |
'default' => '%search% | %blog_title%',
|
244 |
'condshow' => Array( "aiosp_rewrite_titles" => 1 ) ),
|
245 |
+
|
246 |
+
"description_format"=> Array(
|
247 |
'name' => __( 'Description Format', 'all_in_one_seo_pack' ),
|
248 |
+
'help_text' => __( "This controls the format of Meta Descriptions.<br /><a href='http://semperplugins.com/documentation/title-settings/' target='_blank'>Click here for documentation on this setting</a><br />The following macros are supported:", 'all_in_one_seo_pack' ) .
|
249 |
'<ul><li>' . __( '%blog_title% - Your blog title', 'all_in_one_seo_pack' ) . '</li><li>' .
|
250 |
__( '%blog_description% - Your blog description', 'all_in_one_seo_pack' ) . '</li><li>' .
|
251 |
__( '%description% - The original description as determined by the plugin, e.g. the excerpt if one is set or an auto-generated one if that option is set', 'all_in_one_seo_pack' ) . '</li><li>' .
|
253 |
'type' => 'text',
|
254 |
'default' => '%description%',
|
255 |
'condshow' => Array( "aiosp_rewrite_titles" => 1 ) ),
|
256 |
+
|
257 |
+
"404_title_format"=> Array(
|
258 |
'name' => __( '404 Title Format:', 'all_in_one_seo_pack' ),
|
259 |
+
'help_text' => __( "This controls the format of the title tag for the 404 page.<br /><a href='http://semperplugins.com/documentation/title-settings/' target='_blank'>Click here for documentation on this setting</a><br />The following macros are supported:", 'all_in_one_seo_pack' ) .
|
260 |
'<ul><li>' . __( '%blog_title% - Your blog title', 'all_in_one_seo_pack' ) . '</li><li>' .
|
261 |
__( '%blog_description% - Your blog description', 'all_in_one_seo_pack' ) . '</li><li>' .
|
262 |
__( '%request_url% - The original URL path, like "/url-that-does-not-exist/"', 'all_in_one_seo_pack' ) . '</li><li>' .
|
265 |
'type' => 'text',
|
266 |
'default' => 'Nothing found for %request_words%',
|
267 |
'condshow' => Array( "aiosp_rewrite_titles" => 1 ) ),
|
268 |
+
|
269 |
"paged_format"=> Array(
|
270 |
'name' => __( 'Paged Format:', 'all_in_one_seo_pack' ),
|
271 |
+
'help_text' => __( "This string gets appended/prepended to titles of paged index pages (like home or archive pages).<br /><a href='http://semperplugins.com/documentation/title-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' )
|
272 |
. __( 'The following macros are supported:', 'all_in_one_seo_pack' )
|
273 |
. '<ul><li>' . __( '%page% - The page number', 'all_in_one_seo_pack' ) . '</li></ul>',
|
274 |
'type' => 'text',
|
275 |
'default' => ' - Part %page%',
|
276 |
'condshow' => Array( "aiosp_rewrite_titles" => 1 ) ),
|
277 |
+
|
278 |
"enablecpost"=> Array(
|
279 |
'name' => __( 'SEO for Custom Post Types:', 'all_in_one_seo_pack' ),
|
280 |
+
'help_text' => __( "Check this if you want to use All in One SEO Pack with any Custom Post Types on this site.<br /><a href='http://semperplugins.com/documentation/custom-post-type-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
281 |
'default' => 'on',
|
282 |
'type' => 'radio',
|
283 |
'initial_options' => Array( 'on' => __( 'Enabled', 'all_in_one_seo_pack' ),
|
284 |
0 => __( 'Disabled', 'all_in_one_seo_pack' ) )
|
285 |
),
|
286 |
+
|
287 |
"cpostadvanced" => Array(
|
288 |
'name' => __( 'Enable Advanced Options:', 'all_in_one_seo_pack' ),
|
289 |
+
'help_text' => __( "This will show or hide the advanced options for SEO for Custom Post Types.<br /><a href='http://semperplugins.com/documentation/custom-post-type-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
290 |
'default' => 0,
|
291 |
'type' => 'radio',
|
292 |
'initial_options' => Array( 'on' => __( 'Enabled', 'all_in_one_seo_pack' ),
|
294 |
'label' => null,
|
295 |
'condshow' => Array( "aiosp_enablecpost" => 'on' )
|
296 |
),
|
297 |
+
|
298 |
"cpostactive" => Array(
|
299 |
'name' => __( 'SEO on only these post types:', 'all_in_one_seo_pack' ),
|
300 |
+
'help_text' => __( "Use these checkboxes to select which Post Types you want to use All in One SEO Pack with.<br /><a href='http://semperplugins.com/documentation/custom-post-type-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
301 |
'type' => 'multicheckbox',
|
302 |
'default' => array('post', 'page'),
|
303 |
'condshow' => Array( 'aiosp_enablecpost' => 'on', 'aiosp_cpostadvanced' => 'on' )
|
304 |
),
|
305 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
306 |
"cposttitles" => Array(
|
307 |
'name' => __( 'Custom titles:', 'all_in_one_seo_pack' ),
|
308 |
+
'help_text' => __( "This allows you to set the title tags for each Custom Post Type.<br /><a href='http://semperplugins.com/documentation/custom-post-type-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
309 |
'type' => 'checkbox',
|
310 |
'default' => 0,
|
311 |
'condshow' => Array( 'aiosp_enablecpost' => 'on', 'aiosp_cpostadvanced' => 'on' )
|
312 |
),
|
313 |
+
|
314 |
"posttypecolumns" => Array(
|
315 |
+
'name' => __( 'Show SEO Columns:', 'all_in_one_seo_pack' ),
|
316 |
+
'help_text' => __( "This lets you select which screens display the SEO Title, SEO Keywords and SEO Description columns.<br /><a href='http://semperplugins.com/documentation/display-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
317 |
'type' => 'multicheckbox',
|
318 |
'default' => array('post', 'page') ),
|
319 |
+
|
320 |
"admin_bar" => Array(
|
321 |
'name' => __( 'Display Menu In Admin Bar:', 'all_in_one_seo_pack' ),
|
322 |
+
'help_text' => __( "Check this to add All in One SEO Pack to the Admin Bar for easy access to your SEO settings.<br /><a href='http://semperplugins.com/documentation/display-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
323 |
'default' => 'on',
|
324 |
),
|
325 |
+
|
326 |
"custom_menu_order" => Array(
|
327 |
'name' => __( 'Display Menu At The Top:', 'all_in_one_seo_pack' ),
|
328 |
+
'help_text' => __( "Check this to move the All in One SEO Pack menu item to the top of your WordPress Dashboard menu.<br /><a href='http://semperplugins.com/documentation/display-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
329 |
'default' => 'on',
|
330 |
),
|
331 |
+
|
332 |
"google_verify" => Array(
|
333 |
'name' => __( 'Google Webmaster Tools:', 'all_in_one_seo_pack' ),
|
334 |
+
'help_text' => __( "Enter your verification code here to verify your site with Google Webmaster Tools.<br /><a href='http://semperplugins.com/documentation/google-webmaster-tools-verification/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
335 |
'default' => '', 'type' => 'text' ),
|
336 |
+
|
337 |
"bing_verify" => Array(
|
338 |
'name' => __( 'Bing Webmaster Center:', 'all_in_one_seo_pack' ),
|
339 |
+
'help_text' => __( "Enter your verification code here to verify your site with Bing Webmaster Tools.<br /><a href='http://semperplugins.com/documentation/bing-webmaster-verification/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
340 |
'default' => '', 'type' => 'text' ),
|
341 |
+
|
342 |
"pinterest_verify" => Array(
|
343 |
'name' => __( 'Pinterest Site Verification:', 'all_in_one_seo_pack' ),
|
344 |
+
'help_text' => __( "Enter your verification code here to verify your site with Pinterest.<br /><a href='http://semperplugins.com/documentation/pinterest-site-verification/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
345 |
'default' => '', 'type' => 'text' ),
|
346 |
+
|
347 |
"google_publisher"=> Array(
|
348 |
'name' => __( 'Google Plus Default Profile:', 'all_in_one_seo_pack' ),
|
349 |
+
'help_text' => __( "Enter your Google Plus Profile URL here to link your site to your Google Plus account for authorship.<br /><a href='http://semperplugins.com/documentation/google-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
350 |
'default' => '', 'type' => 'text' ),
|
351 |
+
|
352 |
"google_disable_profile"=> Array(
|
353 |
'name' => __( 'Disable Google Plus Profile:', 'all_in_one_seo_pack' ),
|
354 |
+
'help_text' => __( "Check this to remove the Google Plus field from the user profile screen.<br /><a href='http://semperplugins.com/documentation/google-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
355 |
'default' => 0, 'type' => 'checkbox' ),
|
356 |
+
|
357 |
"google_analytics_id"=> Array(
|
358 |
'name' => __( 'Google Analytics ID:', 'all_in_one_seo_pack' ),
|
359 |
+
'help_text' => __( "Enter your Google Analytics ID here to track visitor behavior on your site using Google Analytics.<br /><a href='http://semperplugins.com/documentation/google-analytics/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
360 |
'default' => null, 'type' => 'text' ),
|
361 |
+
|
362 |
+
"ga_use_universal_analytics" => Array(
|
363 |
+
'name' => __( 'Use Universal Analytics:', 'all_in_one_seo_pack' ),
|
364 |
+
'help_text' => __( "Use the new Universal Analytics tracking code for Google Analytics; do this for new analytics accounts.", 'all_in_one_seo_pack' ),
|
365 |
+
'default' => 0,
|
366 |
+
'condshow' => Array( 'aiosp_google_analytics_id' => Array( 'lhs' => 'aiosp_google_analytics_id', 'op' => '!=', 'rhs' => '' ) ) ),
|
367 |
+
|
368 |
+
"google_analytics_legacy_id"=> Array(
|
369 |
+
'name' => __( 'Google Analytics Legacy ID:', 'all_in_one_seo_pack' ),
|
370 |
+
'help_text' => __( "Enter your old Google Analytics ID here if you wish to continue tracking your site with an old GA Google Analytics tracking code in addition to using the new Universal Analytics code.", 'all_in_one_seo_pack' ),
|
371 |
+
'default' => null, 'type' => 'text',
|
372 |
+
'condshow' => Array( 'aiosp_google_analytics_id' => Array( 'lhs' => 'aiosp_google_analytics_id', 'op' => '!=', 'rhs' => '' ), "aiosp_ga_use_universal_analytics" => 'on' ) ),
|
373 |
+
|
374 |
"ga_domain"=> Array(
|
375 |
'name' => __( 'Tracking Domain:', 'all_in_one_seo_pack' ),
|
376 |
'type' => 'text',
|
377 |
+
'help_text' => __( "Enter your domain name if you have enabled tracking of Subdomains in Google Analytics.<br /><a href='http://semperplugins.com/documentation/google-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
378 |
'condshow' => Array( 'aiosp_google_analytics_id' => Array( 'lhs' => 'aiosp_google_analytics_id', 'op' => '!=', 'rhs' => '' ) ) ),
|
379 |
+
|
380 |
"ga_multi_domain"=> Array(
|
381 |
'name' => __( 'Track Multiple Domains:', 'all_in_one_seo_pack' ),
|
382 |
+
'help_text' => __( "Check this if you have enabled tracking of Multiple top-level domains in Google Analytics.<br /><a href='http://semperplugins.com/documentation/google-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
383 |
'default' => 0,
|
384 |
'condshow' => Array( 'aiosp_google_analytics_id' => Array( 'lhs' => 'aiosp_google_analytics_id', 'op' => '!=', 'rhs' => '' ) ) ),
|
385 |
+
|
386 |
"ga_track_outbound_links"=> Array(
|
387 |
'name' => __( 'Track Outbound Links:', 'all_in_one_seo_pack' ),
|
388 |
+
'help_text' => __( "Check this if you want to track outbound links with Google Analytics.<br /><a href='http://semperplugins.com/documentation/google-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
389 |
'default' => 0,
|
390 |
'condshow' => Array( 'aiosp_google_analytics_id' => Array( 'lhs' => 'aiosp_google_analytics_id', 'op' => '!=', 'rhs' => '' ) ) ),
|
391 |
+
|
392 |
+
"cpostnoindex" => Array(
|
393 |
+
'name' => __( 'Default NOINDEX settings:', 'all_in_one_seo_pack' ),
|
394 |
+
'help_text' => __( "Set the default NOINDEX setting for each Post Type.<br /><a href='http://semperplugins.com/documentation/noindex-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
395 |
+
'type' => 'multicheckbox',
|
396 |
+
'default' => array(),
|
397 |
+
'condshow' => Array( 'aiosp_enablecpost' => 'on', 'aiosp_cpostadvanced' => 'on' )
|
398 |
+
),
|
399 |
+
|
400 |
+
"cpostnofollow" => Array(
|
401 |
+
'name' => __( 'Default NOFOLLOW settings:', 'all_in_one_seo_pack' ),
|
402 |
+
'help_text' => __( "Set the default NOFOLLOW setting for each Post Type.<br /><a href='http://semperplugins.com/documentation/noindex-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
403 |
+
'type' => 'multicheckbox',
|
404 |
+
'default' => array(),
|
405 |
+
'condshow' => Array( 'aiosp_enablecpost' => 'on', 'aiosp_cpostadvanced' => 'on' )
|
406 |
+
),
|
407 |
+
|
408 |
"category_noindex"=> Array(
|
409 |
+
'name' => __( 'Use NOINDEX for Category Archives:', 'all_in_one_seo_pack' ),
|
410 |
+
'help_text' => __( "Check this to ask search engines not to index Category Archives. Useful for avoiding duplicate content.<br /><a href='http://semperplugins.com/documentation/noindex-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
411 |
'default' => 1),
|
412 |
+
|
413 |
"archive_date_noindex"=> Array(
|
414 |
+
'name' => __( 'Use NOINDEX for Date Archives:', 'all_in_one_seo_pack' ),
|
415 |
+
'help_text' => __( "Check this to ask search engines not to index Date Archives. Useful for avoiding duplicate content.<br /><a href='http://semperplugins.com/documentation/noindex-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
416 |
'default' => 1),
|
417 |
+
|
418 |
"archive_author_noindex"=> Array(
|
419 |
+
'name' => __( 'Use NOINDEX for Author Archives:', 'all_in_one_seo_pack' ),
|
420 |
+
'help_text' => __( "Check this to ask search engines not to index Author Archives. Useful for avoiding duplicate content.<br /><a href='http://semperplugins.com/documentation/noindex-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
421 |
'default' => 1),
|
422 |
+
|
423 |
"tags_noindex"=> Array(
|
424 |
+
'name' => __( 'Use NOINDEX for Tag Archives:', 'all_in_one_seo_pack' ),
|
425 |
+
'help_text' => __( "Check this to ask search engines not to index Tag Archives. Useful for avoiding duplicate content.<br /><a href='http://semperplugins.com/documentation/noindex-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
426 |
+
'default' => 0),
|
427 |
+
|
428 |
+
"search_noindex"=> Array(
|
429 |
+
'name' => __( 'Use NOINDEX for the Search page:', 'all_in_one_seo_pack' ),
|
430 |
+
'help_text' => __( "Check this to ask search engines not to index the Search page. Useful for avoiding duplicate content.<br /><a href='http://semperplugins.com/documentation/noindex-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
431 |
'default' => 0),
|
432 |
+
|
433 |
"generate_descriptions"=> Array(
|
434 |
'name' => __( 'Autogenerate Descriptions:', 'all_in_one_seo_pack' ),
|
435 |
+
'help_text' => __( "Check this and your Meta Descriptions will be auto-generated from your excerpt or content.<br /><a href='http://semperplugins.com/documentation/advanced-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
436 |
'default' => 1),
|
437 |
+
|
438 |
"hide_paginated_descriptions"=> Array(
|
439 |
'name' => __( 'Remove Descriptions For Paginated Pages:', 'all_in_one_seo_pack' ),
|
440 |
+
'help_text' => __( "Check this and your Meta Descriptions will be removed from page 2 or later of paginated content.<br /><a href='http://semperplugins.com/documentation/advanced-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
441 |
'default' => 0),
|
442 |
+
|
443 |
"unprotect_meta"=> Array(
|
444 |
'name' => __( 'Unprotect Post Meta Fields:', 'all_in_one_seo_pack' ),
|
445 |
+
'help_text' => __( "Check this to unprotect internal postmeta fields for use with XMLRPC. If you don't know what that is, leave it unchecked.<br /><a href='http://semperplugins.com/documentation/advanced-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
446 |
'default' => 0),
|
447 |
+
|
448 |
"ex_pages" => Array(
|
449 |
'name' => __( 'Exclude Pages:', 'all_in_one_seo_pack' ),
|
450 |
+
'help_text' => __( "Enter a comma separated list of pages here to be excluded by All in One SEO Pack. This is helpful when using plugins which generate their own non-WordPress dynamic pages. Ex: <em>/forum/, /contact/</em> For instance, if you want to exclude the virtual pages generated by a forum plugin, all you have to do is add forum or /forum or /forum/ or and any URL with the word \"forum\" in it, such as http://mysite.com/forum or http://mysite.com/forum/someforumpage here and it will be excluded from All in One SEO Pack.<br /><a href='http://semperplugins.com/documentation/advanced-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
451 |
'type' => 'textarea', 'default' => '' ),
|
452 |
+
|
453 |
"post_meta_tags"=> Array(
|
454 |
'name' => __( 'Additional Post Headers:', 'all_in_one_seo_pack' ),
|
455 |
+
'help_text' => __( "What you enter here will be copied verbatim to the header of all Posts. You can enter whatever additional headers you want here, even references to stylesheets.<br /><a href='http://semperplugins.com/documentation/advanced-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
456 |
'type' => 'textarea', 'default' => '', 'sanitize' => 'default' ),
|
457 |
+
|
458 |
"page_meta_tags"=> Array(
|
459 |
'name' => __( 'Additional Page Headers:', 'all_in_one_seo_pack' ),
|
460 |
+
'help_text' => __( "What you enter here will be copied verbatim to the header of all Pages. You can enter whatever additional headers you want here, even references to stylesheets.<br /><a href='http://semperplugins.com/documentation/advanced-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
461 |
'type' => 'textarea', 'default' => '', 'sanitize' => 'default' ),
|
462 |
+
|
463 |
"front_meta_tags"=> Array(
|
464 |
'name' => __( 'Additional Front Page Headers:', 'all_in_one_seo_pack' ),
|
465 |
+
'help_text' => __( "What you enter here will be copied verbatim to the header of the front page if you have set a static page in Settings, Reading, Front Page Displays. You can enter whatever additional headers you want here, even references to stylesheets. This will fall back to using Additional Page Headers if you have them set and nothing is entered here.<br /><a href='http://semperplugins.com/documentation/advanced-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
466 |
'type' => 'textarea', 'default' => '', 'sanitize' => 'default' ),
|
467 |
+
|
468 |
"home_meta_tags"=> Array(
|
469 |
'name' => __( 'Additional Blog Page Headers:', 'all_in_one_seo_pack' ),
|
470 |
+
'help_text' => __( "What you enter here will be copied verbatim to the header of the home page if you have Front page displays your latest posts selected in Settings, Reading. It will also be copied verbatim to the header on the Posts page if you have one set in Settings, Reading. You can enter whatever additional headers you want here, even references to stylesheets.<br /><a href='http://semperplugins.com/documentation/advanced-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
471 |
'type' => 'textarea', 'default' => '', 'sanitize' => 'default' ),
|
472 |
+
|
|
|
|
|
|
|
473 |
);
|
474 |
+
|
475 |
|
476 |
$this->locations = Array(
|
477 |
'default' => Array( 'name' => $this->name, 'prefix' => 'aiosp_', 'type' => 'settings', 'options' => null ),
|
481 |
'edit' => Array( 'type' => 'hidden', 'default' => 'aiosp_edit', 'prefix' => true, 'nowrap' => 1 ),
|
482 |
'nonce-aioseop-edit' => Array( 'type' => 'hidden', 'default' => null, 'prefix' => false, 'nowrap' => 1 ),
|
483 |
'upgrade' => Array( 'type' => 'html', 'label' => 'none',
|
484 |
+
'default' => '<a target="__blank" href="http://semperplugins.com/plugins/all-in-one-seo-pack-pro-version/?loc=meta">'
|
485 |
. __( 'Upgrade to All in One SEO Pack Pro Version', 'all_in_one_seo_pack' ) . '</a>'
|
486 |
),
|
487 |
'snippet' => Array( 'name' => __( 'Preview Snippet', 'all_in_one_seo_pack' ), 'type' => 'custom', 'help_text' => __( 'A preview of what this page might look like in search engine results.', 'all_in_one_seo_pack' ), 'label' => 'top',
|
515 |
$this->layout = Array(
|
516 |
'default' => Array(
|
517 |
'name' => __( 'General Settings', 'all_in_one_seo_pack' ),
|
518 |
+
'help_link' => 'http://semperplugins.com/documentation/general-settings/',
|
519 |
'options' => Array() // this is set below, to the remaining options -- pdb
|
520 |
),
|
521 |
'home' => Array(
|
522 |
'name' => __( 'Home Page Settings', 'all_in_one_seo_pack' ),
|
523 |
+
'help_link' => 'http://semperplugins.com/documentation/home-page-settings/',
|
524 |
'options' => Array( 'home_title', 'home_description', 'home_keywords' )
|
525 |
),
|
526 |
'keywords' => Array(
|
527 |
'name' => __( 'Keyword Settings', 'all_in_one_seo_pack' ),
|
528 |
+
'help_link' => 'http://semperplugins.com/documentation/keyword-settings/',
|
529 |
'options' => Array( "togglekeywords", "use_categories", "use_tags_as_keywords", "dynamic_postspage_keywords" )
|
530 |
),
|
531 |
'title' => Array(
|
532 |
'name' => __( 'Title Settings', 'all_in_one_seo_pack' ),
|
533 |
+
'help_link' => 'http://semperplugins.com/documentation/title-settings/',
|
534 |
'options' => Array( "rewrite_titles", "force_rewrites", "cap_titles", "cap_cats", "page_title_format", "post_title_format", "category_title_format", "archive_title_format", "author_title_format",
|
535 |
"tag_title_format", "search_title_format", "description_format", "404_title_format", "paged_format" )
|
536 |
),
|
537 |
'cpt' => Array(
|
538 |
'name' => __( 'Custom Post Type Settings', 'all_in_one_seo_pack' ),
|
539 |
+
'help_link' => 'http://semperplugins.com/documentation/custom-post-type-settings/',
|
540 |
'options' => Array( "enablecpost", "cpostadvanced", "cpostactive", "cposttitles" )
|
541 |
),
|
542 |
'display' => Array(
|
543 |
'name' => __( 'Display Settings', 'all_in_one_seo_pack' ),
|
544 |
+
'help_link' => 'http://semperplugins.com/documentation/display-settings/',
|
545 |
'options' => Array( "posttypecolumns", "admin_bar", "custom_menu_order" )
|
546 |
),
|
547 |
'webmaster' => Array(
|
548 |
'name' => __( 'Webmaster Verification', 'all_in_one_seo_pack' ),
|
549 |
+
'help_link' => 'http://semperplugins.com/documentation/google-webmaster-tools-verification/',
|
550 |
'options' => Array( "google_verify", "bing_verify", "pinterest_verify" )
|
551 |
),
|
552 |
'google' => Array(
|
553 |
'name' => __( 'Google Settings', 'all_in_one_seo_pack' ),
|
554 |
+
'help_link' => 'http://semperplugins.com/documentation/google-settings/',
|
555 |
+
'options' => Array( "google_publisher", "google_disable_profile", "google_analytics_id", "ga_use_universal_analytics", "google_analytics_legacy_id", "ga_domain", "ga_multi_domain", "ga_track_outbound_links" )
|
556 |
),
|
557 |
'noindex' => Array(
|
558 |
'name' => __( 'Noindex Settings', 'all_in_one_seo_pack' ),
|
559 |
+
'help_link' => 'http://semperplugins.com/documentation/noindex-settings/',
|
560 |
+
'options' => Array( 'cpostnoindex', 'cpostnofollow', 'category_noindex', 'archive_date_noindex', 'archive_author_noindex', 'tags_noindex', 'search_noindex' )
|
561 |
),
|
562 |
'advanced' => Array(
|
563 |
'name' => __( 'Advanced Settings', 'all_in_one_seo_pack' ),
|
564 |
+
'help_link' => 'http://semperplugins.com/documentation/advanced-settings/',
|
565 |
'options' => Array( 'generate_descriptions', 'hide_paginated_descriptions', 'unprotect_meta', 'ex_pages', 'post_meta_tags', 'page_meta_tags', 'front_meta_tags', 'home_meta_tags' )
|
566 |
)
|
567 |
);
|
784 |
}
|
785 |
|
786 |
function add_admin_pointers() {
|
787 |
+
$this->pointers['aioseop_menu_204'] = Array( 'pointer_target' => '#toplevel_page_all-in-one-seo-pack-aioseop_class',
|
788 |
'pointer_text' => '<h3>' . sprintf( __( 'Welcome to Version %s!', 'all_in_one_seo_pack' ), AIOSEOP_VERSION )
|
789 |
. '</h3><p>' . __( 'Thank you for running the latest and greatest All in One SEO Pack ever! Please review your settings, as we\'re always adding new features for you!', 'all_in_one_seo_pack' ) . '</p>',
|
790 |
'pointer_edge' => 'top',
|
791 |
'pointer_align' => 'left',
|
792 |
'pointer_scope' => 'global'
|
793 |
);
|
794 |
+
$this->pointers['aioseop_welcome_204'] = Array( 'pointer_target' => '#aioseop_top_button',
|
795 |
'pointer_text' => '<h3>' . sprintf( __( 'Review Your Settings', 'all_in_one_seo_pack' ), AIOSEOP_VERSION )
|
796 |
+
. '</h3><p>' . __( 'Thank you for running the latest and greatest All in One SEO Pack ever! New since 2.0.3: manage your sitemap with our XML Sitemap module; enable it from our Feature Manager! And please review your settings, we have added some new ones!', 'all_in_one_seo_pack' ) . '</p>',
|
797 |
'pointer_edge' => 'bottom',
|
798 |
'pointer_align' => 'left',
|
799 |
'pointer_scope' => 'local'
|
842 |
$get_opts = $this->default_options( $location );
|
843 |
foreach ( Array( 'keywords', 'description', 'title', 'sitemap_exclude', 'disable', 'disable_analytics', 'noindex', 'nofollow', 'noodp', 'noydir', 'titleatr', 'menulabel' ) as $f ) {
|
844 |
$field = "aiosp_$f";
|
845 |
+
$get_opts[$field] = htmlspecialchars( stripslashes( get_post_meta( $post_id, '_aioseop_' . $f, true ) ) );
|
846 |
}
|
847 |
$opts = wp_parse_args( $opts, $get_opts );
|
848 |
return $opts;
|
932 |
<a target="_blank" title="<?php _e('All in One SEO Plugin Support Forum', 'all_in_one_seo_pack' ); ?>"
|
933 |
href="http://semperplugins.com/support/"><?php _e('Support Forum', 'all_in_one_seo_pack' ); ?></a>
|
934 |
| <strong><a target="_blank" title="<?php _e('Pro Version', 'all_in_one_seo_pack' ); ?>"
|
935 |
+
href="http://semperplugins.com/plugins/all-in-one-seo-pack-pro-version/?loc=side">
|
936 |
<?php _e('UPGRADE TO PRO VERSION', 'all_in_one_seo_pack' ); ?></a></strong></p>
|
937 |
</div>
|
938 |
<?php
|
1011 |
$post = $this->get_queried_object();
|
1012 |
|
1013 |
if ( is_single() || is_page() ) {
|
1014 |
+
$aiosp_disable = htmlspecialchars(stripslashes( get_post_meta( $post->ID, '_aioseop_disable', true ) ) );
|
1015 |
if ( $aiosp_disable ) {
|
1016 |
+
$aiosp_disable_analytics = htmlspecialchars(stripslashes( get_post_meta( $post->ID, '_aioseop_disable_analytics', true ) ) );
|
1017 |
if ( !$aiosp_disable_analytics ) {
|
1018 |
if ( aioseop_option_isset( 'aiosp_google_analytics_id' ) ) {
|
1019 |
remove_action( 'aioseop_modules_wp_head', array( $this, 'aiosp_google_analytics' ) );
|
1026 |
if ( !empty( $aioseop_options['aiosp_cpostadvanced'] ) ) {
|
1027 |
$wp_post_types = $aioseop_options['aiosp_cpostactive'];
|
1028 |
if ( empty( $aioseop_options['aiosp_cpostactive'] ) ) return;
|
1029 |
+
if( !is_singular( $wp_post_types ) && !is_front_page() ) return;
|
1030 |
}
|
1031 |
}
|
1032 |
|
1099 |
if ( is_feed() ) return;
|
1100 |
|
1101 |
if( aioseop_mrt_exclude_this_page() ) return;
|
1102 |
+
|
1103 |
+
static $aioseop_dup_counter = 0;
|
1104 |
+
$aioseop_dup_counter++;
|
1105 |
+
if ( $aioseop_dup_counter > 1 ) {
|
1106 |
+
echo "\n<!-- Debug Warning: All in One SEO Pack Pro meta data was included again from " . current_filter() . " filter. Called {$aioseop_dup_counter} times! -->\n";
|
1107 |
+
return;
|
1108 |
+
}
|
1109 |
+
|
1110 |
+
if ( is_home() && !is_front_page() ) {
|
1111 |
+
$post = $this->get_blog_page();
|
1112 |
+
} else {
|
1113 |
+
$post = $this->get_queried_object();
|
1114 |
+
}
|
1115 |
|
1116 |
global $wp_query;
|
1117 |
global $aioseop_options;
|
|
|
1118 |
$meta_string = null;
|
1119 |
$description = '';
|
1120 |
+
|
1121 |
if ( is_single() || is_page() ) {
|
1122 |
+
$aiosp_disable = htmlspecialchars( stripslashes( get_post_meta( $post->ID, '_aioseop_disable', true ) ) );
|
1123 |
if ( $aiosp_disable ) return;
|
1124 |
if( empty( $aioseop_options['aiosp_enablecpost'] ) ) {
|
1125 |
$wp_post_types = get_post_types( Array( '_builtin' => true ) ); // don't display meta if SEO isn't enabled on custom post types -- pdb
|
1174 |
if ( $is_front_page_keywords )
|
1175 |
$keywords = trim( $this->internationalize( $aioseop_options['aiosp_home_keywords'] ) );
|
1176 |
elseif ( $this->is_static_posts_page() && !$aioseop_options['aiosp_dynamic_postspage_keywords'] ) // and if option = use page set keywords instead of keywords from recent posts
|
1177 |
+
$keywords = stripslashes( $this->internationalize( get_post_meta( $post->ID, "_aioseop_keywords", true ) ) );
|
1178 |
elseif ( !empty( $blog_page ) && !$aioseop_options['aiosp_dynamic_postspage_keywords'] )
|
1179 |
+
$keywords = stripslashes( $this->internationalize( get_post_meta( $blog_page->ID, "_aioseop_keywords", true ) ) );
|
1180 |
else $keywords = $this->get_all_keywords();
|
1181 |
|
1182 |
if ( is_category() && $this->show_page_description() )
|
1188 |
elseif ( is_author() && $this->show_page_description() )
|
1189 |
$description = $this->internationalize( get_the_author_meta( 'description' ) );
|
1190 |
else if ( $is_front_page )
|
1191 |
+
$description = trim( stripslashes( $this->internationalize( $aioseop_options['aiosp_home_description'] ) ) );
|
1192 |
else if ( is_single() || is_page() || is_home() || $this->is_static_posts_page() )
|
1193 |
+
$description = $this->get_aioseop_description( $post );
|
|
|
1194 |
|
1195 |
/*
|
1196 |
if ( $this->is_static_front_page() )
|
1197 |
+
$description = trim( stripslashes( $this->internationalize( $aioseop_options['aiosp_home_description'] ) ) );
|
1198 |
elseif ( !empty( $blog_page ) )
|
1199 |
$description = $this->get_post_description( $blog_page );
|
1200 |
if ( empty( $description ) && is_object( $post ) && !is_archive() && empty( $blog_page ) )
|
1249 |
|
1250 |
if ( isset( $keywords ) && $togglekeywords == 0 && !empty( $keywords ) && !( is_home() && is_paged() ) ) {
|
1251 |
if ( isset( $meta_string ) ) $meta_string .= "\n";
|
1252 |
+
$keywords = wp_filter_nohtml_kses( str_replace( '"', '', $keywords ) );
|
1253 |
$meta_string .= sprintf( "<meta name=\"keywords\" content=\"%s\" />\n", $keywords );
|
1254 |
}
|
1255 |
|
1256 |
$is_tag = is_tag();
|
1257 |
|
1258 |
+
$robots_meta = '';
|
1259 |
+
|
1260 |
if ( ( is_category() && $aioseop_options['aiosp_category_noindex'] ) || ( !is_category() && is_archive() &&!$is_tag
|
1261 |
&& ( ( $aioseop_options['aiosp_archive_date_noindex'] && is_date() ) || ( $aioseop_options['aiosp_archive_author_noindex'] && is_author() ) ) )
|
1262 |
+
|| ( $aioseop_options['aiosp_tags_noindex'] && $is_tag ) || ( $aioseop_options['aiosp_search_noindex'] && is_search() ) ) {
|
1263 |
+
$robots_meta = 'noindex,follow';
|
1264 |
} else {
|
1265 |
if ( is_single() || is_page() ) {
|
1266 |
$post_type = get_post_type();
|
1267 |
+
$aiosp_noindex = htmlspecialchars( stripslashes( get_post_meta( $post->ID, '_aioseop_noindex', true ) ) );
|
1268 |
+
$aiosp_nofollow = htmlspecialchars( stripslashes( get_post_meta( $post->ID, '_aioseop_nofollow', true ) ) );
|
1269 |
+
$aiosp_noodp = htmlspecialchars( stripslashes( get_post_meta( $post->ID, '_aioseop_noodp', true ) ) );
|
1270 |
+
$aiosp_noydir = htmlspecialchars( stripslashes( get_post_meta( $post->ID, '_aioseop_noydir', true ) ) );
|
1271 |
if ( $aiosp_noindex || $aiosp_nofollow || $aiosp_noodp || $aiosp_noydir || !empty( $aioseop_options['aiosp_cpostnoindex'] ) || !empty( $aioseop_options['aiosp_cpostnofollow'] ) ) {
|
1272 |
$noindex = "index";
|
1273 |
$nofollow = "follow";
|
1280 |
$nofollow = "no" . $nofollow;
|
1281 |
if ( $aiosp_noodp ) $nofollow .= ',noodp';
|
1282 |
if ( $aiosp_noydir ) $nofollow .= ',noydir';
|
1283 |
+
$robots_meta = $noindex . ',' . $nofollow;
|
1284 |
}
|
1285 |
}
|
1286 |
}
|
1287 |
|
1288 |
+
$robots_meta = apply_filters( 'aioseop_robots_meta', $robots_meta );
|
1289 |
+
if ( !empty( $robots_meta ) )
|
1290 |
+
$meta_string .= '<meta name="robots" content="' . esc_attr( $robots_meta ) . '" />' . "\n";
|
1291 |
+
|
1292 |
if ( $is_front_page )
|
1293 |
foreach( Array( 'google' => 'google-site-verification', 'bing' => 'msvalidate.01', 'pinterest' => 'p:domain_verify' ) as $k => $v )
|
1294 |
if ( !empty( $aioseop_options["aiosp_{$k}_verify"] ) )
|
1296 |
|
1297 |
foreach( Array( 'page_meta', 'post_meta', 'home_meta', 'front_meta' ) as $meta ) {
|
1298 |
if ( !empty( $aioseop_options["aiosp_{$meta}_tags" ] ) )
|
1299 |
+
$$meta = html_entity_decode( stripslashes( $aioseop_options["aiosp_{$meta}_tags" ] ) );
|
1300 |
else
|
1301 |
$$meta = '';
|
1302 |
}
|
1310 |
if ( isset( $meta_string ) ) $meta_string .= "\n";
|
1311 |
$meta_string .= $post_meta;
|
1312 |
}
|
1313 |
+
|
1314 |
+
$googleplus = $publisher = $author = '';
|
1315 |
|
1316 |
if ( !empty( $post ) && isset( $post->post_author ) && empty( $aioseop_options['aiosp_google_disable_profile'] ) )
|
1317 |
$googleplus = get_the_author_meta( 'googleplus', $post->post_author );
|
1320 |
$googleplus = $aioseop_options['aiosp_google_publisher'];
|
1321 |
|
1322 |
if ( $is_front_page && !empty( $aioseop_options['aiosp_google_publisher'] ) )
|
1323 |
+
$publisher = $aioseop_options['aiosp_google_publisher'];
|
1324 |
+
|
1325 |
+
$publisher = apply_filters( 'aioseop_google_publisher', $publisher );
|
1326 |
+
|
1327 |
+
if ( !empty( $publisher ) )
|
1328 |
+
$meta_string = '<link rel="publisher" href="' . esc_url( $publisher ) . '" />' . "\n" . $meta_string;
|
1329 |
+
|
1330 |
+
if ( is_singular() && ( !empty( $googleplus ) ) )
|
1331 |
+
$author = $googleplus;
|
1332 |
+
else if ( !empty( $aioseop_options['aiosp_google_publisher'] ) )
|
1333 |
+
$author = $aioseop_options['aiosp_google_publisher'];
|
1334 |
+
|
1335 |
+
$author = apply_filters( 'aioseop_google_author', $author );
|
1336 |
+
|
1337 |
+
if ( !empty( $author ) )
|
1338 |
+
$meta_string = '<link rel="author" href="' . esc_url( $author ) . '" />' . "\n" . $meta_string;
|
1339 |
|
1340 |
if ( $is_front_page && !empty( $front_meta ) ) {
|
1341 |
if ( isset( $meta_string ) ) $meta_string .= "\n";
|
1416 |
echo "<!-- /all in one seo pack -->\n";
|
1417 |
}
|
1418 |
|
1419 |
+
function universal_analytics() {
|
1420 |
+
global $aioseop_options;
|
1421 |
+
$analytics = '';
|
1422 |
+
if ( !empty( $aioseop_options['aiosp_ga_use_universal_analytics'] ) ) {
|
1423 |
+
$allow_linker = '';
|
1424 |
+
if ( !empty( $aioseop_options['aiosp_ga_multi_domain'] ) ) {
|
1425 |
+
$allow_linker = ", { 'allowLinker': true }";
|
1426 |
+
}
|
1427 |
+
$analytics =<<<EOF
|
1428 |
+
<script>
|
1429 |
+
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
1430 |
+
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
1431 |
+
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
1432 |
+
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
1433 |
+
|
1434 |
+
ga('create', '{$aioseop_options["aiosp_google_analytics_id"]}'{$allow_linker});
|
1435 |
+
ga('send', 'pageview');
|
1436 |
+
</script>
|
1437 |
+
|
1438 |
+
EOF;
|
1439 |
+
}
|
1440 |
+
return $analytics;
|
1441 |
+
}
|
1442 |
+
|
1443 |
function aiosp_google_analytics() {
|
1444 |
global $aioseop_options;
|
1445 |
+
$analytics = '';
|
1446 |
+
if ( !empty( $aioseop_options['aiosp_google_analytics_id'] ) ) {
|
1447 |
ob_start();
|
1448 |
+
$analytics = $this->universal_analytics();
|
1449 |
+
echo $analytics;
|
1450 |
+
if ( empty( $analytics ) || ( !empty( $aioseop_options['aiosp_google_analytics_legacy_id'] ) ) ) {
|
1451 |
+
?> <script type="text/javascript">
|
1452 |
var _gaq = _gaq || [];
|
1453 |
+
_gaq.push(['_setAccount', '<?php
|
1454 |
+
if ( !empty( $aioseop_options['aiosp_google_analytics_legacy_id'] ) ) {
|
1455 |
+
echo $aioseop_options['aiosp_google_analytics_legacy_id'];
|
1456 |
+
} else {
|
1457 |
+
echo $aioseop_options['aiosp_google_analytics_id'];
|
1458 |
+
}
|
1459 |
+
?>']);
|
1460 |
<?php if ( !empty( $aioseop_options['aiosp_ga_multi_domain'] ) ) {
|
1461 |
?> _gaq.push(['_setAllowLinker', true]);
|
1462 |
<?php
|
1478 |
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
1479 |
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
1480 |
})();
|
|
|
1481 |
</script>
|
1482 |
<?php
|
1483 |
+
}
|
1484 |
+
if ( $aioseop_options['aiosp_ga_track_outbound_links'] ) { ?>
|
1485 |
<script type="text/javascript">
|
1486 |
+
function recordOutboundLink(link, category, action) {
|
1487 |
+
<?php if ( !empty( $aioseop_options['aiosp_ga_use_universal_analytics'] ) ) { ?>
|
1488 |
+
ga(category, action);
|
1489 |
+
<?php }
|
1490 |
+
if ( empty( $aioseop_options['aiosp_ga_use_universal_analytics'] ) || !empty( $aioseop_options['aiosp_google_analytics_legacy_id'] ) ) { ?>
|
1491 |
+
_gat._getTrackerByName()._trackEvent(category, action);
|
1492 |
+
<?php } ?>
|
1493 |
+
if ( link.target == '_blank' ) return true;
|
1494 |
+
setTimeout('document.location = "' + link.href + '"', 100);
|
1495 |
+
return false;
|
1496 |
+
}
|
1497 |
/* use regular Javascript for this */
|
1498 |
function getAttr(ele, attr) {
|
1499 |
var result = (ele.getAttribute && ele.getAttribute(attr)) || null;
|
1522 |
};
|
1523 |
</script>
|
1524 |
<?php
|
1525 |
+
}
|
1526 |
$analytics = ob_get_clean();
|
1527 |
+
}
|
1528 |
echo apply_filters( 'aiosp_google_analytics', $analytics );
|
1529 |
}
|
1530 |
|
1625 |
if ( !$this->show_page_description() )
|
1626 |
return '';
|
1627 |
|
1628 |
+
$description = trim( stripslashes( $this->internationalize( get_post_meta( $post->ID, "_aioseop_description", true ) ) ) );
|
1629 |
if ( !$description ) {
|
1630 |
$description = $this->trim_excerpt_without_filters_full_length( $this->internationalize( $post->post_excerpt ) );
|
1631 |
if ( !$description && $aioseop_options["aiosp_generate_descriptions"] ) {
|
1654 |
return $blog_page;
|
1655 |
}
|
1656 |
|
1657 |
+
function get_aioseop_description( $post = null ) {
|
1658 |
global $aioseop_options;
|
1659 |
+
if ( $post === null )
|
1660 |
+
$post = $GLOBALS["post"];
|
|
|
|
|
|
|
1661 |
$blog_page = $this->get_blog_page();
|
1662 |
if ( $this->is_static_front_page() )
|
1663 |
+
$description = trim( stripslashes( $this->internationalize( $aioseop_options['aiosp_home_description'] ) ) );
|
1664 |
elseif ( !empty( $blog_page ) )
|
1665 |
$description = $this->get_post_description( $blog_page );
|
1666 |
if ( empty( $description ) && is_object( $post ) && !is_archive() && empty( $blog_page ) )
|
1674 |
$title_tag_start = "<title>";
|
1675 |
$title_tag_end = "</title>";
|
1676 |
$len_start = $this->strlen( $title_tag_start );
|
1677 |
+
$title = stripslashes( trim( $title ) );
|
1678 |
$start = $this->strpos( $content, $title_tag_start );
|
1679 |
$end = $this->strpos( $content, $title_tag_end );
|
1680 |
|
1722 |
} else if ( is_single() ) {
|
1723 |
$title = $this->internationalize( single_post_title( '', false ) );
|
1724 |
} else if ( is_search() && isset($s) && !empty($s) ) {
|
1725 |
+
$search = esc_attr( stripslashes($s) );
|
1726 |
if ( !empty( $aioseop_options['aiosp_cap_titles'] ) )
|
1727 |
$search = $this->capitalize( $search );
|
1728 |
$title = $search;
|
1910 |
$title = $this->paged_title( $title );
|
1911 |
return apply_filters( 'aioseop_title_single', $title );
|
1912 |
} else if ( is_search() && isset( $s ) && !empty( $s ) ) {
|
1913 |
+
$search = esc_attr( stripslashes( $s ) );
|
1914 |
if ( !empty( $aioseop_options['aiosp_cap_titles'] ) )
|
1915 |
$search = $this->capitalize( $search );
|
1916 |
$title_format = $aioseop_options['aiosp_search_title_format'];
|
1917 |
$title = str_replace( '%blog_title%', $this->internationalize( get_bloginfo( 'name' ) ), $title_format );
|
1918 |
$title = str_replace( '%blog_description%', $this->internationalize( get_bloginfo( 'description' ) ), $title );
|
1919 |
+
$title = str_replace( '%search%', $search, $title );
|
1920 |
+
$title = $this->paged_title( $title );
|
1921 |
return $title;
|
1922 |
} else if ( is_tag() ) {
|
1923 |
global $utw;
|
2072 |
}
|
2073 |
}
|
2074 |
$text = $this->substr( $text, 0, $max );
|
2075 |
+
return trim( stripslashes( $text ) );
|
2076 |
}
|
2077 |
|
2078 |
function trim_excerpt_without_filters_full_length( $text ) {
|
2079 |
$text = str_replace( ']]>', ']]>', $text );
|
2080 |
$text = preg_replace( '|\[(.+?)\](.+?\[/\\1\])?|s', '', $text );
|
2081 |
$text = strip_tags( $text );
|
2082 |
+
return trim( stripslashes( $text ) );
|
2083 |
}
|
2084 |
|
2085 |
/**
|
2103 |
$keywords_i = null;
|
2104 |
|
2105 |
$id = $post->ID;
|
2106 |
+
$keywords_i = stripslashes( $this->internationalize( get_post_meta( $id, "_aioseop_keywords", true ) ) );
|
2107 |
if ( is_attachment() ) {
|
2108 |
$id = $post->post_parent;
|
2109 |
if ( empty( $keywords_i ) )
|
2110 |
+
$keywords_i = stripslashes( $this->internationalize( get_post_meta( $id, "_aioseop_keywords", true ) ) );
|
2111 |
}
|
2112 |
$keywords_i = str_replace( '"', '', $keywords_i );
|
2113 |
if (isset( $keywords_i ) && !empty( $keywords_i ) ) {
|
2131 |
$tag = $tag->tag;
|
2132 |
$tag = str_replace( '_', ' ', $tag );
|
2133 |
$tag = str_replace( '-', ' ', $tag );
|
2134 |
+
$tag = stripslashes( $tag );
|
2135 |
$keywords[] = $tag;
|
2136 |
}
|
2137 |
}
|
2138 |
|
2139 |
// autometa
|
2140 |
+
$autometa = stripslashes( get_post_meta( $id, 'autometa', true ) );
|
2141 |
if ( isset( $autometa ) && !empty( $autometa ) ) {
|
2142 |
$autometa_array = explode( ' ', $autometa );
|
2143 |
foreach ( $autometa_array as $e )
|
2164 |
if ( $post ) {
|
2165 |
// custom field keywords
|
2166 |
$keywords_i = null;
|
2167 |
+
$keywords_i = stripslashes( get_post_meta( $post->ID, "_aioseop_keywords", true ) );
|
2168 |
$keywords_i = str_replace( '"', '', $keywords_i );
|
2169 |
if ( isset( $keywords_i) && !empty( $keywords_i ) )
|
2170 |
$keywords[] = $keywords_i;
|
2266 |
|
2267 |
function admin_bar_upgrade_menu() {
|
2268 |
global $wp_admin_bar;
|
2269 |
+
$wp_admin_bar->add_menu( array( 'parent' => AIOSEOP_PLUGIN_DIRNAME, 'title' => __( 'Upgrade To Pro', 'all_in_one_seo_pack' ), 'id' => 'aioseop-pro-upgrade', 'href' => 'http://semperplugins.com/plugins/all-in-one-seo-pack-pro-version/?loc=menu', 'meta' => Array( 'target' => '_blank' ) ) );
|
2270 |
}
|
2271 |
|
2272 |
function menu_order() {
|
2346 |
do_action( 'aioseop_modules_add_menus', $file );
|
2347 |
|
2348 |
$metaboxes = apply_filters( 'aioseop_add_post_metabox', Array() );
|
2349 |
+
|
2350 |
if ( !empty( $metaboxes ) ) {
|
2351 |
if ( $this->tabbed_metaboxes ) {
|
2352 |
$tabs = Array();
|
2361 |
$tab_num = count( $m );
|
2362 |
$title = $m[0]['title'];
|
2363 |
if ( $title != $this->plugin_name ) $title = $this->plugin_name . ' - ' . $title;
|
2364 |
+
if ( $tab_num <= 1 ) {
|
2365 |
+
if ( !empty( $m[0]['help_link'] ) )
|
2366 |
+
$title .= "<a class='aioseop_help_text_link aioseop_meta_box_help' target='_blank' href='" . $m[0]['help_link'] . "'>" . __( 'Help', 'all_in_one_seo_pack' ) . "</a>";
|
2367 |
add_meta_box( $m[0]['id'], $title, $m[0]['callback'], $m[0]['post_type'], $m[0]['context'], $m[0]['priority'], $m[0]['callback_args'] );
|
2368 |
} elseif ( $tab_num > 1 ) {
|
2369 |
add_meta_box( $m[0]['id'] . '_tabbed', $title, Array( $this, 'display_tabbed_metabox' ), $m[0]['post_type'], $m[0]['context'], $m[0]['priority'], $m );
|
2373 |
} else {
|
2374 |
foreach ( $metaboxes as $m ) {
|
2375 |
$title = $m['title'];
|
2376 |
+
if ( !empty( $m['help_link'] ) )
|
2377 |
+
$title .= "<a class='aioseop_help_text_link aioseop_meta_box_help' target='_blank' href='" . $m['help_link'] . "'>" . __( 'Help', 'all_in_one_seo_pack' ) . "</a>";
|
2378 |
if ( $title != $this->plugin_name ) $title = $this->plugin_name . ' - ' . $title;
|
2379 |
add_meta_box( $m['id'], $title, $m['callback'], $m['post_type'], $m['context'], $m['priority'], $m['callback_args'] );
|
2380 |
}
|
aioseop_feature_manager.php
CHANGED
@@ -54,7 +54,13 @@ if ( !class_exists( 'All_in_One_SEO_Pack_Feature_Manager' ) ) {
|
|
54 |
if ( isset( $this->module_info[$m][$option] ) )
|
55 |
$this->default_options["enable_$m"][$option] = $this->module_info[$m][$option];
|
56 |
}
|
57 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
// load initial options / set defaults
|
59 |
$this->update_options( );
|
60 |
add_filter( $this->prefix . 'output_option', Array( $this, 'display_option_div' ), 10, 2 );
|
54 |
if ( isset( $this->module_info[$m][$option] ) )
|
55 |
$this->default_options["enable_$m"][$option] = $this->module_info[$m][$option];
|
56 |
}
|
57 |
+
$this->layout = Array(
|
58 |
+
'default' => Array(
|
59 |
+
'name' => $this->name,
|
60 |
+
'help_link' => 'http://semperplugins.com/documentation/feature-manager/',
|
61 |
+
'options' => array_keys( $this->default_options )
|
62 |
+
)
|
63 |
+
);
|
64 |
// load initial options / set defaults
|
65 |
$this->update_options( );
|
66 |
add_filter( $this->prefix . 'output_option', Array( $this, 'display_option_div' ), 10, 2 );
|
aioseop_functions.php
CHANGED
@@ -100,7 +100,10 @@ if ( !function_exists( 'aioseop_option_isset' ) ) {
|
|
100 |
if ( !function_exists( 'aioseop_addmycolumns' ) ) {
|
101 |
function aioseop_addmycolumns() {
|
102 |
global $aioseop_options, $pagenow;
|
103 |
-
$aiosp_posttypecolumns =
|
|
|
|
|
|
|
104 |
if ( !empty( $pagenow ) && ( $pagenow == 'upload.php' ) )
|
105 |
$post_type = 'attachment';
|
106 |
elseif ( !isset( $_GET['post_type'] ) )
|
@@ -194,10 +197,10 @@ if ( !function_exists( 'aioseop_ajax_save_meta' ) ) {
|
|
194 |
if( $result != '' ): $label = $result;
|
195 |
else: $label = ''; $result = '<strong><i>' . __( 'No', 'all_in_one_seo_pack' ) . ' ' . $target . '</i></strong>' ; endif;
|
196 |
$output = $result . '<a id="' . $target . 'editlink' . $post_id . '" href="javascript:void(0);"';
|
197 |
-
$output .= 'onclick
|
198 |
$output .= '<img class="aioseop_edit_button" id="aioseop_edit_id" src="' . AIOSEOP_PLUGIN_IMAGES_URL . '/cog_edit.png" /></a>';
|
199 |
die( "jQuery('div#aioseop_" . $target . "_" . $post_id . "').fadeOut('fast', function() {
|
200 |
-
jQuery('div#aioseop_" . $target . "_" . $post_id . "').html(
|
201 |
});" );
|
202 |
}
|
203 |
}
|
@@ -366,11 +369,11 @@ if ( !function_exists( 'aioseop_mrt_pccolumn' ) ) {
|
|
366 |
<div class="aioseop_mpc_admin_meta_options"
|
367 |
id="aioseop_<?php print $target; ?>_<?php echo $id; ?>"
|
368 |
style="float:left;">
|
369 |
-
<?php $content = htmlspecialchars(
|
370 |
-
if( !empty($content) ): $label =
|
371 |
else: $label = ''; $content = '<strong><i>No ' . $target . '</i></strong>' ; endif;
|
372 |
-
print $content . '<a id="' . $target . 'editlink' . $id . '" href="javascript:void(0);" onclick
|
373 |
-
$id . ',
|
374 |
print "<img class='aioseop_edit_button'
|
375 |
id='aioseop_edit_id'
|
376 |
src='" . AIOSEOP_PLUGIN_IMAGES_URL . "cog_edit.png' /></a>";
|
100 |
if ( !function_exists( 'aioseop_addmycolumns' ) ) {
|
101 |
function aioseop_addmycolumns() {
|
102 |
global $aioseop_options, $pagenow;
|
103 |
+
$aiosp_posttypecolumns = Array();
|
104 |
+
if ( !empty( $aioseop_options) && !empty( $aioseop_options['aiosp_posttypecolumns'] ) ) {
|
105 |
+
$aiosp_posttypecolumns = $aioseop_options['aiosp_posttypecolumns'];
|
106 |
+
}
|
107 |
if ( !empty( $pagenow ) && ( $pagenow == 'upload.php' ) )
|
108 |
$post_type = 'attachment';
|
109 |
elseif ( !isset( $_GET['post_type'] ) )
|
197 |
if( $result != '' ): $label = $result;
|
198 |
else: $label = ''; $result = '<strong><i>' . __( 'No', 'all_in_one_seo_pack' ) . ' ' . $target . '</i></strong>' ; endif;
|
199 |
$output = $result . '<a id="' . $target . 'editlink' . $post_id . '" href="javascript:void(0);"';
|
200 |
+
$output .= 'onclick=\'aioseop_ajax_edit_meta_form(' . $post_id . ', ' . json_encode( $label ) . ', "' . $target . '");return false;\' title="' . __('Edit') . '">';
|
201 |
$output .= '<img class="aioseop_edit_button" id="aioseop_edit_id" src="' . AIOSEOP_PLUGIN_IMAGES_URL . '/cog_edit.png" /></a>';
|
202 |
die( "jQuery('div#aioseop_" . $target . "_" . $post_id . "').fadeOut('fast', function() {
|
203 |
+
jQuery('div#aioseop_" . $target . "_" . $post_id . "').html(" . json_encode( $output ) . ").fadeIn('fast');
|
204 |
});" );
|
205 |
}
|
206 |
}
|
369 |
<div class="aioseop_mpc_admin_meta_options"
|
370 |
id="aioseop_<?php print $target; ?>_<?php echo $id; ?>"
|
371 |
style="float:left;">
|
372 |
+
<?php $content = htmlspecialchars( stripslashes( get_post_meta( $id, "_aioseop_" . $target, TRUE ) ) );
|
373 |
+
if( !empty($content) ): $label = esc_js( $content );
|
374 |
else: $label = ''; $content = '<strong><i>No ' . $target . '</i></strong>' ; endif;
|
375 |
+
print $content . '<a id="' . $target . 'editlink' . $id . '" href="javascript:void(0);" onclick=\'aioseop_ajax_edit_meta_form(' .
|
376 |
+
$id . ', "' . str_replace( Array( '"', '"' ), Array( '\x22', '\x22' ), esc_js( $label ) ) . '", "' . $target . '");return false;\' title="' . __('Edit') . '">';
|
377 |
print "<img class='aioseop_edit_button'
|
378 |
id='aioseop_edit_id'
|
379 |
src='" . AIOSEOP_PLUGIN_IMAGES_URL . "cog_edit.png' /></a>";
|
aioseop_module.css
CHANGED
@@ -28,6 +28,13 @@
|
|
28 |
width: 40px;
|
29 |
float: left;
|
30 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
.aioseop_label {
|
32 |
color: #5F5F5F;
|
33 |
font-weight: bold;
|
28 |
width: 40px;
|
29 |
float: left;
|
30 |
}
|
31 |
+
.aioseop_meta_box_help, .aioseop_meta_box_help:active {
|
32 |
+
float: right;
|
33 |
+
background-size: 42%;
|
34 |
+
padding-left: 20px;
|
35 |
+
padding-top: 5px;
|
36 |
+
width: 32px;
|
37 |
+
}
|
38 |
.aioseop_label {
|
39 |
color: #5F5F5F;
|
40 |
font-weight: bold;
|
aioseop_module.js
CHANGED
@@ -72,7 +72,7 @@ function aioseop_do_condshow_match( index, value ) {
|
|
72 |
matches = false;
|
73 |
}
|
74 |
} else {
|
75 |
-
if ( subopt.match(/
|
76 |
cur = aioseop_get_field_values( subopt );
|
77 |
if ( jQuery.inArray( setting, cur, 0 ) < 0 ) {
|
78 |
matches = false;
|
72 |
matches = false;
|
73 |
}
|
74 |
} else {
|
75 |
+
if ( subopt.match(/\\\[\\\]/) ) { // special case for these -- pdb
|
76 |
cur = aioseop_get_field_values( subopt );
|
77 |
if ( jQuery.inArray( setting, cur, 0 ) < 0 ) {
|
78 |
matches = false;
|
aioseop_module_class.php
CHANGED
@@ -229,6 +229,12 @@ if ( !class_exists( 'All_in_One_SEO_Pack_Module' ) ) {
|
|
229 |
* @author Adrien aka Gaarf & contributors
|
230 |
* @see http://gaarf.info/2009/08/13/xml-string-to-php-array/
|
231 |
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
232 |
function xml_string_to_array( $xmlstr ) {
|
233 |
$doc = new DOMDocument();
|
234 |
$doc->loadXML( $xmlstr );
|
@@ -250,7 +256,8 @@ if ( !class_exists( 'All_in_One_SEO_Pack_Module' ) ) {
|
|
250 |
$t = $child->tagName;
|
251 |
if(!isset($output[$t]))
|
252 |
$output[$t] = array();
|
253 |
-
|
|
|
254 |
}
|
255 |
elseif($v || $v === '0')
|
256 |
$output = (string) $v;
|
@@ -269,6 +276,7 @@ if ( !class_exists( 'All_in_One_SEO_Pack_Module' ) ) {
|
|
269 |
$output[$t] = $v[0];
|
270 |
}
|
271 |
}
|
|
|
272 |
return $output;
|
273 |
}
|
274 |
|
@@ -386,7 +394,7 @@ if ( !class_exists( 'All_in_One_SEO_Pack_Module' ) ) {
|
|
386 |
wp_reset_postdata();
|
387 |
return $buf;
|
388 |
}
|
389 |
-
|
390 |
/**
|
391 |
* Handles exporting settings data for a module.
|
392 |
*/
|
@@ -439,10 +447,10 @@ if ( !class_exists( 'All_in_One_SEO_Pack_Module' ) ) {
|
|
439 |
* Print a basic error message.
|
440 |
*/
|
441 |
function output_error( $error ) {
|
442 |
-
echo "<div class='aioseop_module error'
|
443 |
return FALSE;
|
444 |
}
|
445 |
-
|
446 |
/***
|
447 |
* Backwards compatibility - see http://php.net/manual/en/function.str-getcsv.php
|
448 |
*/
|
@@ -850,6 +858,8 @@ if ( !class_exists( 'All_in_One_SEO_Pack_Module' ) ) {
|
|
850 |
} else {
|
851 |
$title = $v['name'];
|
852 |
if ( $title != $this->plugin_name ) $title = $this->plugin_name . ' - ' . $title;
|
|
|
|
|
853 |
add_meta_box( $v['prefix'] . $k, $title, Array( $this, 'display_metabox' ), $posttype, $v['context'], $v['priority'], $v );
|
854 |
}
|
855 |
}
|
@@ -862,6 +872,8 @@ if ( !class_exists( 'All_in_One_SEO_Pack_Module' ) ) {
|
|
862 |
* Update postmeta for metabox.
|
863 |
*/
|
864 |
function save_post_data( $post_id ) {
|
|
|
|
|
865 |
if ( $this->locations !== null ) {
|
866 |
foreach( $this->locations as $k => $v ) {
|
867 |
if ( isset($v['type']) && ( $v['type'] === 'metabox' ) ) {
|
@@ -875,7 +887,11 @@ if ( !class_exists( 'All_in_One_SEO_Pack_Module' ) ) {
|
|
875 |
$update = true;
|
876 |
}
|
877 |
}
|
878 |
-
if ( $update )
|
|
|
|
|
|
|
|
|
879 |
}
|
880 |
}
|
881 |
}
|
@@ -919,7 +935,7 @@ if ( !class_exists( 'All_in_One_SEO_Pack_Module' ) ) {
|
|
919 |
$cmp = !strcmp( $v, $value );
|
920 |
else
|
921 |
$cmp = !strcmp( $v, "" );
|
922 |
-
// $cmp = !strcmp( (string)$v, (string)$value );
|
923 |
} else
|
924 |
$cmp = ( $value == $v );
|
925 |
if ( ( !$is_arr && $cmp ) || ( $is_arr && in_array( $v, $value ) ) )
|
@@ -966,7 +982,7 @@ if ( !class_exists( 'All_in_One_SEO_Pack_Module' ) ) {
|
|
966 |
$buf .= "<input name='$name' type='{$options['type']}' $attr>\n"; break;
|
967 |
case 'textarea': $buf .= "<textarea name='$name' $attr>$value</textarea>"; break;
|
968 |
case 'image': $buf .= "<input class='aioseop_upload_image_button button-primary' type='button' value='Upload Image' style='float:left;' />" .
|
969 |
-
"<input class='aioseop_upload_image_label' name='$name' type='text'
|
970 |
break;
|
971 |
case 'html': $buf .= $value; break;
|
972 |
default: $buf .= "<input name='$name' type='{$options['type']}' $attr value='$value'>\n";
|
@@ -1016,11 +1032,22 @@ if ( !class_exists( 'All_in_One_SEO_Pack_Module' ) ) {
|
|
1016 |
static $location_settings = Array();
|
1017 |
$defaults = null;
|
1018 |
$prefix = $this->get_prefix( $location );
|
1019 |
-
|
|
|
1020 |
$defaults = $meta_args['args']['default_options'];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1021 |
if ( !isset( $location_settings[$prefix] ) ) {
|
1022 |
$current_options = apply_filters( "{$this->prefix}display_options", $this->get_current_options( Array(), $location, $defaults ), $location );
|
1023 |
$settings = apply_filters( "{$this->prefix}display_settings", $this->setting_options( $location, $defaults ), $location, $current_options );
|
|
|
1024 |
$location_settings[$prefix]['current_options'] = $current_options;
|
1025 |
$location_settings[$prefix]['settings'] = $settings;
|
1026 |
} else {
|
@@ -1175,9 +1202,10 @@ if ( !class_exists( 'All_in_One_SEO_Pack_Module' ) ) {
|
|
1175 |
<div id="aioseop_top_button">
|
1176 |
<div id="aiosp_ajax_settings_message"></div>
|
1177 |
<?php
|
|
|
1178 |
$submit_options = Array('action' => Array( 'type' => 'hidden', 'value' => 'aiosp_update_module' ),
|
1179 |
'module' => Array( 'type' => 'hidden', 'value' => get_class( $this ) ),
|
1180 |
-
'location' => Array( 'type' => 'hidden', 'value' => $location ),
|
1181 |
'nonce-aioseop' => Array( 'type' => 'hidden', 'value' => wp_create_nonce('aioseop-nonce') ),
|
1182 |
'page_options' => Array( 'type' => 'hidden', 'value' => 'aiosp_home_description' ),
|
1183 |
'Submit' => Array( 'type' => 'submit', 'class' => 'button-primary', 'value' => __('Update Options', 'all_in_one_seo_pack') . ' »' ),
|
@@ -1197,9 +1225,13 @@ if ( !class_exists( 'All_in_One_SEO_Pack_Module' ) ) {
|
|
1197 |
if ($opts !== FALSE) $this->options = $opts;
|
1198 |
if ( is_array( $this->layout ) ) {
|
1199 |
foreach( $this->layout as $l => $lopts ) {
|
1200 |
-
if ( !isset( $lopts['tab'] ) || ( $this->current_tab == $lopts['tab'] ) )
|
1201 |
-
|
1202 |
-
|
|
|
|
|
|
|
|
|
1203 |
}
|
1204 |
} else add_meta_box( $this->get_prefix( $location ) . "metabox", $name, array($this, 'display_options'), "{$this->prefix}settings", 'advanced');
|
1205 |
do_meta_boxes( "{$this->prefix}settings", 'advanced', $location );
|
229 |
* @author Adrien aka Gaarf & contributors
|
230 |
* @see http://gaarf.info/2009/08/13/xml-string-to-php-array/
|
231 |
*/
|
232 |
+
function html_string_to_array( $xmlstr ) {
|
233 |
+
$doc = new DOMDocument();
|
234 |
+
$doc->loadHTML( $xmlstr );
|
235 |
+
return $this->domnode_to_array( $doc->documentElement );
|
236 |
+
}
|
237 |
+
|
238 |
function xml_string_to_array( $xmlstr ) {
|
239 |
$doc = new DOMDocument();
|
240 |
$doc->loadXML( $xmlstr );
|
256 |
$t = $child->tagName;
|
257 |
if(!isset($output[$t]))
|
258 |
$output[$t] = array();
|
259 |
+
if ( is_array($output) )
|
260 |
+
$output[$t][] = $v;
|
261 |
}
|
262 |
elseif($v || $v === '0')
|
263 |
$output = (string) $v;
|
276 |
$output[$t] = $v[0];
|
277 |
}
|
278 |
}
|
279 |
+
if ( empty( $output ) ) return '';
|
280 |
return $output;
|
281 |
}
|
282 |
|
394 |
wp_reset_postdata();
|
395 |
return $buf;
|
396 |
}
|
397 |
+
|
398 |
/**
|
399 |
* Handles exporting settings data for a module.
|
400 |
*/
|
447 |
* Print a basic error message.
|
448 |
*/
|
449 |
function output_error( $error ) {
|
450 |
+
echo "<div class='aioseop_module error'>$error</div>";
|
451 |
return FALSE;
|
452 |
}
|
453 |
+
|
454 |
/***
|
455 |
* Backwards compatibility - see http://php.net/manual/en/function.str-getcsv.php
|
456 |
*/
|
858 |
} else {
|
859 |
$title = $v['name'];
|
860 |
if ( $title != $this->plugin_name ) $title = $this->plugin_name . ' - ' . $title;
|
861 |
+
if ( !empty( $v['help_link'] ) )
|
862 |
+
$title .= "<a class='aioseop_help_text_link aioseop_meta_box_help' target='_blank' href='" . $lopts['help_link'] . "'>" . __( 'Help', 'all_in_one_seo_pack' ) . "</a>";
|
863 |
add_meta_box( $v['prefix'] . $k, $title, Array( $this, 'display_metabox' ), $posttype, $v['context'], $v['priority'], $v );
|
864 |
}
|
865 |
}
|
872 |
* Update postmeta for metabox.
|
873 |
*/
|
874 |
function save_post_data( $post_id ) {
|
875 |
+
static $update = false;
|
876 |
+
if ( $update ) return;
|
877 |
if ( $this->locations !== null ) {
|
878 |
foreach( $this->locations as $k => $v ) {
|
879 |
if ( isset($v['type']) && ( $v['type'] === 'metabox' ) ) {
|
887 |
$update = true;
|
888 |
}
|
889 |
}
|
890 |
+
if ( $update ) {
|
891 |
+
$prefix = $this->get_prefix( $k );
|
892 |
+
$options = apply_filters( $prefix . 'filter_metabox_options', $options, $k, $post_id );
|
893 |
+
update_post_meta( $post_id, '_' . $prefix . $k, $options );
|
894 |
+
}
|
895 |
}
|
896 |
}
|
897 |
}
|
935 |
$cmp = !strcmp( $v, $value );
|
936 |
else
|
937 |
$cmp = !strcmp( $v, "" );
|
938 |
+
// $cmp = !strcmp( (string)$v, (string)$value );
|
939 |
} else
|
940 |
$cmp = ( $value == $v );
|
941 |
if ( ( !$is_arr && $cmp ) || ( $is_arr && in_array( $v, $value ) ) )
|
982 |
$buf .= "<input name='$name' type='{$options['type']}' $attr>\n"; break;
|
983 |
case 'textarea': $buf .= "<textarea name='$name' $attr>$value</textarea>"; break;
|
984 |
case 'image': $buf .= "<input class='aioseop_upload_image_button button-primary' type='button' value='Upload Image' style='float:left;' />" .
|
985 |
+
"<input class='aioseop_upload_image_label' name='$name' type='text' $attr value='$value' size=57 style='float:left;clear:left;'>\n";
|
986 |
break;
|
987 |
case 'html': $buf .= $value; break;
|
988 |
default: $buf .= "<input name='$name' type='{$options['type']}' $attr value='$value'>\n";
|
1032 |
static $location_settings = Array();
|
1033 |
$defaults = null;
|
1034 |
$prefix = $this->get_prefix( $location );
|
1035 |
+
$help_link = '';
|
1036 |
+
if ( is_array( $meta_args['args'] ) && !empty( $meta_args['args']['default_options'] ) ) {
|
1037 |
$defaults = $meta_args['args']['default_options'];
|
1038 |
+
}
|
1039 |
+
if ( !empty( $meta_args['callback_args'] ) ) {
|
1040 |
+
if ( !empty( $meta_args['callback_args']['help_link'] ) ) {
|
1041 |
+
$help_link = $meta_args['callback_args']['help_link'];
|
1042 |
+
}
|
1043 |
+
}
|
1044 |
+
if ( !empty( $help_link ) )
|
1045 |
+
echo "<a class='aioseop_help_text_link aioseop_meta_box_help' target='_blank' href='" . $help_link . "'>" . __( 'Help', 'all_in_one_seo_pack' ) . "</a>";
|
1046 |
+
|
1047 |
if ( !isset( $location_settings[$prefix] ) ) {
|
1048 |
$current_options = apply_filters( "{$this->prefix}display_options", $this->get_current_options( Array(), $location, $defaults ), $location );
|
1049 |
$settings = apply_filters( "{$this->prefix}display_settings", $this->setting_options( $location, $defaults ), $location, $current_options );
|
1050 |
+
$current_options = apply_filters( "{$this->prefix}override_options", $current_options, $location, $settings );
|
1051 |
$location_settings[$prefix]['current_options'] = $current_options;
|
1052 |
$location_settings[$prefix]['settings'] = $settings;
|
1053 |
} else {
|
1202 |
<div id="aioseop_top_button">
|
1203 |
<div id="aiosp_ajax_settings_message"></div>
|
1204 |
<?php
|
1205 |
+
|
1206 |
$submit_options = Array('action' => Array( 'type' => 'hidden', 'value' => 'aiosp_update_module' ),
|
1207 |
'module' => Array( 'type' => 'hidden', 'value' => get_class( $this ) ),
|
1208 |
+
'location' => Array( 'type' => 'hidden', 'value' => $location ),
|
1209 |
'nonce-aioseop' => Array( 'type' => 'hidden', 'value' => wp_create_nonce('aioseop-nonce') ),
|
1210 |
'page_options' => Array( 'type' => 'hidden', 'value' => 'aiosp_home_description' ),
|
1211 |
'Submit' => Array( 'type' => 'submit', 'class' => 'button-primary', 'value' => __('Update Options', 'all_in_one_seo_pack') . ' »' ),
|
1225 |
if ($opts !== FALSE) $this->options = $opts;
|
1226 |
if ( is_array( $this->layout ) ) {
|
1227 |
foreach( $this->layout as $l => $lopts ) {
|
1228 |
+
if ( !isset( $lopts['tab'] ) || ( $this->current_tab == $lopts['tab'] ) ) {
|
1229 |
+
$title = $lopts['name'];
|
1230 |
+
if ( !empty( $lopts['help_link'] ) )
|
1231 |
+
$title .= "<a class='aioseop_help_text_link aioseop_meta_box_help' target='_blank' href='" . $lopts['help_link'] . "'>" . __( 'Help', 'all_in_one_seo_pack' ) . "</a>";
|
1232 |
+
add_meta_box( $this->get_prefix( $location ) . $l . "_metabox", $title, array($this, 'display_options' ),
|
1233 |
+
"{$this->prefix}settings", 'advanced', 'default', $lopts );
|
1234 |
+
}
|
1235 |
}
|
1236 |
} else add_meta_box( $this->get_prefix( $location ) . "metabox", $name, array($this, 'display_options'), "{$this->prefix}settings", 'advanced');
|
1237 |
do_meta_boxes( "{$this->prefix}settings", 'advanced', $location );
|
aioseop_performance.php
CHANGED
@@ -15,16 +15,19 @@ if ( !class_exists( 'All_in_One_SEO_Pack_Performance' ) ) {
|
|
15 |
$this->prefix = 'aiosp_performance_'; // option prefix
|
16 |
$this->file = __FILE__; // the current file
|
17 |
parent::__construct();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
$this->default_options = array(
|
19 |
'memory_limit' => Array( 'name' => __( 'Raise memory limit', 'all_in_one_seo_pack' ),
|
20 |
-
|
21 |
-
'default' => '256M',
|
22 |
-
'type' => 'select',
|
23 |
'initial_options' => Array( 0 => __( "Use the system default", 'all_in_one_seo_pack' ), '32M' => '32MB', '64M' => '64MB', '128M' => '128MB', '256M' => '256MB' ) ),
|
24 |
'execution_time' => Array( 'name' => __( 'Raise execution time', 'all_in_one_seo_pack' ),
|
25 |
-
|
26 |
-
'default' => '',
|
27 |
-
'type' => 'select',
|
28 |
'initial_options' => Array( '' => __( "Use the system default", 'all_in_one_seo_pack' ), 30 => '30s', 60 => '1m', 120 => '2m', 300 => '5m', 0 => __( 'No limit', 'all_in_one_seo_pack' ) ) )
|
29 |
);
|
30 |
|
@@ -32,9 +35,7 @@ if ( !class_exists( 'All_in_One_SEO_Pack_Performance' ) ) {
|
|
32 |
if ( aioseop_option_isset( 'aiosp_rewrite_titles' ) && $aioseop_options['aiosp_rewrite_titles'] ) {
|
33 |
$this->default_options['force_rewrites'] = Array(
|
34 |
'name' => __( 'Force Rewrites:', 'all_in_one_seo_pack' ),
|
35 |
-
'
|
36 |
-
'default' => 1,
|
37 |
-
'type' => 'radio',
|
38 |
'initial_options' => Array( 1 => __( 'Enabled', 'all_in_one_seo_pack' ),
|
39 |
0 => __( 'Disabled', 'all_in_one_seo_pack' ) )
|
40 |
);
|
@@ -43,6 +44,7 @@ if ( !class_exists( 'All_in_One_SEO_Pack_Performance' ) ) {
|
|
43 |
$this->layout = Array(
|
44 |
'default' => Array(
|
45 |
'name' => $this->name,
|
|
|
46 |
'options' => array_keys( $this->default_options )
|
47 |
)
|
48 |
);
|
@@ -53,11 +55,16 @@ if ( !class_exists( 'All_in_One_SEO_Pack_Performance' ) ) {
|
|
53 |
|
54 |
$this->layout['system_status'] = Array(
|
55 |
'name' => __( 'System Status', 'all_in_one_seo_pack' ),
|
|
|
56 |
'options' => array_keys( $system_status )
|
57 |
);
|
58 |
|
59 |
$this->default_options = array_merge( $this->default_options, $system_status );
|
60 |
|
|
|
|
|
|
|
|
|
61 |
add_filter( $this->prefix . 'display_options', Array( $this, 'display_options_filter' ), 10, 2 );
|
62 |
add_filter( $this->prefix . 'update_options', Array( $this, 'update_options_filter' ), 10, 2 );
|
63 |
add_action( $this->prefix . 'settings_update', Array( $this, 'settings_update_action' ), 10, 2 );
|
@@ -111,7 +118,7 @@ if ( !class_exists( 'All_in_One_SEO_Pack_Performance' ) ) {
|
|
111 |
}
|
112 |
|
113 |
function settings_page_init() {
|
114 |
-
$this->default_options['status']['default'] = $this->get_serverinfo();
|
115 |
}
|
116 |
|
117 |
function menu_order() {
|
@@ -239,4 +246,4 @@ if ( !class_exists( 'All_in_One_SEO_Pack_Performance' ) ) {
|
|
239 |
return $buf;
|
240 |
}
|
241 |
}
|
242 |
-
}
|
15 |
$this->prefix = 'aiosp_performance_'; // option prefix
|
16 |
$this->file = __FILE__; // the current file
|
17 |
parent::__construct();
|
18 |
+
|
19 |
+
$help_text = Array(
|
20 |
+
"memory_limit" => __( "This setting allows you to raise your PHP memory limit to a reasonable value. Note: WordPress core and other WordPress plugins may also change the value of the memory limit.<br /><a href='http://semperplugins.com/documentation/performance-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
21 |
+
"execution_time" => __( "This setting allows you to raise your PHP execution time to a reasonable value.<br /><a href='http://semperplugins.com/documentation/performance-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
22 |
+
"force_rewrites" => __( "Use output buffering to ensure that the title gets rewritten. Enable this option if you run into issues with the title tag being set by your theme or another plugin.<br /><a href='http://semperplugins.com/documentation/performance-settings/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' )
|
23 |
+
);
|
24 |
+
|
25 |
$this->default_options = array(
|
26 |
'memory_limit' => Array( 'name' => __( 'Raise memory limit', 'all_in_one_seo_pack' ),
|
27 |
+
'default' => '256M', 'type' => 'select',
|
|
|
|
|
28 |
'initial_options' => Array( 0 => __( "Use the system default", 'all_in_one_seo_pack' ), '32M' => '32MB', '64M' => '64MB', '128M' => '128MB', '256M' => '256MB' ) ),
|
29 |
'execution_time' => Array( 'name' => __( 'Raise execution time', 'all_in_one_seo_pack' ),
|
30 |
+
'default' => '', 'type' => 'select',
|
|
|
|
|
31 |
'initial_options' => Array( '' => __( "Use the system default", 'all_in_one_seo_pack' ), 30 => '30s', 60 => '1m', 120 => '2m', 300 => '5m', 0 => __( 'No limit', 'all_in_one_seo_pack' ) ) )
|
32 |
);
|
33 |
|
35 |
if ( aioseop_option_isset( 'aiosp_rewrite_titles' ) && $aioseop_options['aiosp_rewrite_titles'] ) {
|
36 |
$this->default_options['force_rewrites'] = Array(
|
37 |
'name' => __( 'Force Rewrites:', 'all_in_one_seo_pack' ),
|
38 |
+
'default' => 1, 'type' => 'radio',
|
|
|
|
|
39 |
'initial_options' => Array( 1 => __( 'Enabled', 'all_in_one_seo_pack' ),
|
40 |
0 => __( 'Disabled', 'all_in_one_seo_pack' ) )
|
41 |
);
|
44 |
$this->layout = Array(
|
45 |
'default' => Array(
|
46 |
'name' => $this->name,
|
47 |
+
'help_link' => 'http://semperplugins.com/documentation/performance-settings/',
|
48 |
'options' => array_keys( $this->default_options )
|
49 |
)
|
50 |
);
|
55 |
|
56 |
$this->layout['system_status'] = Array(
|
57 |
'name' => __( 'System Status', 'all_in_one_seo_pack' ),
|
58 |
+
'help_link' => 'http://semperplugins.com/documentation/performance-settings/',
|
59 |
'options' => array_keys( $system_status )
|
60 |
);
|
61 |
|
62 |
$this->default_options = array_merge( $this->default_options, $system_status );
|
63 |
|
64 |
+
if ( !empty( $help_text ) )
|
65 |
+
foreach( $help_text as $k => $v )
|
66 |
+
$this->default_options[$k]['help_text'] = $v;
|
67 |
+
|
68 |
add_filter( $this->prefix . 'display_options', Array( $this, 'display_options_filter' ), 10, 2 );
|
69 |
add_filter( $this->prefix . 'update_options', Array( $this, 'update_options_filter' ), 10, 2 );
|
70 |
add_action( $this->prefix . 'settings_update', Array( $this, 'settings_update_action' ), 10, 2 );
|
118 |
}
|
119 |
|
120 |
function settings_page_init() {
|
121 |
+
$this->default_options['status']['default'] = $this->get_serverinfo();
|
122 |
}
|
123 |
|
124 |
function menu_order() {
|
246 |
return $buf;
|
247 |
}
|
248 |
}
|
249 |
+
}
|
aioseop_sitemap.php
CHANGED
@@ -19,57 +19,66 @@ if ( !class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
|
|
19 |
$this->prefix = 'aiosp_sitemap_'; // option prefix
|
20 |
$this->file = __FILE__; // the current file
|
21 |
parent::__construct();
|
22 |
-
$this->comment_string = __( "Sitemap %s generated by All in One SEO Pack %s by Michael Torbert of Semper Fi Web Design on %s",
|
23 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
|
25 |
$this->default_options = array(
|
26 |
'filename' => Array( 'name' => __( 'Filename Prefix', 'all_in_one_seo_pack' ),
|
27 |
-
'help_text' => __( 'The prefix for your sitemap file name. This will default to "sitemap."', 'all_in_one_seo_pack' ),
|
28 |
'default' => 'sitemap', 'type' => 'text', 'sanitize' => 'filename' ),
|
29 |
-
'google' => Array( 'name' => __( 'Notify Google', 'all_in_one_seo_pack'),
|
30 |
-
|
31 |
-
'
|
32 |
-
'help_text' => __('Notify Bing when you update your sitemap settings.', 'all_in_one_seo_pack' ) ),
|
33 |
-
'indexes' => Array( 'name' => __( 'Enable Sitemap Indexes', 'all_in_one_seo_pack' ),
|
34 |
-
'help_text' => __( 'Organize sitemap entries into distinct files in your sitemap.', 'all_in_one_seo_pack' ) ),
|
35 |
'paginate' => Array( 'name' => __( 'Paginate Sitemap Indexes', 'all_in_one_seo_pack' ),
|
36 |
-
'
|
37 |
-
'condshow' => Array( "aiosp_sitemap_indexes" => 'on' ) ),
|
38 |
'max_posts' => Array( 'name' => __( 'Maximum Posts Per Sitemap', 'all_in_one_seo_pack' ),
|
39 |
-
|
40 |
-
|
41 |
-
'condshow' => Array( "aiosp_sitemap_indexes" => 'on', "aiosp_sitemap_paginate" => 'on' ) ),
|
42 |
'posttypes' => Array( 'name' => __( 'Post Types', 'all_in_one_seo_pack'),
|
43 |
-
'help_text' => __( 'Select which post types appear in your sitemap.', 'all_in_one_seo_pack' ),
|
44 |
'type' => 'multicheckbox', 'default' => 'all' ),
|
45 |
'taxonomies'=> Array( 'name' => __( 'Taxonomies', 'all_in_one_seo_pack' ),
|
46 |
-
'help_text' => __( 'Select which taxonomy archives appear in your sitemap.', 'all_in_one_seo_pack' ),
|
47 |
'type' => 'multicheckbox', 'default' => 'all' ),
|
48 |
-
'archive' => Array( 'name' => __( 'Include Date Archive Pages', 'all_in_one_seo_pack' ),
|
49 |
-
|
50 |
-
'
|
51 |
-
|
52 |
-
'
|
53 |
-
'help_text' => __( 'Create a compressed sitemap file in .xml.gz format', 'all_in_one_seo_pack' ) ),
|
54 |
-
'robots' => Array( 'name' => __( 'Link From Virtual Robots.txt', 'all_in_one_seo_pack' ), 'default' => 'On',
|
55 |
-
'help_text' => __( 'Places a link to your Sitemap.xml into your virtual Robots.txt file.', 'all_in_one_seo_pack' ) ),
|
56 |
-
'rewrite' => Array( 'name' => __( 'Dynamically Generate Sitemap', 'all_in_one_seo_pack' ), 'default' => 'On',
|
57 |
-
'help_text' => __( 'Use rewrites to generate your sitemap on the fly. NOTE: This is required for WordPress Multisite.', 'all_in_one_seo_pack') )
|
58 |
-
|
59 |
);
|
60 |
|
61 |
$status_options = Array(
|
62 |
'link' => Array( 'default' => '', 'type' => 'html', 'label' => 'none', 'save' => false ),
|
63 |
-
'debug' => Array( 'name' => __( 'Debug Log', 'all_in_one_seo_pack' ), 'default' => '', 'type' => 'html', 'disabled' => 'disabled', 'save' => false, 'label' => 'none', 'rows' => 5, 'cols' => 120, 'style' => 'min-width:950px'
|
64 |
-
'help_text' => __( 'Debug messages and status information for sitemap.', 'all_in_one_seo_pack' ) )
|
65 |
);
|
66 |
|
67 |
$this->layout = Array(
|
68 |
'status' => Array(
|
69 |
'name' => __( 'Sitemap Status', 'all_in_one_seo_pack' ),
|
|
|
70 |
'options' => array_keys( $status_options ) ),
|
71 |
'default' => Array(
|
72 |
'name' => $this->name,
|
|
|
73 |
'options' => array_keys( $this->default_options )
|
74 |
)
|
75 |
);
|
@@ -102,41 +111,49 @@ if ( !class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
|
|
102 |
|
103 |
$addl_options = Array(
|
104 |
'addl_instructions' => Array( 'default' => '<div>' . __( 'Enter information below for any additional links for your sitemap not already managed through WordPress.', 'all_in_one_seo_pack' ) . '</div><br />', 'type' => 'html', 'label' => 'none', 'save' => false ),
|
105 |
-
'addl_url' => Array( 'name' => __( 'Page URL', 'all_in_one_seo_pack' ), 'type' => 'text', '
|
106 |
-
'addl_prio' => Array( 'name' => __( 'Page Priority', 'all_in_one_seo_pack' ), 'type' => 'select', '
|
107 |
-
'addl_freq' => Array( 'name' => __( 'Page Frequency', 'all_in_one_seo_pack' ), 'type' => 'select', '
|
108 |
-
'addl_mod' => Array( 'name' => __( 'Last Modified', 'all_in_one_seo_pack' ), 'type' => 'text', '
|
109 |
'addl_pages'=> Array( 'name' => __( 'Additional Pages', 'all_in_one_seo_pack' ), 'type' => 'custom', 'save' => true ),
|
110 |
'Submit' => Array( 'type' => 'submit', 'class' => 'button-primary', 'name' => __( 'Add URL', 'all_in_one_seo_pack' ) . ' »', 'style' => 'margin-left: 20px;', 'label' => 'none', 'save' => false, 'value' => 1 )
|
111 |
);
|
112 |
|
113 |
$excl_options = Array(
|
114 |
-
'excl_categories' => Array( 'name' => __( 'Excluded Categories', 'all_in_one_seo_pack' ), 'type' => 'multicheckbox', '
|
115 |
-
'excl_pages' => Array( 'name' => __( 'Excluded Pages', 'all_in_one_seo_pack' ), 'type' => 'text'
|
116 |
);
|
117 |
|
118 |
$this->layout['addl_pages'] = Array(
|
119 |
'name' => __( 'Additional Pages', 'all_in_one_seo_pack' ),
|
|
|
120 |
'options' => array_keys( $addl_options )
|
121 |
);
|
122 |
|
123 |
$this->layout['excl_pages'] = Array(
|
124 |
'name' => __( 'Excluded Items', 'all_in_one_seo_pack' ),
|
|
|
125 |
'options' => array_keys( $excl_options )
|
126 |
);
|
127 |
|
128 |
$this->layout['priorities'] = Array(
|
129 |
'name' => __( 'Priorities', 'all_in_one_seo_pack' ),
|
|
|
130 |
'options' => array_keys( $prio_options )
|
131 |
);
|
132 |
|
133 |
$this->layout['frequencies'] = Array(
|
134 |
'name' => __( 'Frequencies', 'all_in_one_seo_pack' ),
|
|
|
135 |
'options' => array_keys( $freq_options )
|
136 |
);
|
137 |
|
138 |
$this->default_options = array_merge( $status_options, $this->default_options, $addl_options, $excl_options, $prio_options, $freq_options );
|
139 |
|
|
|
|
|
|
|
|
|
140 |
// load initial options / set defaults
|
141 |
$this->update_options( );
|
142 |
|
@@ -167,6 +184,7 @@ if ( !class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
|
|
167 |
if ( !empty( $args['value'] ) ) {
|
168 |
$buf .= "<table class='aioseop_table' cellpadding=0 cellspacing=0>\n";
|
169 |
foreach ( $args['value'] as $k => $v ) {
|
|
|
170 |
$buf .= "\t<tr><td><a href='#' title='$k' class='aiosp_delete_url'></a> {$k}</td><td>{$v['prio']}</td><td>{$v['freq']}</td><td>{$v['mod']}</td></tr>\n";
|
171 |
}
|
172 |
$buf .= "</table>\n";
|
@@ -174,9 +192,10 @@ if ( !class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
|
|
174 |
}
|
175 |
$args['options']['type'] = 'hidden';
|
176 |
if ( !empty( $args['value'] ) )
|
177 |
-
$args['value'] =
|
178 |
else
|
179 |
$args['options']['type'] = 'html';
|
|
|
180 |
$buf .= $this->get_option_html( $args );
|
181 |
$buf .= '</div>';
|
182 |
return $buf;
|
@@ -265,9 +284,9 @@ if ( !class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
|
|
265 |
|
266 |
/** Handle 'all' option for post types / taxonomies, further sanitization of filename, rewrites on for multisite, setting up addl pages option. **/
|
267 |
function filter_options( $options ) {
|
268 |
-
if ( is_array( $options['aiosp_sitemap_posttypes'] ) && in_array( 'all', $options['aiosp_sitemap_posttypes'] ) )
|
269 |
$options['aiosp_sitemap_posttypes'] = array_keys( $this->default_options['posttypes' ]['initial_options'] );
|
270 |
-
if ( is_array( $options['aiosp_sitemap_taxonomies'] ) && in_array( 'all', $options['aiosp_sitemap_taxonomies'] ) )
|
271 |
$options['aiosp_sitemap_taxonomies'] = array_keys( $this->default_options['taxonomies' ]['initial_options'] );
|
272 |
$opt = $this->prefix . 'filename';
|
273 |
if ( isset( $options[$opt] ) && !empty( $options[$opt] ) )
|
@@ -277,8 +296,21 @@ if ( !class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
|
|
277 |
if ( is_multisite() ) $options[ $this->prefix . 'rewrite'] = 'On';
|
278 |
if ( !is_array( $options[ $this->prefix . 'addl_pages' ] ) ) {
|
279 |
$options[ $this->prefix . 'addl_pages' ] = wp_specialchars_decode( stripslashes_deep( $options[ $this->prefix . 'addl_pages' ] ), ENT_QUOTES );
|
280 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
281 |
}
|
|
|
282 |
if ( !empty( $_POST[ $this->prefix . 'addl_url' ] ) ) {
|
283 |
foreach( Array( 'addl_url', 'addl_prio', 'addl_freq', 'addl_mod' ) as $field ) {
|
284 |
if ( !empty( $_POST[ $this->prefix . $field ] ) ) {
|
@@ -291,7 +323,7 @@ if ( !class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
|
|
291 |
$options[ $this->prefix . 'addl_pages' ][ $_POST[ $this->prefix . 'addl_url' ] ] = Array(
|
292 |
'prio' => $_POST[ $this->prefix . 'addl_prio' ],
|
293 |
'freq' => $_POST[ $this->prefix . 'addl_freq' ],
|
294 |
-
'mod' => $_POST[ $this->prefix . 'addl_mod' ]
|
295 |
);
|
296 |
}
|
297 |
return $options;
|
@@ -685,16 +717,25 @@ if ( !class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
|
|
685 |
$this->debug_message( __( 'Updated sitemap settings.', 'all_in_one_seo_pack' ) );
|
686 |
}
|
687 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
688 |
/** Write sitemaps (compressed or otherwise) to the filesystem. **/
|
689 |
function write_sitemaps( $filename, $contents ) {
|
690 |
$this->write_sitemap( $filename . ".xml", $contents );
|
691 |
if ( $this->options['aiosp_sitemap_gzipped'] ) $this->write_sitemap( $filename . ".xml.gz", $contents, true );
|
692 |
}
|
693 |
-
|
694 |
/** Write a single sitemap to the filesystem, handle compression. **/
|
695 |
function write_sitemap($filename, $contents, $gzip = false) {
|
696 |
if ( $gzip ) $contents = gzencode( $contents );
|
|
|
697 |
$filename = get_home_path() . sanitize_file_name( $filename );
|
|
|
698 |
return $this->save_file( $filename, $contents );
|
699 |
}
|
700 |
|
@@ -879,14 +920,22 @@ if ( !class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
|
|
879 |
$prio = array_merge( $child, $prio, $prio2, $prio3 );
|
880 |
return $this->build_sitemap( $prio, $comment );
|
881 |
}
|
882 |
-
|
883 |
/** Output the XML for a sitemap. **/
|
884 |
function output_sitemap( $urls, $comment = '' ) {
|
885 |
$max_items = 50000;
|
886 |
if ( !is_array( $urls ) ) return null;
|
887 |
echo '<?xml version="1.0" encoding="UTF-8"?>' . "\r\n\r\n";
|
888 |
echo "<!-- " . sprintf( $this->comment_string, $comment, AIOSEOP_VERSION, date('D, d M Y H:i:s e') ) . " -->\r\n";
|
889 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
890 |
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\r\n";
|
891 |
$count = 0;
|
892 |
foreach ( $urls as $url ) {
|
@@ -1418,7 +1467,7 @@ if ( !class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
|
|
1418 |
/*
|
1419 |
if ( version_compare( $wp_version, '3.5', '>=' ) ) {
|
1420 |
$args['meta_query'] = Array(
|
1421 |
-
Array( 'key' => '_aioseop_sitemap_exclude', 'value' => '', 'compare' => 'NOT EXISTS' )
|
1422 |
);
|
1423 |
} else {
|
1424 |
*/
|
@@ -1427,11 +1476,11 @@ if ( !class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
|
|
1427 |
$ex_args['meta_value'] = 'on';
|
1428 |
$ex_args['meta_compare'] = '=';
|
1429 |
$ex_args['fields'] = 'ids';
|
|
|
1430 |
$q = new WP_Query( $ex_args );
|
1431 |
-
if ( !
|
1432 |
-
|
1433 |
-
//
|
1434 |
-
|
1435 |
$posts = get_posts( apply_filters( $this->prefix . 'post_query', $args ) );
|
1436 |
if ( !empty( $exclude_slugs ) ) {
|
1437 |
foreach( $posts as $k => $v ) {
|
19 |
$this->prefix = 'aiosp_sitemap_'; // option prefix
|
20 |
$this->file = __FILE__; // the current file
|
21 |
parent::__construct();
|
22 |
+
$this->comment_string = __( "Sitemap %s generated by All in One SEO Pack %s by Michael Torbert of Semper Fi Web Design on %s", 'all_in_one_seo_pack' );
|
23 |
+
|
24 |
+
$help_text = Array(
|
25 |
+
"filename" => __( "Specifies the name of your sitemap file. This will default to 'sitemap'.<br /><a href='http://semperplugins.com/documentation/xml-sitemaps-module/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
26 |
+
"google" => __( "Notify Google when you update your sitemap settings.<br /><a href='http://semperplugins.com/documentation/xml-sitemaps-module/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
27 |
+
"bing" => __("Notify Bing when you update your sitemap settings.<br /><a href='http://semperplugins.com/documentation/xml-sitemaps-module/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
28 |
+
"indexes" => __( "Organize sitemap entries into distinct files in your sitemap. Enable this only if your sitemap contains over 50,000 URLs or the file is over 5MB in size.<br /><a href='http://semperplugins.com/documentation/xml-sitemaps-module/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
29 |
+
"paginate" => __( "Split long sitemaps into separate files.<br /><a href='http://semperplugins.com/documentation/xml-sitemaps-module/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
30 |
+
"max_posts" => __( "Allows you to specify the maximum number of posts in a sitemap (up to 50,000).<br /><a href='http://semperplugins.com/documentation/xml-sitemaps-module/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
31 |
+
"posttypes" => __( "Select which Post Types appear in your sitemap.<br /><a href='http://semperplugins.com/documentation/xml-sitemaps-module/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
32 |
+
"taxonomies" => __( "Select which taxonomy archives appear in your sitemap.<br /><a href='http://semperplugins.com/documentation/xml-sitemaps-module/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
33 |
+
"archive" => __( "Include Date Archives in your sitemap.<br /><a href='http://semperplugins.com/documentation/xml-sitemaps-module/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
34 |
+
"author" => __( "Include Author Archives in your sitemap.<br /><a href='http://semperplugins.com/documentation/xml-sitemaps-module/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
35 |
+
"gzipped" => __( "Create a compressed sitemap file in .xml.gz format.<br /><a href='http://semperplugins.com/documentation/xml-sitemaps-module/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
36 |
+
"robots" => __( 'Places a link to your Sitemap.xml into your virtual Robots.txt file.', 'all_in_one_seo_pack' ),
|
37 |
+
"rewrite" => __( "Places a link to the sitemap file in your virtual Robots.txt file which WordPress creates.<br /><a href='http://semperplugins.com/documentation/xml-sitemaps-module/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
38 |
+
"debug" => __( "Use rewrites to generate your sitemap on the fly. NOTE: This is required for WordPress Multisite.<br /><a href='http://semperplugins.com/documentation/xml-sitemaps-module/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack'),
|
39 |
+
"addl_url" => __( 'URL to the page.', 'all_in_one_seo_pack' ),
|
40 |
+
"addl_prio" => __( 'The priority of the page.', 'all_in_one_seo_pack' ),
|
41 |
+
"addl_freq" => __( 'The frequency of the page.', 'all_in_one_seo_pack' ),
|
42 |
+
"addl_mod" => __( 'Last modified date of the page.', 'all_in_one_seo_pack' ),
|
43 |
+
"excl_categories" => __( "Entries from these categories will be excluded from the sitemap.<br /><a href='http://semperplugins.com/documentation/xml-sitemaps-module/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' ),
|
44 |
+
"excl_pages" => __( "Use page slugs or page IDs, seperated by commas, to exclude pages from the sitemap.<br /><a href='http://semperplugins.com/documentation/xml-sitemaps-module/' target='_blank'>Click here for documentation on this setting</a>", 'all_in_one_seo_pack' )
|
45 |
+
);
|
46 |
|
47 |
$this->default_options = array(
|
48 |
'filename' => Array( 'name' => __( 'Filename Prefix', 'all_in_one_seo_pack' ),
|
|
|
49 |
'default' => 'sitemap', 'type' => 'text', 'sanitize' => 'filename' ),
|
50 |
+
'google' => Array( 'name' => __( 'Notify Google', 'all_in_one_seo_pack') ),
|
51 |
+
'bing' => Array( 'name' => __( 'Notify Bing', 'all_in_one_seo_pack') ),
|
52 |
+
'indexes' => Array( 'name' => __( 'Enable Sitemap Indexes', 'all_in_one_seo_pack' ) ),
|
|
|
|
|
|
|
53 |
'paginate' => Array( 'name' => __( 'Paginate Sitemap Indexes', 'all_in_one_seo_pack' ),
|
54 |
+
'condshow' => Array( "aiosp_sitemap_indexes" => 'on' ) ),
|
|
|
55 |
'max_posts' => Array( 'name' => __( 'Maximum Posts Per Sitemap', 'all_in_one_seo_pack' ),
|
56 |
+
'type' => 'text', 'default' => 50000,
|
57 |
+
'condshow' => Array( "aiosp_sitemap_indexes" => 'on', "aiosp_sitemap_paginate" => 'on' ) ),
|
|
|
58 |
'posttypes' => Array( 'name' => __( 'Post Types', 'all_in_one_seo_pack'),
|
|
|
59 |
'type' => 'multicheckbox', 'default' => 'all' ),
|
60 |
'taxonomies'=> Array( 'name' => __( 'Taxonomies', 'all_in_one_seo_pack' ),
|
|
|
61 |
'type' => 'multicheckbox', 'default' => 'all' ),
|
62 |
+
'archive' => Array( 'name' => __( 'Include Date Archive Pages', 'all_in_one_seo_pack' ) ),
|
63 |
+
'author' => Array( 'name' => __( 'Include Author Pages', 'all_in_one_seo_pack' ) ),
|
64 |
+
'gzipped' => Array( 'name' => __( 'Create Compressed Sitemap', 'all_in_one_seo_pack' ), 'default' => 'On' ),
|
65 |
+
'robots' => Array( 'name' => __( 'Link From Virtual Robots.txt', 'all_in_one_seo_pack' ), 'default' => 'On' ),
|
66 |
+
'rewrite' => Array( 'name' => __( 'Dynamically Generate Sitemap', 'all_in_one_seo_pack' ), 'default' => 'On' )
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
);
|
68 |
|
69 |
$status_options = Array(
|
70 |
'link' => Array( 'default' => '', 'type' => 'html', 'label' => 'none', 'save' => false ),
|
71 |
+
'debug' => Array( 'name' => __( 'Debug Log', 'all_in_one_seo_pack' ), 'default' => '', 'type' => 'html', 'disabled' => 'disabled', 'save' => false, 'label' => 'none', 'rows' => 5, 'cols' => 120, 'style' => 'min-width:950px' )
|
|
|
72 |
);
|
73 |
|
74 |
$this->layout = Array(
|
75 |
'status' => Array(
|
76 |
'name' => __( 'Sitemap Status', 'all_in_one_seo_pack' ),
|
77 |
+
'help_link' => 'http://semperplugins.com/documentation/xml-sitemaps-module/',
|
78 |
'options' => array_keys( $status_options ) ),
|
79 |
'default' => Array(
|
80 |
'name' => $this->name,
|
81 |
+
'help_link' => 'http://semperplugins.com/documentation/xml-sitemaps-module/',
|
82 |
'options' => array_keys( $this->default_options )
|
83 |
)
|
84 |
);
|
111 |
|
112 |
$addl_options = Array(
|
113 |
'addl_instructions' => Array( 'default' => '<div>' . __( 'Enter information below for any additional links for your sitemap not already managed through WordPress.', 'all_in_one_seo_pack' ) . '</div><br />', 'type' => 'html', 'label' => 'none', 'save' => false ),
|
114 |
+
'addl_url' => Array( 'name' => __( 'Page URL', 'all_in_one_seo_pack' ), 'type' => 'text', 'label' => 'top', 'save' => false ),
|
115 |
+
'addl_prio' => Array( 'name' => __( 'Page Priority', 'all_in_one_seo_pack' ), 'type' => 'select', 'initial_options' => $prio, 'label' => 'top', 'save' => false ),
|
116 |
+
'addl_freq' => Array( 'name' => __( 'Page Frequency', 'all_in_one_seo_pack' ), 'type' => 'select', 'initial_options' => $freq, 'label' => 'top', 'save' => false ),
|
117 |
+
'addl_mod' => Array( 'name' => __( 'Last Modified', 'all_in_one_seo_pack' ), 'type' => 'text', 'label' => 'top', 'save' => false ),
|
118 |
'addl_pages'=> Array( 'name' => __( 'Additional Pages', 'all_in_one_seo_pack' ), 'type' => 'custom', 'save' => true ),
|
119 |
'Submit' => Array( 'type' => 'submit', 'class' => 'button-primary', 'name' => __( 'Add URL', 'all_in_one_seo_pack' ) . ' »', 'style' => 'margin-left: 20px;', 'label' => 'none', 'save' => false, 'value' => 1 )
|
120 |
);
|
121 |
|
122 |
$excl_options = Array(
|
123 |
+
'excl_categories' => Array( 'name' => __( 'Excluded Categories', 'all_in_one_seo_pack' ), 'type' => 'multicheckbox', 'initial_options' => '' ),
|
124 |
+
'excl_pages' => Array( 'name' => __( 'Excluded Pages', 'all_in_one_seo_pack' ), 'type' => 'text' )
|
125 |
);
|
126 |
|
127 |
$this->layout['addl_pages'] = Array(
|
128 |
'name' => __( 'Additional Pages', 'all_in_one_seo_pack' ),
|
129 |
+
'help_link' => 'http://semperplugins.com/documentation/xml-sitemaps-module/#addl_pages',
|
130 |
'options' => array_keys( $addl_options )
|
131 |
);
|
132 |
|
133 |
$this->layout['excl_pages'] = Array(
|
134 |
'name' => __( 'Excluded Items', 'all_in_one_seo_pack' ),
|
135 |
+
'help_link' => 'http://semperplugins.com/documentation/xml-sitemaps-module/#excl_pages',
|
136 |
'options' => array_keys( $excl_options )
|
137 |
);
|
138 |
|
139 |
$this->layout['priorities'] = Array(
|
140 |
'name' => __( 'Priorities', 'all_in_one_seo_pack' ),
|
141 |
+
'help_link' => 'http://semperplugins.com/documentation/xml-sitemaps-module/#prio',
|
142 |
'options' => array_keys( $prio_options )
|
143 |
);
|
144 |
|
145 |
$this->layout['frequencies'] = Array(
|
146 |
'name' => __( 'Frequencies', 'all_in_one_seo_pack' ),
|
147 |
+
'help_link' => 'http://semperplugins.com/documentation/xml-sitemaps-module/#freq',
|
148 |
'options' => array_keys( $freq_options )
|
149 |
);
|
150 |
|
151 |
$this->default_options = array_merge( $status_options, $this->default_options, $addl_options, $excl_options, $prio_options, $freq_options );
|
152 |
|
153 |
+
if ( !empty( $help_text ) )
|
154 |
+
foreach( $help_text as $k => $v )
|
155 |
+
$this->default_options[$k]['help_text'] = $v;
|
156 |
+
|
157 |
// load initial options / set defaults
|
158 |
$this->update_options( );
|
159 |
|
184 |
if ( !empty( $args['value'] ) ) {
|
185 |
$buf .= "<table class='aioseop_table' cellpadding=0 cellspacing=0>\n";
|
186 |
foreach ( $args['value'] as $k => $v ) {
|
187 |
+
if ( is_object( $v ) ) $v = (Array)$v;
|
188 |
$buf .= "\t<tr><td><a href='#' title='$k' class='aiosp_delete_url'></a> {$k}</td><td>{$v['prio']}</td><td>{$v['freq']}</td><td>{$v['mod']}</td></tr>\n";
|
189 |
}
|
190 |
$buf .= "</table>\n";
|
192 |
}
|
193 |
$args['options']['type'] = 'hidden';
|
194 |
if ( !empty( $args['value'] ) )
|
195 |
+
$args['value'] = json_encode( $args['value'] );
|
196 |
else
|
197 |
$args['options']['type'] = 'html';
|
198 |
+
if ( empty( $args['value'] ) ) $args['value'] = '';
|
199 |
$buf .= $this->get_option_html( $args );
|
200 |
$buf .= '</div>';
|
201 |
return $buf;
|
284 |
|
285 |
/** Handle 'all' option for post types / taxonomies, further sanitization of filename, rewrites on for multisite, setting up addl pages option. **/
|
286 |
function filter_options( $options ) {
|
287 |
+
if ( is_array( $options['aiosp_sitemap_posttypes'] ) && in_array( 'all', $options['aiosp_sitemap_posttypes'] ) && is_array( $this->default_options['posttypes' ]['initial_options'] ) )
|
288 |
$options['aiosp_sitemap_posttypes'] = array_keys( $this->default_options['posttypes' ]['initial_options'] );
|
289 |
+
if ( is_array( $options['aiosp_sitemap_taxonomies'] ) && in_array( 'all', $options['aiosp_sitemap_taxonomies'] ) && is_array( $this->default_options['taxonomies' ]['initial_options'] ) )
|
290 |
$options['aiosp_sitemap_taxonomies'] = array_keys( $this->default_options['taxonomies' ]['initial_options'] );
|
291 |
$opt = $this->prefix . 'filename';
|
292 |
if ( isset( $options[$opt] ) && !empty( $options[$opt] ) )
|
296 |
if ( is_multisite() ) $options[ $this->prefix . 'rewrite'] = 'On';
|
297 |
if ( !is_array( $options[ $this->prefix . 'addl_pages' ] ) ) {
|
298 |
$options[ $this->prefix . 'addl_pages' ] = wp_specialchars_decode( stripslashes_deep( $options[ $this->prefix . 'addl_pages' ] ), ENT_QUOTES );
|
299 |
+
$decoded = json_decode( $options[ $this->prefix . 'addl_pages' ] );
|
300 |
+
if ( $decoded === NULL )
|
301 |
+
$decoded = maybe_unserialize( $options[ $this->prefix . 'addl_pages' ] );
|
302 |
+
if ( !is_array( $decoded ) ) $decoded = (Array)$decoded;
|
303 |
+
if ( $decoded === NULL )
|
304 |
+
$decoded = $options[ $this->prefix . 'addl_pages' ];
|
305 |
+
$options[ $this->prefix . 'addl_pages' ] = $decoded;
|
306 |
+
}
|
307 |
+
if ( is_array( $options[ $this->prefix . 'addl_pages' ] ) ) {
|
308 |
+
foreach( $options[ $this->prefix . 'addl_pages' ] as $k => $v ) {
|
309 |
+
if ( is_object( $v ) )
|
310 |
+
$options[ $this->prefix . 'addl_pages' ][$k] = (Array)$v;
|
311 |
+
}
|
312 |
}
|
313 |
+
if ( isset( $options[ $this->prefix . 'addl_pages' ][0] ) ) unset( $options[ $this->prefix . 'addl_pages' ][0] );
|
314 |
if ( !empty( $_POST[ $this->prefix . 'addl_url' ] ) ) {
|
315 |
foreach( Array( 'addl_url', 'addl_prio', 'addl_freq', 'addl_mod' ) as $field ) {
|
316 |
if ( !empty( $_POST[ $this->prefix . $field ] ) ) {
|
323 |
$options[ $this->prefix . 'addl_pages' ][ $_POST[ $this->prefix . 'addl_url' ] ] = Array(
|
324 |
'prio' => $_POST[ $this->prefix . 'addl_prio' ],
|
325 |
'freq' => $_POST[ $this->prefix . 'addl_freq' ],
|
326 |
+
'mod' => $_POST[ $this->prefix . 'addl_mod' ],
|
327 |
);
|
328 |
}
|
329 |
return $options;
|
717 |
$this->debug_message( __( 'Updated sitemap settings.', 'all_in_one_seo_pack' ) );
|
718 |
}
|
719 |
|
720 |
+
function add_xml_mime_type( $mime ) {
|
721 |
+
if ( !empty( $mime ) ) {
|
722 |
+
$mime['xml'] = 'text/xml';
|
723 |
+
}
|
724 |
+
return $mime;
|
725 |
+
}
|
726 |
+
|
727 |
/** Write sitemaps (compressed or otherwise) to the filesystem. **/
|
728 |
function write_sitemaps( $filename, $contents ) {
|
729 |
$this->write_sitemap( $filename . ".xml", $contents );
|
730 |
if ( $this->options['aiosp_sitemap_gzipped'] ) $this->write_sitemap( $filename . ".xml.gz", $contents, true );
|
731 |
}
|
732 |
+
|
733 |
/** Write a single sitemap to the filesystem, handle compression. **/
|
734 |
function write_sitemap($filename, $contents, $gzip = false) {
|
735 |
if ( $gzip ) $contents = gzencode( $contents );
|
736 |
+
add_filter( 'upload_mimes', Array( $this, 'add_xml_mime_type' ) );
|
737 |
$filename = get_home_path() . sanitize_file_name( $filename );
|
738 |
+
remove_filter( 'upload_mimes', Array( $this, 'add_xml_mime_type' ) );
|
739 |
return $this->save_file( $filename, $contents );
|
740 |
}
|
741 |
|
920 |
$prio = array_merge( $child, $prio, $prio2, $prio3 );
|
921 |
return $this->build_sitemap( $prio, $comment );
|
922 |
}
|
923 |
+
|
924 |
/** Output the XML for a sitemap. **/
|
925 |
function output_sitemap( $urls, $comment = '' ) {
|
926 |
$max_items = 50000;
|
927 |
if ( !is_array( $urls ) ) return null;
|
928 |
echo '<?xml version="1.0" encoding="UTF-8"?>' . "\r\n\r\n";
|
929 |
echo "<!-- " . sprintf( $this->comment_string, $comment, AIOSEOP_VERSION, date('D, d M Y H:i:s e') ) . " -->\r\n";
|
930 |
+
$plugin_path = $this->plugin_path['url'];
|
931 |
+
$plugin_url = parse_url( $plugin_path );
|
932 |
+
$current_host = $_SERVER['HTTP_HOST'];
|
933 |
+
if ( empty( $current_host ) ) $current_host = $_SERVER['SERVER_NAME'];
|
934 |
+
if ( !empty( $current_host ) && ( $current_host != $plugin_url['host'] ) ) {
|
935 |
+
$plugin_url['host'] = $current_host;
|
936 |
+
$plugin_path = $this->unparse_url( $plugin_url );
|
937 |
+
}
|
938 |
+
echo '<?xml-stylesheet type="text/xsl" href="' . $plugin_path . 'sitemap.xsl"?>' . "\r\n";
|
939 |
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\r\n";
|
940 |
$count = 0;
|
941 |
foreach ( $urls as $url ) {
|
1467 |
/*
|
1468 |
if ( version_compare( $wp_version, '3.5', '>=' ) ) {
|
1469 |
$args['meta_query'] = Array(
|
1470 |
+
Array( 'key' => '_aioseop_sitemap_exclude', 'value' => 'null', 'compare' => 'NOT EXISTS' )
|
1471 |
);
|
1472 |
} else {
|
1473 |
*/
|
1476 |
$ex_args['meta_value'] = 'on';
|
1477 |
$ex_args['meta_compare'] = '=';
|
1478 |
$ex_args['fields'] = 'ids';
|
1479 |
+
$ex_args['posts_per_page'] = -1;
|
1480 |
$q = new WP_Query( $ex_args );
|
1481 |
+
if ( !is_array( $args['exclude'] ) ) $args['exclude'] = explode( ',', $args['exclude'] );
|
1482 |
+
if ( !empty( $q->posts ) ) $args['exclude'] = array_merge( $args['exclude'], $q->posts );
|
1483 |
+
//}
|
|
|
1484 |
$posts = get_posts( apply_filters( $this->prefix . 'post_query', $args ) );
|
1485 |
if ( !empty( $exclude_slugs ) ) {
|
1486 |
foreach( $posts as $k => $v ) {
|
all_in_one_seo_pack-ru_RU.mo
CHANGED
Binary file
|
all_in_one_seo_pack.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: All In One SEO Pack
|
4 |
Plugin URI: http://semperfiwebdesign.com
|
5 |
Description: Out-of-the-box SEO for your WordPress blog. <a href="admin.php?page=all-in-one-seo-pack/aioseop_class.php">Options configuration panel</a> | <a href="http://semperplugins.com/plugins/">Upgrade to Pro Version</a> | <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=mrtorbert%40gmail%2ecom&item_name=All%20In%20One%20SEO%20Pack&item_number=Support%20Open%20Source&no_shipping=0&no_note=1&tax=0¤cy_code=USD&lc=US&bn=PP%2dDonationsBF&charset=UTF%2d8">Donate</a> | <a href="http://semperplugins.com/support/" >Support</a> | <a href="https://www.amazon.com/wishlist/1NFQ133FNCOOA/ref=wl_web" target="_blank" title="Amazon Wish List">Amazon Wishlist</a>
|
6 |
-
Version: 2.0.
|
7 |
Author: Michael Torbert
|
8 |
Author URI: http://michaeltorbert.com
|
9 |
*/
|
@@ -30,11 +30,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
30 |
|
31 |
/**
|
32 |
* @package All-in-One-SEO-Pack
|
33 |
-
* @version 2.0.
|
34 |
*/
|
35 |
|
36 |
if ( ! defined( 'AIOSEOP_VERSION' ) )
|
37 |
-
define( 'AIOSEOP_VERSION', '2.0.
|
38 |
|
39 |
if ( ! defined( 'AIOSEOP_PLUGIN_DIR' ) ) {
|
40 |
define( 'AIOSEOP_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
|
@@ -61,9 +61,9 @@ if ( ! defined( 'AIOSEOP_BASELINE_MEM_LIMIT' ) )
|
|
61 |
define( 'AIOSEOP_BASELINE_MEM_LIMIT', 268435456 ); // 256MB
|
62 |
|
63 |
if ( ! defined( 'WP_CONTENT_URL' ) )
|
64 |
-
define( 'WP_CONTENT_URL',
|
65 |
if ( ! defined( 'WP_ADMIN_URL' ) )
|
66 |
-
define( 'WP_ADMIN_URL',
|
67 |
if ( ! defined( 'WP_CONTENT_DIR' ) )
|
68 |
define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' );
|
69 |
if ( ! defined( 'WP_PLUGIN_URL' ) )
|
3 |
Plugin Name: All In One SEO Pack
|
4 |
Plugin URI: http://semperfiwebdesign.com
|
5 |
Description: Out-of-the-box SEO for your WordPress blog. <a href="admin.php?page=all-in-one-seo-pack/aioseop_class.php">Options configuration panel</a> | <a href="http://semperplugins.com/plugins/">Upgrade to Pro Version</a> | <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=mrtorbert%40gmail%2ecom&item_name=All%20In%20One%20SEO%20Pack&item_number=Support%20Open%20Source&no_shipping=0&no_note=1&tax=0¤cy_code=USD&lc=US&bn=PP%2dDonationsBF&charset=UTF%2d8">Donate</a> | <a href="http://semperplugins.com/support/" >Support</a> | <a href="https://www.amazon.com/wishlist/1NFQ133FNCOOA/ref=wl_web" target="_blank" title="Amazon Wish List">Amazon Wishlist</a>
|
6 |
+
Version: 2.0.4
|
7 |
Author: Michael Torbert
|
8 |
Author URI: http://michaeltorbert.com
|
9 |
*/
|
30 |
|
31 |
/**
|
32 |
* @package All-in-One-SEO-Pack
|
33 |
+
* @version 2.0.4
|
34 |
*/
|
35 |
|
36 |
if ( ! defined( 'AIOSEOP_VERSION' ) )
|
37 |
+
define( 'AIOSEOP_VERSION', '2.0.4' );
|
38 |
|
39 |
if ( ! defined( 'AIOSEOP_PLUGIN_DIR' ) ) {
|
40 |
define( 'AIOSEOP_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
|
61 |
define( 'AIOSEOP_BASELINE_MEM_LIMIT', 268435456 ); // 256MB
|
62 |
|
63 |
if ( ! defined( 'WP_CONTENT_URL' ) )
|
64 |
+
define( 'WP_CONTENT_URL', site_url() . '/wp-content' );
|
65 |
if ( ! defined( 'WP_ADMIN_URL' ) )
|
66 |
+
define( 'WP_ADMIN_URL', site_url() . '/wp-admin' );
|
67 |
if ( ! defined( 'WP_CONTENT_DIR' ) )
|
68 |
define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' );
|
69 |
if ( ! defined( 'WP_PLUGIN_URL' ) )
|
quickedit_functions.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
function aioseop_ajax_edit_meta_form( post_id, post_title, meta ) {
|
2 |
var uform = jQuery('#aioseop_'+meta+'_' + post_id);
|
3 |
var element = uform.html(); var input;
|
4 |
-
input = '<
|
5 |
input += '<label style="float:left">';
|
6 |
input += '<a class="aioseop_mpc_SEO_admin_options_edit" href="javascript:void(0);" id="aioseop_'+meta+'_save_' + post_id + '" >';
|
7 |
input += '<img src="' + aioseopadmin.imgUrl+'accept.png" border="0" alt="" title="'+meta+'" /></a>';
|
@@ -13,7 +13,7 @@ function aioseop_ajax_edit_meta_form( post_id, post_title, meta ) {
|
|
13 |
uform.html( element );
|
14 |
});
|
15 |
jQuery('#aioseop_'+meta+'_save_' + post_id).click(function() {
|
16 |
-
var new_meta = jQuery( '
|
17 |
handle_post_meta( post_id, new_meta, meta );
|
18 |
});
|
19 |
}
|
1 |
function aioseop_ajax_edit_meta_form( post_id, post_title, meta ) {
|
2 |
var uform = jQuery('#aioseop_'+meta+'_' + post_id);
|
3 |
var element = uform.html(); var input;
|
4 |
+
input = '<textarea id="aioseop_new_'+meta+'_' + post_id + '" style="font-size:10px;width:65%;float:left" rows=2 cols=16>' + post_title + '</textarea>';
|
5 |
input += '<label style="float:left">';
|
6 |
input += '<a class="aioseop_mpc_SEO_admin_options_edit" href="javascript:void(0);" id="aioseop_'+meta+'_save_' + post_id + '" >';
|
7 |
input += '<img src="' + aioseopadmin.imgUrl+'accept.png" border="0" alt="" title="'+meta+'" /></a>';
|
13 |
uform.html( element );
|
14 |
});
|
15 |
jQuery('#aioseop_'+meta+'_save_' + post_id).click(function() {
|
16 |
+
var new_meta = jQuery( '#aioseop_new_'+meta+'_' + post_id ).val();
|
17 |
handle_post_meta( post_id, new_meta, meta );
|
18 |
});
|
19 |
}
|
readme.txt
CHANGED
@@ -1,50 +1,40 @@
|
|
1 |
=== All in One SEO Pack ===
|
2 |
Contributors: hallsofmontezuma
|
3 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=mrtorbert%40gmail%2ecom&item_name=All%20In%20One%20SEO%20Pack&item_number=Support%20Open%20Source&no_shipping=0&no_note=1&tax=0¤cy_code=USD&lc=US&bn=PP%2dDonationsBF&charset=UTF%2d8
|
4 |
-
Tags: seo, search engine optimization, google
|
5 |
Requires at least: 3.3
|
6 |
Tested up to: 3.6.1
|
7 |
Stable tag: trunk
|
8 |
|
9 |
-
WordPress SEO plugin to automatically optimize your Wordpress blog for Search Engines.
|
10 |
|
11 |
== Description ==
|
12 |
|
13 |
-
**Optimizes** your Wordpress blog for
|
14 |
|
15 |
**[Upgrade to Pro Version](http://semperplugins.com/plugins/all-in-one-seo-pack-pro-version/)**
|
16 |
|
17 |
-
[Support](http://
|
18 |
-
[Change Log](http://semperfiwebdesign.com/documentation/all-in-one-seo-pack/all-in-one-seo-pack-release-history/) |
|
19 |
-
[FAQ](http://semperfiwebdesign.com/documentation/all-in-one-seo-pack/all-in-one-seo-faq/)|
|
20 |
-
[Translations](http://semperfiwebdesign.com/documentation/all-in-one-seo-pack/translations-for-all-in-one-seo-pack/)
|
21 |
-
|
22 |
-
Some features:
|
23 |
-
|
24 |
|
|
|
25 |
* Google Analytics support
|
26 |
-
* Support for Custom Post Types
|
27 |
* Advanced Canonical URLs
|
28 |
* Fine tune Page Navigational Links
|
29 |
* Built-in API so other plugins/themes can access and extend functionality
|
30 |
* ONLY plugin to provide SEO Integration for WP e-Commerce sites
|
31 |
-
* Nonce Security
|
32 |
* Support for CMS-style WordPress installations
|
33 |
-
* Automatically optimizes your **titles** for search engines
|
34 |
* Generates **META tags automatically**
|
35 |
-
* Avoids the typical duplicate content found on
|
36 |
* For beginners, you don't even have to look at the options, it works out-of-the-box. Just install.
|
37 |
-
* For advanced users, you can fine-tune everything
|
38 |
* You can override any title and set any META description and any META keywords you want.
|
39 |
-
*
|
40 |
|
41 |
**If upgrading, please back up your database first!**
|
42 |
|
43 |
-
Be sure to check out:
|
44 |
-
[WP Security Scan](http://wordpress.org/extend/plugins/wp-security-scan/)
|
45 |
-
and
|
46 |
-
[SMS Text Message](http://wordpress.org/extend/plugins/sms-text-message/)
|
47 |
-
|
48 |
Follow me on Twitter to keep up with the latest updates [Michael
|
49 |
Torbert](http://twitter.com/michaeltorbert/)
|
50 |
|
@@ -56,23 +46,26 @@ manually.
|
|
56 |
1. You can either use the automatic plugin installer or your FTP program to upload it to your wp-content/plugins directory
|
57 |
the top-level folder. Don't just upload all the php files and put them in `/wp-content/plugins/`.
|
58 |
1. Activate the plugin through the 'Plugins' menu in WordPress
|
59 |
-
1. Visit your SEO options (*
|
60 |
1. Configure any options as desired, and then enable the plugin
|
61 |
1. That's it!
|
62 |
-
|
63 |
If you have to upgrade manually simply repeat the installation steps and re-enable the plugin.
|
64 |
|
65 |
**If upgrading, please back up your database first!**
|
66 |
|
67 |
-
|
68 |
-
|
|
|
69 |
|
70 |
== Frequently Asked Questions ==
|
71 |
|
72 |
-
Please read these **[FAQs](http://semperfiwebdesign.com/documentation/all-in-one-seo-pack/all-in-one-seo-faq/)** before requesting
|
73 |
-
**[
|
|
|
|
|
74 |
|
75 |
== Upgrade Notice ==
|
76 |
|
77 |
-
= 2.0.
|
78 |
This version fixes a security related bug. Please Upgrade immediately.
|
1 |
=== All in One SEO Pack ===
|
2 |
Contributors: hallsofmontezuma
|
3 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=mrtorbert%40gmail%2ecom&item_name=All%20In%20One%20SEO%20Pack&item_number=Support%20Open%20Source&no_shipping=0&no_note=1&tax=0¤cy_code=USD&lc=US&bn=PP%2dDonationsBF&charset=UTF%2d8
|
4 |
+
Tags: all in one, all in one seo, all in one seo pack, seo, search engine optimization, google
|
5 |
Requires at least: 3.3
|
6 |
Tested up to: 3.6.1
|
7 |
Stable tag: trunk
|
8 |
|
9 |
+
All in One SEO Pack is a WordPress SEO plugin to automatically optimize your Wordpress blog for Search Engines such as Google.
|
10 |
|
11 |
== Description ==
|
12 |
|
13 |
+
All in One SEO Pack **Optimizes** your Wordpress blog for SEO (**Search Engine Optimization**).
|
14 |
|
15 |
**[Upgrade to Pro Version](http://semperplugins.com/plugins/all-in-one-seo-pack-pro-version/)**
|
16 |
|
17 |
+
[Premium Support](http://semperplugins.com/support/)
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
|
19 |
+
* XML Sitemap support - submit your sitemap to Google and Bing and improve your SEO
|
20 |
* Google Analytics support
|
21 |
+
* Support for SEO on Custom Post Types
|
22 |
* Advanced Canonical URLs
|
23 |
* Fine tune Page Navigational Links
|
24 |
* Built-in API so other plugins/themes can access and extend functionality
|
25 |
* ONLY plugin to provide SEO Integration for WP e-Commerce sites
|
26 |
+
* Nonce Security built into All in One SEO Pack
|
27 |
* Support for CMS-style WordPress installations
|
28 |
+
* Automatically optimizes your **titles** for Google and other search engines
|
29 |
* Generates **META tags automatically**
|
30 |
+
* Avoids the typical duplicate content found on WordPress blogs
|
31 |
* For beginners, you don't even have to look at the options, it works out-of-the-box. Just install.
|
32 |
+
* For advanced users, you can fine-tune everything to optimize your SEO
|
33 |
* You can override any title and set any META description and any META keywords you want.
|
34 |
+
* Compatibility with many other plugins
|
35 |
|
36 |
**If upgrading, please back up your database first!**
|
37 |
|
|
|
|
|
|
|
|
|
|
|
38 |
Follow me on Twitter to keep up with the latest updates [Michael
|
39 |
Torbert](http://twitter.com/michaeltorbert/)
|
40 |
|
46 |
1. You can either use the automatic plugin installer or your FTP program to upload it to your wp-content/plugins directory
|
47 |
the top-level folder. Don't just upload all the php files and put them in `/wp-content/plugins/`.
|
48 |
1. Activate the plugin through the 'Plugins' menu in WordPress
|
49 |
+
1. Visit your SEO options (*All in One SEO - General Settings*)
|
50 |
1. Configure any options as desired, and then enable the plugin
|
51 |
1. That's it!
|
52 |
+
fc
|
53 |
If you have to upgrade manually simply repeat the installation steps and re-enable the plugin.
|
54 |
|
55 |
**If upgrading, please back up your database first!**
|
56 |
|
57 |
+
== Changelog ==
|
58 |
+
|
59 |
+
All in One SEO Pack [Changelog](http://semperfiwebdesign.com/documentation/all-in-one-seo-pack/all-in-one-seo-pack-release-history/)
|
60 |
|
61 |
== Frequently Asked Questions ==
|
62 |
|
63 |
+
Please read these **[FAQs](http://semperfiwebdesign.com/documentation/all-in-one-seo-pack/all-in-one-seo-faq/)** before requesting support for SEO from the
|
64 |
+
**[All in One SEO Pack Support Forum](http://semperplugins.com/support/)**
|
65 |
+
|
66 |
+
[Translations](http://semperfiwebdesign.com/documentation/all-in-one-seo-pack/translations-for-all-in-one-seo-pack/)
|
67 |
|
68 |
== Upgrade Notice ==
|
69 |
|
70 |
+
= 2.0.4 =
|
71 |
This version fixes a security related bug. Please Upgrade immediately.
|