Version Description
Download this release
Release Info
Developer | hallsofmontezuma |
Plugin | All in One SEO Pack |
Version | 2.3.12.1 |
Comparing to | |
See all releases |
Code changes from version 2.3.12 to 2.3.12.1
- admin/display/credits-content.php +2 -2
- admin/display/general-metaboxes.php +6 -1
- admin/display/menu.php +1 -1
- aioseop_class.php +23 -97
- all_in_one_seo_pack.php +3 -3
- css/welcome.css +8 -0
- inc/translations.php +22 -0
- modules/aioseop_opengraph.php +4 -1
- readme.txt +1 -2
admin/display/credits-content.php
CHANGED
@@ -5,12 +5,12 @@
|
|
5 |
<h3 class="wp-people-group"><?php _e( 'Project Leaders', 'all-in-one-seo-pack' ); ?></h3>
|
6 |
<ul class="wp-people-group " id="wp-people-group-project-leaders">
|
7 |
<li class="wp-person" id="wp-person-michaeltorbert">
|
8 |
-
<a class="web" href="https://
|
9 |
Michael Torbert</a>
|
10 |
<span class="title"><?php _e( 'Project Lead', 'all-in-one-seo-pack' ); ?></span>
|
11 |
</li>
|
12 |
<li class="wp-person" id="wp-person-stevemortiboy">
|
13 |
-
<a class="web" target="_blank" href="https://
|
14 |
Steve Mortiboy</a>
|
15 |
<span class="title"><?php _e( 'Project Manager', 'all-in-one-seo-pack' ); ?></span>
|
16 |
</li>
|
5 |
<h3 class="wp-people-group"><?php _e( 'Project Leaders', 'all-in-one-seo-pack' ); ?></h3>
|
6 |
<ul class="wp-people-group " id="wp-people-group-project-leaders">
|
7 |
<li class="wp-person" id="wp-person-michaeltorbert">
|
8 |
+
<a class="web" href="https://twitter.com/michaeltorbert" target="_blank"><img alt="" class="gravatar" src="https://s.gravatar.com/avatar/f41419cf5cfdbb071a8d591ac9976bf3?s=60">
|
9 |
Michael Torbert</a>
|
10 |
<span class="title"><?php _e( 'Project Lead', 'all-in-one-seo-pack' ); ?></span>
|
11 |
</li>
|
12 |
<li class="wp-person" id="wp-person-stevemortiboy">
|
13 |
+
<a class="web" target="_blank" href="https://twitter.com/wpsmort"><img alt="" class="gravatar" src="https://www.gravatar.com/avatar/40e33d813c16a63500675d851b0cbf3a?s=60">
|
14 |
Steve Mortiboy</a>
|
15 |
<span class="title"><?php _e( 'Project Manager', 'all-in-one-seo-pack' ); ?></span>
|
16 |
</li>
|
admin/display/general-metaboxes.php
CHANGED
@@ -74,13 +74,18 @@ class aiosp_metaboxes {
|
|
74 |
<?php
|
75 |
|
76 |
if ( $aiosp_trans->percent_translated < 100 ) {
|
|
|
|
|
|
|
|
|
|
|
77 |
|
78 |
/* translators: %1$s expands to the number of languages All in One SEO Pack has been translated into. $2%s to the percentage translated of the current language, $3%s to the language name, %4$s and %5$s to anchor tags with link to translation page at translate.wordpress.org */
|
79 |
printf( __(
|
80 |
'All in One SEO Pack has been translated into %1$s languages, but currently the %3$s translation is only %2$s percent complete. %4$s Click here %5$s to help get it to 100 percent.', 'all-in-one-seo-pack' ),
|
81 |
$aiosp_trans->translated_count,
|
82 |
$aiosp_trans->percent_translated,
|
83 |
-
$
|
84 |
"<a href=\"$aiosp_trans->translation_url\" target=\"_BLANK\">",
|
85 |
'</a>' );
|
86 |
}
|
74 |
<?php
|
75 |
|
76 |
if ( $aiosp_trans->percent_translated < 100 ) {
|
77 |
+
if ( ! empty ( $aiosp_trans->native_name ) ) {
|
78 |
+
$maybe_native_name = $aiosp_trans->native_name;
|
79 |
+
} else {
|
80 |
+
$maybe_native_name = $aiosp_trans->name;
|
81 |
+
}
|
82 |
|
83 |
/* translators: %1$s expands to the number of languages All in One SEO Pack has been translated into. $2%s to the percentage translated of the current language, $3%s to the language name, %4$s and %5$s to anchor tags with link to translation page at translate.wordpress.org */
|
84 |
printf( __(
|
85 |
'All in One SEO Pack has been translated into %1$s languages, but currently the %3$s translation is only %2$s percent complete. %4$s Click here %5$s to help get it to 100 percent.', 'all-in-one-seo-pack' ),
|
86 |
$aiosp_trans->translated_count,
|
87 |
$aiosp_trans->percent_translated,
|
88 |
+
$maybe_native_name,
|
89 |
"<a href=\"$aiosp_trans->translation_url\" target=\"_BLANK\">",
|
90 |
'</a>' );
|
91 |
}
|
admin/display/menu.php
CHANGED
@@ -22,7 +22,7 @@ class AIOSEOPAdminMenus {
|
|
22 |
*/
|
23 |
function add_pro_submenu() {
|
24 |
global $submenu;
|
25 |
-
$url
|
26 |
$upgrade_text = __('Upgrade to Pro', 'all-in-one-seo-pack');
|
27 |
$submenu['all-in-one-seo-pack/aioseop_class.php'][] = array(
|
28 |
"<span class='upgrade_menu_link'>$upgrade_text</span>",
|
22 |
*/
|
23 |
function add_pro_submenu() {
|
24 |
global $submenu;
|
25 |
+
$url = 'https://semperplugins.com/all-in-one-seo-pack-pro-version/?loc=aio_menu';
|
26 |
$upgrade_text = __('Upgrade to Pro', 'all-in-one-seo-pack');
|
27 |
$submenu['all-in-one-seo-pack/aioseop_class.php'][] = array(
|
28 |
"<span class='upgrade_menu_link'>$upgrade_text</span>",
|
aioseop_class.php
CHANGED
@@ -215,10 +215,6 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
215 |
'tax_noindex' => __( 'Check this to ask search engines not to index custom Taxonomy archive pages. Useful for avoiding duplicate content.', 'all-in-one-seo-pack' ),
|
216 |
'paginated_noindex' => __( 'Check this to ask search engines not to index paginated pages/posts. Useful for avoiding duplicate content.', 'all-in-one-seo-pack' ),
|
217 |
'paginated_nofollow' => __( 'Check this to ask search engines not to follow links from paginated pages/posts. Useful for avoiding duplicate content.', 'all-in-one-seo-pack' ),
|
218 |
-
'noodp' => __( 'Check this box to ask search engines not to use descriptions from the Open Directory Project for your entire site.', 'all-in-one-seo-pack' ),
|
219 |
-
'cpostnoodp' => __( 'Set the default noodp setting for each Post Type.', 'all-in-one-seo-pack' ),
|
220 |
-
'noydir' => __( 'Check this box to ask Yahoo! not to use descriptions from the Yahoo! directory for your entire site.', 'all-in-one-seo-pack' ),
|
221 |
-
'cpostnoydir' => __( 'Set the default noydir setting for each Post Type.', 'all-in-one-seo-pack' ),
|
222 |
'skip_excerpt' => __( "This option will auto generate your meta descriptions from your post content instead of your post excerpt. This is useful if you want to use your content for your autogenerated meta descriptions instead of the excerpt. WooCommerce users should read the documentation regarding this setting.", 'all-in-one-seo-pack' ),
|
223 |
'generate_descriptions' => __( 'Check this and your Meta Descriptions will be auto-generated from your excerpt or content.', 'all-in-one-seo-pack' ),
|
224 |
'run_shortcodes' => __( 'Check this and shortcodes will get executed for descriptions auto-generated from content.', 'all-in-one-seo-pack' ),
|
@@ -293,8 +289,6 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
293 |
'ga_enhanced_ecommerce' => '#enhanced-ecommerce',
|
294 |
'cpostnoindex' => '#noindex',
|
295 |
'cpostnofollow' => '#nofollow',
|
296 |
-
'cpostnoodp' => '#noodp',
|
297 |
-
'cpostnoydir' => '#noydir',
|
298 |
'category_noindex' => '#noindex-settings',
|
299 |
'archive_date_noindex' => '#noindex-settings',
|
300 |
'archive_author_noindex' => '#noindex-settings',
|
@@ -304,8 +298,6 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
304 |
'tax_noindex' => '#use-noindex-for-the-taxonomy-archives',
|
305 |
'paginated_noindex' => '#use-noindex-for-paginated-pages-posts',
|
306 |
'paginated_nofollow' => '#use-nofollow-for-paginated-pages-posts',
|
307 |
-
'noodp' => '#exclude-site-from-the-open-directory-project',
|
308 |
-
'noydir' => '#exclude-site-from-yahoo-directory',
|
309 |
'skip_excerpt' => '#avoid-using-the-excerpt-in-descriptions',
|
310 |
'generate_descriptions' => '#autogenerate-descriptions',
|
311 |
'run_shortcodes' => '#run-shortcodes-in-autogenerated-descriptions',
|
@@ -328,8 +320,6 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
328 |
'custom_link' => __( 'Override the canonical URLs for this post.', 'all-in-one-seo-pack' ),
|
329 |
'noindex' => __( 'Check this box to ask search engines not to index this page.', 'all-in-one-seo-pack' ),
|
330 |
'nofollow' => __( 'Check this box to ask search engines not to follow links from this page.', 'all-in-one-seo-pack' ),
|
331 |
-
'noodp' => __( 'Check this box to ask search engines not to use descriptions from the Open Directory Project for this page.', 'all-in-one-seo-pack' ),
|
332 |
-
'noydir' => __( 'Check this box to ask Yahoo! not to use descriptions from the Yahoo! directory for this page.', 'all-in-one-seo-pack' ),
|
333 |
'sitemap_exclude' => __( "Don't display this page in the sitemap.", 'all-in-one-seo-pack' ),
|
334 |
'disable' => __( 'Disable SEO on this page.', 'all-in-one-seo-pack' ),
|
335 |
'disable_analytics' => __( 'Disable Google Analytics on this page.', 'all-in-one-seo-pack' ),
|
@@ -545,16 +535,6 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
545 |
'type' => 'multicheckbox',
|
546 |
'default' => array(),
|
547 |
),
|
548 |
-
'cpostnoodp' => array(
|
549 |
-
'name' => __( 'Default to NOODP:', 'all-in-one-seo-pack' ),
|
550 |
-
'type' => 'multicheckbox',
|
551 |
-
'default' => array(),
|
552 |
-
),
|
553 |
-
'cpostnoydir' => array(
|
554 |
-
'name' => __( 'Default to NOYDIR:', 'all-in-one-seo-pack' ),
|
555 |
-
'type' => 'multicheckbox',
|
556 |
-
'default' => array(),
|
557 |
-
),
|
558 |
'cposttitles' => array(
|
559 |
'name' => __( 'Custom titles:', 'all-in-one-seo-pack' ),
|
560 |
'type' => 'checkbox',
|
@@ -824,14 +804,6 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
824 |
'name' => __( 'Use nofollow for paginated pages/posts:', 'all-in-one-seo-pack' ),
|
825 |
'default' => 0,
|
826 |
),
|
827 |
-
'noodp' => array(
|
828 |
-
'name' => __( 'Exclude site from the Open Directory Project:', 'all-in-one-seo-pack' ),
|
829 |
-
'default' => 0,
|
830 |
-
),
|
831 |
-
'noydir' => array(
|
832 |
-
'name' => __( 'Exclude site from Yahoo! Directory:', 'all-in-one-seo-pack' ),
|
833 |
-
'default' => 0,
|
834 |
-
),
|
835 |
'generate_descriptions' => array(
|
836 |
'name' => __( 'Autogenerate Descriptions:', 'all-in-one-seo-pack' ),
|
837 |
'default' => 0,
|
@@ -924,8 +896,6 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
924 |
'custom_link',
|
925 |
'noindex',
|
926 |
'nofollow',
|
927 |
-
'noodp',
|
928 |
-
'noydir',
|
929 |
'sitemap_exclude',
|
930 |
'disable',
|
931 |
'disable_analytics',
|
@@ -1002,8 +972,6 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
1002 |
'name' => __( 'Robots Meta NOFOLLOW', 'all-in-one-seo-pack' ),
|
1003 |
'default' => '',
|
1004 |
),
|
1005 |
-
'noodp' => array( 'name' => __( 'Robots Meta NOODP', 'all-in-one-seo-pack' ) ),
|
1006 |
-
'noydir' => array( 'name' => __( 'Robots Meta NOYDIR', 'all-in-one-seo-pack' ) ),
|
1007 |
'sitemap_exclude' => array( 'name' => __( 'Exclude From Sitemap', 'all-in-one-seo-pack' ) ),
|
1008 |
'disable' => array( 'name' => __( 'Disable on this page/post', 'all-in-one-seo-pack' ) ),
|
1009 |
'disable_analytics' => array(
|
@@ -1101,8 +1069,6 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
1101 |
'options' => array(
|
1102 |
'cpostnoindex',
|
1103 |
'cpostnofollow',
|
1104 |
-
'cpostnoodp',
|
1105 |
-
'cpostnoydir',
|
1106 |
'category_noindex',
|
1107 |
'archive_date_noindex',
|
1108 |
'archive_author_noindex',
|
@@ -1112,8 +1078,6 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
1112 |
'tax_noindex',
|
1113 |
'paginated_noindex',
|
1114 |
'paginated_nofollow',
|
1115 |
-
'noodp',
|
1116 |
-
'noydir',
|
1117 |
),
|
1118 |
),
|
1119 |
'advanced' => array(
|
@@ -1487,8 +1451,6 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
1487 |
'disable_analytics',
|
1488 |
'noindex',
|
1489 |
'nofollow',
|
1490 |
-
'noodp',
|
1491 |
-
'noydir',
|
1492 |
);
|
1493 |
if ( ! ( ! empty( $this->options['aiosp_can'] ) ) && ( ! empty( $this->options['aiosp_customize_canonical_links'] ) ) ) {
|
1494 |
unset( $optlist['custom_link'] );
|
@@ -2983,8 +2945,6 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
2983 |
'disable_analytics',
|
2984 |
'noindex',
|
2985 |
'nofollow',
|
2986 |
-
'noodp',
|
2987 |
-
'noydir',
|
2988 |
);
|
2989 |
foreach ( $optlist as $f ) {
|
2990 |
$meta = get_term_meta( $term_id, '_aioseop_' . $f, true );
|
@@ -3154,8 +3114,6 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
3154 |
$this->default_options['cpostactive']['initial_options'] = $all_post_types;
|
3155 |
$this->default_options['cpostnoindex']['initial_options'] = $post_types;
|
3156 |
$this->default_options['cpostnofollow']['initial_options'] = $post_types;
|
3157 |
-
$this->default_options['cpostnoodp']['initial_options'] = $post_types;
|
3158 |
-
$this->default_options['cpostnoydir']['initial_options'] = $post_types;
|
3159 |
if ( AIOSEOPPRO ) {
|
3160 |
$this->default_options['taxactive']['initial_options'] = $tax_types;
|
3161 |
}
|
@@ -3373,22 +3331,7 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
3373 |
'on' => __( 'nofollow', 'all-in-one-seo-pack' ),
|
3374 |
);
|
3375 |
}
|
3376 |
-
|
3377 |
-
$settings["{$prefix}noodp"]['type'] = 'select';
|
3378 |
-
$settings["{$prefix}noodp"]['initial_options'] = array(
|
3379 |
-
'' => __( 'Default - noodp', 'all-in-one-seo-pack' ),
|
3380 |
-
'off' => __( 'odp', 'all-in-one-seo-pack' ),
|
3381 |
-
'on' => __( 'noodp', 'all-in-one-seo-pack' ),
|
3382 |
-
);
|
3383 |
-
}
|
3384 |
-
if ( ! empty( $this->options['aiosp_cpostnoydir'] ) && in_array( $post_type, $this->options['aiosp_cpostnoydir'] ) ) {
|
3385 |
-
$settings["{$prefix}noydir"]['type'] = 'select';
|
3386 |
-
$settings["{$prefix}noydir"]['initial_options'] = array(
|
3387 |
-
'' => __( 'Default - noydir', 'all-in-one-seo-pack' ),
|
3388 |
-
'off' => __( 'ydir', 'all-in-one-seo-pack' ),
|
3389 |
-
'on' => __( 'noydir', 'all-in-one-seo-pack' ),
|
3390 |
-
);
|
3391 |
-
}
|
3392 |
global $post;
|
3393 |
$info = $this->get_page_snippet_info();
|
3394 |
extract( $info );
|
@@ -3433,7 +3376,7 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
3433 |
if ( ! empty( $post ) ) {
|
3434 |
$prefix = $this->prefix;
|
3435 |
$post_type = get_post_type( $post );
|
3436 |
-
foreach ( array( 'noindex', 'nofollow'
|
3437 |
if ( empty( $this->options[ 'aiosp_cpost' . $no ] ) || ( ! in_array( $post_type, $this->options[ 'aiosp_cpost' . $no ] ) ) ) {
|
3438 |
if ( isset( $options["{$prefix}{$no}"] ) && ( $options["{$prefix}{$no}"] != 'on' ) ) {
|
3439 |
unset( $options["{$prefix}{$no}"] );
|
@@ -3747,6 +3690,12 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
3747 |
function amp_head() {
|
3748 |
$post = $this->get_queried_object();
|
3749 |
$description = apply_filters( 'aioseop_amp_description', $this->get_main_description( $post ) ); // Get the description.
|
|
|
|
|
|
|
|
|
|
|
|
|
3750 |
// Handle the description format.
|
3751 |
if ( isset( $description ) && ( $this->strlen( $description ) > $this->minimum_description_length ) && ! ( is_front_page() && is_paged() ) ) {
|
3752 |
$description = $this->trim_description( $description );
|
@@ -3778,6 +3727,12 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
3778 |
}
|
3779 |
|
3780 |
if ( ! $this->is_page_included() ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
3781 |
return;
|
3782 |
}
|
3783 |
$opts = $this->meta_opts;
|
@@ -3786,6 +3741,11 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
3786 |
$aioseop_dup_counter ++;
|
3787 |
if ( $aioseop_dup_counter > 1 ) {
|
3788 |
echo "\n<!-- " . sprintf( __( 'Debug Warning: All in One SEO Pack meta data was included again from %s filter. Called %s times!', 'all-in-one-seo-pack' ), current_filter(), $aioseop_dup_counter ) . " -->\n";
|
|
|
|
|
|
|
|
|
|
|
3789 |
|
3790 |
return;
|
3791 |
}
|
@@ -4087,7 +4047,7 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
4087 |
$tax_noindex = array();
|
4088 |
}
|
4089 |
|
4090 |
-
$aiosp_noindex = $aiosp_nofollow =
|
4091 |
$noindex = 'index';
|
4092 |
$nofollow = 'follow';
|
4093 |
if ( ( is_category() && ! empty( $aioseop_options['aiosp_category_noindex'] ) ) || ( ! is_category() && is_archive() && ! is_tag() && ! is_tax()
|
@@ -4103,12 +4063,9 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
4103 |
if ( ! empty( $opts ) ) {
|
4104 |
$aiosp_noindex = htmlspecialchars( stripslashes( $opts['aiosp_noindex'] ) );
|
4105 |
$aiosp_nofollow = htmlspecialchars( stripslashes( $opts['aiosp_nofollow'] ) );
|
4106 |
-
$aiosp_noodp = htmlspecialchars( stripslashes( $opts['aiosp_noodp'] ) );
|
4107 |
-
$aiosp_noydir = htmlspecialchars( stripslashes( $opts['aiosp_noydir'] ) );
|
4108 |
}
|
4109 |
-
if ( $aiosp_noindex || $aiosp_nofollow ||
|
4110 |
-
|| ! empty( $aioseop_options['aiosp_cpostnofollow'] ) || ! empty( $aioseop_options['
|
4111 |
-
|| ! empty( $aioseop_options['aiosp_paginated_noindex'] ) || ! empty( $aioseop_options['aiosp_paginated_nofollow'] )
|
4112 |
) {
|
4113 |
if ( ( $aiosp_noindex == 'on' ) || ( ( ! empty( $aioseop_options['aiosp_paginated_noindex'] ) ) && $page > 1 ) ||
|
4114 |
( ( $aiosp_noindex == '' ) && ( ! empty( $aioseop_options['aiosp_cpostnoindex'] ) ) && in_array( $post_type, $aioseop_options['aiosp_cpostnoindex'] ) )
|
@@ -4120,31 +4077,8 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
4120 |
) {
|
4121 |
$nofollow = 'nofollow';
|
4122 |
}
|
4123 |
-
if ( ( $aiosp_noodp == 'on' ) || ( empty( $aiosp_noodp ) && ( ! empty( $aioseop_options['aiosp_cpostnoodp'] ) && in_array( $post_type, $aioseop_options['aiosp_cpostnoodp'] ) ) ) ) {
|
4124 |
-
$aiosp_noodp = true;
|
4125 |
-
} else {
|
4126 |
-
$aiosp_noodp = false;
|
4127 |
-
}
|
4128 |
-
if ( ( $aiosp_noydir == 'on' ) || ( empty( $aiosp_noydir ) && ( ! empty( $aioseop_options['aiosp_cpostnoydir'] ) && in_array( $post_type, $aioseop_options['aiosp_cpostnoydir'] ) ) ) ) {
|
4129 |
-
$aiosp_noydir = true;
|
4130 |
-
} else {
|
4131 |
-
$aiosp_noydir = false;
|
4132 |
-
}
|
4133 |
}
|
4134 |
}
|
4135 |
-
if ( ! empty( $aioseop_options['aiosp_noodp'] ) && $aioseop_options['aiosp_noodp'] ) {
|
4136 |
-
$aiosp_noodp = true;
|
4137 |
-
}
|
4138 |
-
if ( ! empty( $aioseop_options['aiosp_noydir'] ) && $aioseop_options['aiosp_noydir'] ) {
|
4139 |
-
$aiosp_noydir = true;
|
4140 |
-
}
|
4141 |
-
if ( $aiosp_noodp ) {
|
4142 |
-
$nofollow .= ',noodp';
|
4143 |
-
}
|
4144 |
-
if ( $aiosp_noydir ) {
|
4145 |
-
$nofollow .= ',noydir';
|
4146 |
-
}
|
4147 |
-
|
4148 |
if ( is_singular() && $this->is_password_protected() && apply_filters( 'aiosp_noindex_password_posts', false ) ){
|
4149 |
$noindex = 'noindex';
|
4150 |
}
|
@@ -4435,8 +4369,6 @@ EOF;
|
|
4435 |
'disable_analytics',
|
4436 |
'noindex',
|
4437 |
'nofollow',
|
4438 |
-
'noodp',
|
4439 |
-
'noydir',
|
4440 |
);
|
4441 |
if ( ! ( ! empty( $this->options['aiosp_can'] ) ) && ( ! empty( $this->options['aiosp_customize_canonical_links'] ) ) ) {
|
4442 |
unset( $optlist['custom_link'] );
|
@@ -4455,8 +4387,6 @@ EOF;
|
|
4455 |
'custom_link',
|
4456 |
'noindex',
|
4457 |
'nofollow',
|
4458 |
-
'noodp',
|
4459 |
-
'noydir',
|
4460 |
);
|
4461 |
if ( ! ( ! empty( $this->options['aiosp_can'] ) ) && ( ! empty( $this->options['aiosp_customize_canonical_links'] ) ) ) {
|
4462 |
unset( $optlist['custom_link'] );
|
@@ -4647,8 +4577,6 @@ EOF;
|
|
4647 |
'disable_analytics',
|
4648 |
'noindex',
|
4649 |
'nofollow',
|
4650 |
-
'noodp',
|
4651 |
-
'noydir',
|
4652 |
);
|
4653 |
foreach ( $optlist as $f ) {
|
4654 |
$field = "aiosp_$f";
|
@@ -4664,8 +4592,6 @@ EOF;
|
|
4664 |
'custom_link',
|
4665 |
'noindex',
|
4666 |
'nofollow',
|
4667 |
-
'noodp',
|
4668 |
-
'noydir',
|
4669 |
);
|
4670 |
if ( ! ( ! empty( $this->options['aiosp_can'] ) ) && ( ! empty( $this->options['aiosp_customize_canonical_links'] ) ) ) {
|
4671 |
unset( $optlist['custom_link'] );
|
@@ -4795,7 +4721,7 @@ EOF;
|
|
4795 |
'display_extra_metaboxes',
|
4796 |
), 'aioseop_metaboxes', 'side', 'core' );
|
4797 |
} else {
|
4798 |
-
add_meta_box( 'aioseop-about',
|
4799 |
'aiosp_metaboxes',
|
4800 |
'display_extra_metaboxes',
|
4801 |
), 'aioseop_metaboxes', 'side', 'core' );
|
215 |
'tax_noindex' => __( 'Check this to ask search engines not to index custom Taxonomy archive pages. Useful for avoiding duplicate content.', 'all-in-one-seo-pack' ),
|
216 |
'paginated_noindex' => __( 'Check this to ask search engines not to index paginated pages/posts. Useful for avoiding duplicate content.', 'all-in-one-seo-pack' ),
|
217 |
'paginated_nofollow' => __( 'Check this to ask search engines not to follow links from paginated pages/posts. Useful for avoiding duplicate content.', 'all-in-one-seo-pack' ),
|
|
|
|
|
|
|
|
|
218 |
'skip_excerpt' => __( "This option will auto generate your meta descriptions from your post content instead of your post excerpt. This is useful if you want to use your content for your autogenerated meta descriptions instead of the excerpt. WooCommerce users should read the documentation regarding this setting.", 'all-in-one-seo-pack' ),
|
219 |
'generate_descriptions' => __( 'Check this and your Meta Descriptions will be auto-generated from your excerpt or content.', 'all-in-one-seo-pack' ),
|
220 |
'run_shortcodes' => __( 'Check this and shortcodes will get executed for descriptions auto-generated from content.', 'all-in-one-seo-pack' ),
|
289 |
'ga_enhanced_ecommerce' => '#enhanced-ecommerce',
|
290 |
'cpostnoindex' => '#noindex',
|
291 |
'cpostnofollow' => '#nofollow',
|
|
|
|
|
292 |
'category_noindex' => '#noindex-settings',
|
293 |
'archive_date_noindex' => '#noindex-settings',
|
294 |
'archive_author_noindex' => '#noindex-settings',
|
298 |
'tax_noindex' => '#use-noindex-for-the-taxonomy-archives',
|
299 |
'paginated_noindex' => '#use-noindex-for-paginated-pages-posts',
|
300 |
'paginated_nofollow' => '#use-nofollow-for-paginated-pages-posts',
|
|
|
|
|
301 |
'skip_excerpt' => '#avoid-using-the-excerpt-in-descriptions',
|
302 |
'generate_descriptions' => '#autogenerate-descriptions',
|
303 |
'run_shortcodes' => '#run-shortcodes-in-autogenerated-descriptions',
|
320 |
'custom_link' => __( 'Override the canonical URLs for this post.', 'all-in-one-seo-pack' ),
|
321 |
'noindex' => __( 'Check this box to ask search engines not to index this page.', 'all-in-one-seo-pack' ),
|
322 |
'nofollow' => __( 'Check this box to ask search engines not to follow links from this page.', 'all-in-one-seo-pack' ),
|
|
|
|
|
323 |
'sitemap_exclude' => __( "Don't display this page in the sitemap.", 'all-in-one-seo-pack' ),
|
324 |
'disable' => __( 'Disable SEO on this page.', 'all-in-one-seo-pack' ),
|
325 |
'disable_analytics' => __( 'Disable Google Analytics on this page.', 'all-in-one-seo-pack' ),
|
535 |
'type' => 'multicheckbox',
|
536 |
'default' => array(),
|
537 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
538 |
'cposttitles' => array(
|
539 |
'name' => __( 'Custom titles:', 'all-in-one-seo-pack' ),
|
540 |
'type' => 'checkbox',
|
804 |
'name' => __( 'Use nofollow for paginated pages/posts:', 'all-in-one-seo-pack' ),
|
805 |
'default' => 0,
|
806 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
807 |
'generate_descriptions' => array(
|
808 |
'name' => __( 'Autogenerate Descriptions:', 'all-in-one-seo-pack' ),
|
809 |
'default' => 0,
|
896 |
'custom_link',
|
897 |
'noindex',
|
898 |
'nofollow',
|
|
|
|
|
899 |
'sitemap_exclude',
|
900 |
'disable',
|
901 |
'disable_analytics',
|
972 |
'name' => __( 'Robots Meta NOFOLLOW', 'all-in-one-seo-pack' ),
|
973 |
'default' => '',
|
974 |
),
|
|
|
|
|
975 |
'sitemap_exclude' => array( 'name' => __( 'Exclude From Sitemap', 'all-in-one-seo-pack' ) ),
|
976 |
'disable' => array( 'name' => __( 'Disable on this page/post', 'all-in-one-seo-pack' ) ),
|
977 |
'disable_analytics' => array(
|
1069 |
'options' => array(
|
1070 |
'cpostnoindex',
|
1071 |
'cpostnofollow',
|
|
|
|
|
1072 |
'category_noindex',
|
1073 |
'archive_date_noindex',
|
1074 |
'archive_author_noindex',
|
1078 |
'tax_noindex',
|
1079 |
'paginated_noindex',
|
1080 |
'paginated_nofollow',
|
|
|
|
|
1081 |
),
|
1082 |
),
|
1083 |
'advanced' => array(
|
1451 |
'disable_analytics',
|
1452 |
'noindex',
|
1453 |
'nofollow',
|
|
|
|
|
1454 |
);
|
1455 |
if ( ! ( ! empty( $this->options['aiosp_can'] ) ) && ( ! empty( $this->options['aiosp_customize_canonical_links'] ) ) ) {
|
1456 |
unset( $optlist['custom_link'] );
|
2945 |
'disable_analytics',
|
2946 |
'noindex',
|
2947 |
'nofollow',
|
|
|
|
|
2948 |
);
|
2949 |
foreach ( $optlist as $f ) {
|
2950 |
$meta = get_term_meta( $term_id, '_aioseop_' . $f, true );
|
3114 |
$this->default_options['cpostactive']['initial_options'] = $all_post_types;
|
3115 |
$this->default_options['cpostnoindex']['initial_options'] = $post_types;
|
3116 |
$this->default_options['cpostnofollow']['initial_options'] = $post_types;
|
|
|
|
|
3117 |
if ( AIOSEOPPRO ) {
|
3118 |
$this->default_options['taxactive']['initial_options'] = $tax_types;
|
3119 |
}
|
3331 |
'on' => __( 'nofollow', 'all-in-one-seo-pack' ),
|
3332 |
);
|
3333 |
}
|
3334 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3335 |
global $post;
|
3336 |
$info = $this->get_page_snippet_info();
|
3337 |
extract( $info );
|
3376 |
if ( ! empty( $post ) ) {
|
3377 |
$prefix = $this->prefix;
|
3378 |
$post_type = get_post_type( $post );
|
3379 |
+
foreach ( array( 'noindex', 'nofollow' ) as $no ) {
|
3380 |
if ( empty( $this->options[ 'aiosp_cpost' . $no ] ) || ( ! in_array( $post_type, $this->options[ 'aiosp_cpost' . $no ] ) ) ) {
|
3381 |
if ( isset( $options["{$prefix}{$no}"] ) && ( $options["{$prefix}{$no}"] != 'on' ) ) {
|
3382 |
unset( $options["{$prefix}{$no}"] );
|
3690 |
function amp_head() {
|
3691 |
$post = $this->get_queried_object();
|
3692 |
$description = apply_filters( 'aioseop_amp_description', $this->get_main_description( $post ) ); // Get the description.
|
3693 |
+
|
3694 |
+
// To disable AMP meta description just __return_false on the aioseop_amp_description filter.
|
3695 |
+
if ( isset( $description ) && false == $description ) {
|
3696 |
+
return;
|
3697 |
+
}
|
3698 |
+
|
3699 |
// Handle the description format.
|
3700 |
if ( isset( $description ) && ( $this->strlen( $description ) > $this->minimum_description_length ) && ! ( is_front_page() && is_paged() ) ) {
|
3701 |
$description = $this->trim_description( $description );
|
3727 |
}
|
3728 |
|
3729 |
if ( ! $this->is_page_included() ) {
|
3730 |
+
if ( ! empty( $old_wp_query ) ) {
|
3731 |
+
// Change the query back after we've finished.
|
3732 |
+
$GLOBALS['wp_query'] = $old_wp_query;
|
3733 |
+
unset( $old_wp_query );
|
3734 |
+
}
|
3735 |
+
|
3736 |
return;
|
3737 |
}
|
3738 |
$opts = $this->meta_opts;
|
3741 |
$aioseop_dup_counter ++;
|
3742 |
if ( $aioseop_dup_counter > 1 ) {
|
3743 |
echo "\n<!-- " . sprintf( __( 'Debug Warning: All in One SEO Pack meta data was included again from %s filter. Called %s times!', 'all-in-one-seo-pack' ), current_filter(), $aioseop_dup_counter ) . " -->\n";
|
3744 |
+
if ( ! empty( $old_wp_query ) ) {
|
3745 |
+
// Change the query back after we've finished.
|
3746 |
+
$GLOBALS['wp_query'] = $old_wp_query;
|
3747 |
+
unset( $old_wp_query );
|
3748 |
+
}
|
3749 |
|
3750 |
return;
|
3751 |
}
|
4047 |
$tax_noindex = array();
|
4048 |
}
|
4049 |
|
4050 |
+
$aiosp_noindex = $aiosp_nofollow = '';
|
4051 |
$noindex = 'index';
|
4052 |
$nofollow = 'follow';
|
4053 |
if ( ( is_category() && ! empty( $aioseop_options['aiosp_category_noindex'] ) ) || ( ! is_category() && is_archive() && ! is_tag() && ! is_tax()
|
4063 |
if ( ! empty( $opts ) ) {
|
4064 |
$aiosp_noindex = htmlspecialchars( stripslashes( $opts['aiosp_noindex'] ) );
|
4065 |
$aiosp_nofollow = htmlspecialchars( stripslashes( $opts['aiosp_nofollow'] ) );
|
|
|
|
|
4066 |
}
|
4067 |
+
if ( $aiosp_noindex || $aiosp_nofollow || ! empty( $aioseop_options['aiosp_cpostnoindex'] )
|
4068 |
+
|| ! empty( $aioseop_options['aiosp_cpostnofollow'] ) || ! empty( $aioseop_options['aiosp_paginated_noindex'] ) || ! empty( $aioseop_options['aiosp_paginated_nofollow'] )
|
|
|
4069 |
) {
|
4070 |
if ( ( $aiosp_noindex == 'on' ) || ( ( ! empty( $aioseop_options['aiosp_paginated_noindex'] ) ) && $page > 1 ) ||
|
4071 |
( ( $aiosp_noindex == '' ) && ( ! empty( $aioseop_options['aiosp_cpostnoindex'] ) ) && in_array( $post_type, $aioseop_options['aiosp_cpostnoindex'] ) )
|
4077 |
) {
|
4078 |
$nofollow = 'nofollow';
|
4079 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4080 |
}
|
4081 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4082 |
if ( is_singular() && $this->is_password_protected() && apply_filters( 'aiosp_noindex_password_posts', false ) ){
|
4083 |
$noindex = 'noindex';
|
4084 |
}
|
4369 |
'disable_analytics',
|
4370 |
'noindex',
|
4371 |
'nofollow',
|
|
|
|
|
4372 |
);
|
4373 |
if ( ! ( ! empty( $this->options['aiosp_can'] ) ) && ( ! empty( $this->options['aiosp_customize_canonical_links'] ) ) ) {
|
4374 |
unset( $optlist['custom_link'] );
|
4387 |
'custom_link',
|
4388 |
'noindex',
|
4389 |
'nofollow',
|
|
|
|
|
4390 |
);
|
4391 |
if ( ! ( ! empty( $this->options['aiosp_can'] ) ) && ( ! empty( $this->options['aiosp_customize_canonical_links'] ) ) ) {
|
4392 |
unset( $optlist['custom_link'] );
|
4577 |
'disable_analytics',
|
4578 |
'noindex',
|
4579 |
'nofollow',
|
|
|
|
|
4580 |
);
|
4581 |
foreach ( $optlist as $f ) {
|
4582 |
$field = "aiosp_$f";
|
4592 |
'custom_link',
|
4593 |
'noindex',
|
4594 |
'nofollow',
|
|
|
|
|
4595 |
);
|
4596 |
if ( ! ( ! empty( $this->options['aiosp_can'] ) ) && ( ! empty( $this->options['aiosp_customize_canonical_links'] ) ) ) {
|
4597 |
unset( $optlist['custom_link'] );
|
4721 |
'display_extra_metaboxes',
|
4722 |
), 'aioseop_metaboxes', 'side', 'core' );
|
4723 |
} else {
|
4724 |
+
add_meta_box( 'aioseop-about', __( 'About', 'all-in-one-seo-pack' ) . "<span class='Taha' style='float:right;'>" . __( 'Version', 'all-in-one-seo-pack' ) . " <b>" . AIOSEOP_VERSION . '</b></span>', array(
|
4725 |
'aiosp_metaboxes',
|
4726 |
'display_extra_metaboxes',
|
4727 |
), 'aioseop_metaboxes', 'side', 'core' );
|
all_in_one_seo_pack.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: All In One SEO Pack
|
4 |
Plugin URI: https://semperfiwebdesign.com
|
5 |
Description: Out-of-the-box SEO for your WordPress blog. Features like XML Sitemaps, SEO for custom post types, SEO for blogs or business sites, SEO for ecommerce sites, and much more. Almost 30 million downloads since 2007.
|
6 |
-
Version: 2.3.12
|
7 |
Author: Michael Torbert
|
8 |
Author URI: https://michaeltorbert.com
|
9 |
Text Domain: all-in-one-seo-pack
|
@@ -31,14 +31,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
31 |
* The original WordPress SEO plugin.
|
32 |
*
|
33 |
* @package All-in-One-SEO-Pack
|
34 |
-
* @version 2.3.12
|
35 |
*/
|
36 |
|
37 |
if ( ! defined( 'AIOSEOPPRO' ) ) {
|
38 |
define( 'AIOSEOPPRO', false );
|
39 |
}
|
40 |
if ( ! defined( 'AIOSEOP_VERSION' ) ) {
|
41 |
-
define( 'AIOSEOP_VERSION', '2.3.12' );
|
42 |
}
|
43 |
global $aioseop_plugin_name;
|
44 |
$aioseop_plugin_name = 'All in One SEO Pack';
|
3 |
Plugin Name: All In One SEO Pack
|
4 |
Plugin URI: https://semperfiwebdesign.com
|
5 |
Description: Out-of-the-box SEO for your WordPress blog. Features like XML Sitemaps, SEO for custom post types, SEO for blogs or business sites, SEO for ecommerce sites, and much more. Almost 30 million downloads since 2007.
|
6 |
+
Version: 2.3.12.1
|
7 |
Author: Michael Torbert
|
8 |
Author URI: https://michaeltorbert.com
|
9 |
Text Domain: all-in-one-seo-pack
|
31 |
* The original WordPress SEO plugin.
|
32 |
*
|
33 |
* @package All-in-One-SEO-Pack
|
34 |
+
* @version 2.3.12.1
|
35 |
*/
|
36 |
|
37 |
if ( ! defined( 'AIOSEOPPRO' ) ) {
|
38 |
define( 'AIOSEOPPRO', false );
|
39 |
}
|
40 |
if ( ! defined( 'AIOSEOP_VERSION' ) ) {
|
41 |
+
define( 'AIOSEOP_VERSION', '2.3.12.1' );
|
42 |
}
|
43 |
global $aioseop_plugin_name;
|
44 |
$aioseop_plugin_name = 'All in One SEO Pack';
|
css/welcome.css
CHANGED
@@ -120,6 +120,14 @@ section:first-child {
|
|
120 |
list-style-type: square;
|
121 |
}
|
122 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
@media screen and (max-width: 850px) {
|
124 |
.welcome-panel-column {
|
125 |
width: 100%;
|
120 |
list-style-type: square;
|
121 |
}
|
122 |
|
123 |
+
#wp-people-group-rockstars li {
|
124 |
+
margin-bottom: 1.33em;
|
125 |
+
}
|
126 |
+
|
127 |
+
#wp-people-group-rockstars li.wp-person {
|
128 |
+
margin-bottom: 0;
|
129 |
+
}
|
130 |
+
|
131 |
@media screen and (max-width: 850px) {
|
132 |
.welcome-panel-column {
|
133 |
width: 100%;
|
inc/translations.php
CHANGED
@@ -32,6 +32,8 @@ if ( ! class_exists( 'AIOSEOP_Translations' ) ) :
|
|
32 |
|
33 |
public $percent_translated = '';
|
34 |
|
|
|
|
|
35 |
/**
|
36 |
* AIOSEOP_Translations constructor.
|
37 |
*
|
@@ -148,10 +150,28 @@ if ( ! class_exists( 'AIOSEOP_Translations' ) ) :
|
|
148 |
|
149 |
}
|
150 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
151 |
/**
|
152 |
*
|
153 |
* @since 2.3.5
|
154 |
* @since 2.3.6 Return FALSE on WP_Error object in get_locale_data().
|
|
|
155 |
*
|
156 |
*/
|
157 |
private function init() {
|
@@ -171,6 +191,8 @@ if ( ! class_exists( 'AIOSEOP_Translations' ) ) :
|
|
171 |
$this->translated_count = $this->count_translated_languages( $locales );
|
172 |
|
173 |
$this->set_translation_url();
|
|
|
|
|
174 |
}
|
175 |
}
|
176 |
|
32 |
|
33 |
public $percent_translated = '';
|
34 |
|
35 |
+
public $native_name = '';
|
36 |
+
|
37 |
/**
|
38 |
* AIOSEOP_Translations constructor.
|
39 |
*
|
150 |
|
151 |
}
|
152 |
|
153 |
+
/**
|
154 |
+
* Gets and sets the native language.
|
155 |
+
*
|
156 |
+
* @since 2.3.12.1
|
157 |
+
*/
|
158 |
+
function set_native_language() {
|
159 |
+
if ( file_exists( ABSPATH . 'wp-admin/includes/translation-install.php' ) ) {
|
160 |
+
require_once( ABSPATH . 'wp-admin/includes/translation-install.php' );
|
161 |
+
} else {
|
162 |
+
return;
|
163 |
+
}
|
164 |
+
if ( function_exists( 'wp_get_available_translations' ) ) {
|
165 |
+
$translations = wp_get_available_translations();
|
166 |
+
$this->native_name = $translations[ $this->current_locale ]['native_name'];
|
167 |
+
}
|
168 |
+
}
|
169 |
+
|
170 |
/**
|
171 |
*
|
172 |
* @since 2.3.5
|
173 |
* @since 2.3.6 Return FALSE on WP_Error object in get_locale_data().
|
174 |
+
* @since 2.3.12.1 set_native_language()
|
175 |
*
|
176 |
*/
|
177 |
private function init() {
|
191 |
$this->translated_count = $this->count_translated_languages( $locales );
|
192 |
|
193 |
$this->set_translation_url();
|
194 |
+
|
195 |
+
$this->set_native_language();
|
196 |
}
|
197 |
}
|
198 |
|
modules/aioseop_opengraph.php
CHANGED
@@ -1308,7 +1308,10 @@ END;
|
|
1308 |
}
|
1309 |
if ( ! defined( 'DOING_AJAX' ) ) {
|
1310 |
add_action( 'aioseop_modules_wp_head', Array( $this, 'add_meta' ), 5 );
|
1311 |
-
|
|
|
|
|
|
|
1312 |
}
|
1313 |
}
|
1314 |
|
1308 |
}
|
1309 |
if ( ! defined( 'DOING_AJAX' ) ) {
|
1310 |
add_action( 'aioseop_modules_wp_head', Array( $this, 'add_meta' ), 5 );
|
1311 |
+
|
1312 |
+
if ( true === apply_filters( 'aioseop_enable_amp_social_meta', true ) ) {
|
1313 |
+
add_action( 'amp_post_template_head', Array( $this, 'add_meta' ), 12 ); // Add social meta to AMP plugin.
|
1314 |
+
}
|
1315 |
}
|
1316 |
}
|
1317 |
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=mrtor
|
|
4 |
Tags: seo, all in one seo, google, twitter, page, image seo, social, search engine optimization, sitemap, WordPress SEO, meta, meta description, xml sitemap, google sitemap, sitemaps, robots meta, yahoo, bing, news sitemaps, multisite, canonical, nofollow, noindex, keywords, description, webmaster tools, google webmaster tools, google analytics
|
5 |
Requires at least: 4.0
|
6 |
Tested up to: 4.7
|
7 |
-
Stable tag: 2.3.12
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -30,7 +30,6 @@ First created in 2007, see why AIOSEO is one of the all time most downloaded plu
|
|
30 |
* Built-in API so other plugins/themes can access and extend functionality
|
31 |
* ONLY free plugin to provide SEO Integration for e-Commerce sites, including WooCommerce
|
32 |
* Nonce Security built into All in One SEO Pack
|
33 |
-
* Support for CMS-style WordPress installations
|
34 |
* Automatically optimizes your **titles** for Google and other search engines
|
35 |
* Generates **META tags automatically**
|
36 |
* Avoids the typical duplicate content found on WordPress blogs
|
4 |
Tags: seo, all in one seo, google, twitter, page, image seo, social, search engine optimization, sitemap, WordPress SEO, meta, meta description, xml sitemap, google sitemap, sitemaps, robots meta, yahoo, bing, news sitemaps, multisite, canonical, nofollow, noindex, keywords, description, webmaster tools, google webmaster tools, google analytics
|
5 |
Requires at least: 4.0
|
6 |
Tested up to: 4.7
|
7 |
+
Stable tag: 2.3.12.1
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
30 |
* Built-in API so other plugins/themes can access and extend functionality
|
31 |
* ONLY free plugin to provide SEO Integration for e-Commerce sites, including WooCommerce
|
32 |
* Nonce Security built into All in One SEO Pack
|
|
|
33 |
* Automatically optimizes your **titles** for Google and other search engines
|
34 |
* Generates **META tags automatically**
|
35 |
* Avoids the typical duplicate content found on WordPress blogs
|