SEOPress - Version 4.6

Version Description

(29/04/2021) - https://www.seopress.org/blog/seopress-4-6/ = * NEW Custom capabilities (SEO, Advanced, Security) * NEW Bricks compatibility with our content analysis feature * NEW %%author_first_name%% dynamic variable to request user first name * NEW %%author_last_name%% dynamic variable to request user last name * NEW %%author_website%% dynamic variable to request user website * NEW %%author_nickname%% dynamic variable to request user nickname * NEW %%ucf_your_user_meta%% dynamic variable to request user meta * NEW Complete refactoring of the manual schema module * NEW "Display a text before the Breadcrumbs" option * NEW Add og:locale and og:locale:alternate support for WPML * NEW Option to disable content analysis metabox (SEO, Advanced, Advanced tab) * NEW "seopress_remove_category_base" hook to filter /category/ slug * NEW Hooks to filter manual schemas: * seopress_get_json_data_organization * seopress_get_json_data_image * seopress_get_json_data_contact_point * seopress_pro_get_json_data_author * seopress_pro_get_json_data_article * seopress_pro_get_json_data_aggreagate_rating * seopress_pro_get_json_data_brand * seopress_pro_get_json_data_course * seopress_pro_get_json_data_event * seopress_pro_get_json_data_faq * seopress_pro_get_json_data_geo * seopress_pro_get_json_data_how_to_step * seopress_pro_get_json_data_job * seopress_pro_get_json_data_local_business * seopress_pro_get_json_data_main_entity * seopress_pro_get_json_data_main_entity_of_page * seopress_pro_get_json_data_monetary_amount * seopress_pro_get_json_data_nutrition_information * seopress_pro_get_json_data_offer * seopress_pro_get_json_data_opening_hours * seopress_pro_get_json_data_person * seopress_pro_get_json_data_place * seopress_pro_get_jsondata_postal_address * seopress_pro_get_json_data_product * seopress_pro_get_json_data_rating * seopress_pro_get_json_data_recipe * seopress_pro_get_json_data_review * seopress_pro_get_json_data_service * seopress_pro_get_json_data_site_navigation_element * seopress_pro_get_json_data_software_app * seopress_pro_get_json_data_thing * seopress_pro_get_json_data_video * seopress_pro_get_json_data_virtual_location * INFO Improve Themify Builer compatibility with Content Analysis * INFO Improve Oxygen compatibility in specific cases * INFO Allow to show taxonomies in Breadcrumbs for Page post type * INFO Elementor Dark mode compatibility * FIX Duplicated meta robots on WC pages (checkout, cart, account) * FIX Remove /category/ slug with WPML if the slug is translated * FIX Fatal error when connecting Google Analytics / Google Console if no permission * FIX Google Analytics widget logout after view lock * FIX Google Analytics listing properties error handling * FIX Canonical URL on paginated pages (is_singular && is_paged) * FIX PHP notice queried object * FIX JS Encoding for Google Preview * FIX Missing compatibility center options in export file * FIX Undefined index: image with FAQ Block (props to @audrasjb) * FIX LocalBusiness widget in specific cases * FIX SEOPress metaboxes not loaded in specific cases (props to @J-Brk)

View our complete changelog

Download this release

Release Info

Developer rainbowgeek
Plugin Icon 128x128 SEOPress
Version 4.6
Comparing to
See all releases

Code changes from version 4.5.1 to 4.6

Files changed (69) hide show
  1. inc/admin/admin-dyn-variables-helper.php +5 -0
  2. inc/admin/admin-metaboxes.php +3 -3
  3. inc/admin/admin.php +41 -10
  4. inc/admin/ajax-migrate/aio.php +137 -0
  5. inc/admin/ajax-migrate/platinum.php +181 -0
  6. inc/admin/ajax-migrate/premium-seo-pack.php +118 -0
  7. inc/admin/ajax-migrate/seo-framework.php +121 -0
  8. inc/admin/ajax-migrate/seo-ultimate.php +72 -0
  9. inc/admin/ajax-migrate/seopressor.php +488 -0
  10. inc/admin/ajax-migrate/smart-crawl.php +174 -0
  11. inc/admin/ajax-migrate/squirrly.php +72 -0
  12. inc/admin/ajax-migrate/wp-meta-seo.php +92 -0
  13. inc/admin/ajax-migrate/wpseo.php +128 -0
  14. inc/admin/ajax-migrate/yoast.php +169 -0
  15. inc/admin/ajax.php +41 -1798
  16. inc/admin/page-builders/elementor/assets/css/dark-mode.css +48 -0
  17. inc/admin/page-builders/elementor/assets/css/social-preview.css +105 -44
  18. inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php +30 -16
  19. inc/admin/page-builders/elementor/inc/class-register-controls.php +1 -1
  20. inc/admin/page-builders/gutenberg/inc/blocks/faq-block/src/register-block.php +7 -5
  21. inc/functions/options-advanced-admin.php +20 -0
  22. inc/functions/options-import-export.php +4 -0
  23. inc/functions/options-social.php +29 -2
  24. inc/functions/options-titles-metas.php +147 -12
  25. inc/functions/options.php +13 -0
  26. inc/functions/variables/dynamic-variables.php +30 -6
  27. languages/wp-seopress.pot +1746 -1639
  28. readme.txt +66 -66
  29. seopress.php +792 -765
  30. src/Actions/Admin/ContentAnalysis.php +35 -0
  31. src/Actions/Admin/CustomCapabilities.php +165 -0
  32. src/Actions/Admin/ManageColumn.php +1 -2
  33. src/Actions/Ajax/PreviewMetaTitle.php +1 -1
  34. src/Actions/Front/Metas/DescriptionMeta.php +64 -1
  35. src/Actions/Front/Metas/TitleMeta.php +64 -1
  36. src/Actions/Options/Init.php +3 -1
  37. src/Compose/UseTags.php +6 -7
  38. src/Constants/Options.php +7 -0
  39. src/Helpers/PagesAdmin.php +124 -0
  40. src/Helpers/RichSnippetType.php +17 -0
  41. src/JsonSchemas/Image.php +31 -0
  42. src/JsonSchemas/Organization.php +27 -2
  43. src/Services/ContentAnalysis/GetContent.php +3 -3
  44. src/Services/Context/CheckContextPage.php +28 -0
  45. src/Services/{ContextPage.php → Context/ContextPage.php} +30 -22
  46. src/Services/JsonSchemaGenerator.php +12 -3
  47. src/Services/Options/AdvancedOption.php +39 -0
  48. src/Services/Options/TitleOption.php +8 -2
  49. src/Services/Settings/Roles/SectionPagesSEOPress.php +102 -0
  50. src/Tags/AuthorFirstName.php +38 -0
  51. src/Tags/AuthorLastName.php +38 -0
  52. src/Tags/AuthorNickname.php +38 -0
  53. src/Tags/AuthorWebsite.php +38 -0
  54. src/Tags/Custom/CustomUserMeta.php +40 -0
  55. src/Tags/PostAuthor.php +4 -3
  56. src/Tags/PostExcerpt.php +4 -3
  57. src/Tags/PostThumbnailUrlHeight.php +31 -0
  58. src/Tags/PostThumbnailUrlWidth.php +31 -0
  59. src/Tags/PostTitle.php +2 -0
  60. src/Tags/Schema/Date/PostDate.php +24 -0
  61. src/Tags/Schema/Date/PostModifiedDate.php +24 -0
  62. src/Tags/WooCommerce/GetPrice.php +33 -0
  63. src/Tags/WooCommerce/PriceValidDate.php +36 -0
  64. src/Tags/WooCommerce/Sku.php +1 -1
  65. src/Thirds/ACF/ContentAnalysisAcfFields.php +91 -0
  66. templates/json-schemas/image.json +6 -0
  67. templates/json-schemas/organization.json +10 -10
  68. vendor/composer/InstalledVersions.php +6 -6
  69. vendor/composer/installed.php +6 -6
inc/admin/admin-dyn-variables-helper.php CHANGED
@@ -44,7 +44,12 @@ function seopress_get_dyn_variables() {
44
  '%%currentyear%%' => __('Current year', 'wp-seopress'),
45
  '%%currentdate%%' => __('Current date', 'wp-seopress'),
46
  '%%currenttime%%' => __('Current time', 'wp-seopress'),
 
 
 
 
47
  '%%author_bio%%' => __('Author biography', 'wp-seopress'),
 
48
  '%%currentmonth_num%%' => __('Current month in digital format', 'wp-seopress'),
49
  '%%target_keyword%%' => __('Target keyword', 'wp-seopress'),
50
  ];
44
  '%%currentyear%%' => __('Current year', 'wp-seopress'),
45
  '%%currentdate%%' => __('Current date', 'wp-seopress'),
46
  '%%currenttime%%' => __('Current time', 'wp-seopress'),
47
+ '%%author_first_name%%' => __('Author first name', 'wp-seopress'),
48
+ '%%author_last_name%%' => __('Author last name', 'wp-seopress'),
49
+ '%%author_website%%' => __('Author website', 'wp-seopress'),
50
+ '%%author_nickname%%' => __('Author nickname', 'wp-seopress'),
51
  '%%author_bio%%' => __('Author biography', 'wp-seopress'),
52
+ '%%_ucf_your_user_meta%%' => __('Author user meta', 'wp-seopress'),
53
  '%%currentmonth_num%%' => __('Current month in digital format', 'wp-seopress'),
54
  '%%target_keyword%%' => __('Target keyword', 'wp-seopress'),
55
  ];
inc/admin/admin-metaboxes.php CHANGED
@@ -694,10 +694,10 @@ if (is_user_logged_in()) {
694
  echo seopress_display_ca_metaboxe();
695
  } else {
696
  global $wp_roles;
697
-
698
  //Get current user role
699
- if (isset(wp_get_current_user()->roles[0])) {
700
- $seopress_user_role = wp_get_current_user()->roles[0];
701
 
702
  //If current user role matchs values from Security settings then apply -- SEO Metaboxe
703
  if (function_exists('seopress_advanced_security_metaboxe_role_hook_option') && '' != seopress_advanced_security_metaboxe_role_hook_option()) {
694
  echo seopress_display_ca_metaboxe();
695
  } else {
696
  global $wp_roles;
697
+ $user = wp_get_current_user();
698
  //Get current user role
699
+ if (isset($user->roles) && is_array($user->roles) && ! empty($user->roles)) {
700
+ $seopress_user_role = current($user->roles);
701
 
702
  //If current user role matchs values from Security settings then apply -- SEO Metaboxe
703
  if (function_exists('seopress_advanced_security_metaboxe_role_hook_option') && '' != seopress_advanced_security_metaboxe_role_hook_option()) {
inc/admin/admin.php CHANGED
@@ -2,8 +2,9 @@
2
 
3
  defined('ABSPATH') or exit('Please don’t call the plugin directly. Thanks :)');
4
 
5
- class seopress_options
6
- {
 
7
  /**
8
  * Holds the values to be used in the fields callbacks.
9
  */
@@ -37,12 +38,12 @@ class seopress_options
37
 
38
  add_menu_page(__('SEOPress Option Page', 'wp-seopress-pro'), $sp_seo_admin_menu['title'], seopress_capability('manage_options', 'menu'), 'seopress-option', [$this, 'create_admin_page'], $sp_seo_admin_menu['icon'], 90);
39
  add_submenu_page('seopress-option', __('Dashboard', 'wp-seopress'), __('Dashboard', 'wp-seopress'), seopress_capability('manage_options', 'menu'), 'seopress-option', [$this, 'create_admin_page']);
40
- $seopress_titles_help_tab = add_submenu_page('seopress-option', __('Titles & Metas', 'wp-seopress'), __('Titles & Metas', 'wp-seopress'), seopress_capability('manage_options', 'menu'), 'seopress-titles', [$this, 'seopress_titles_page']);
41
- $seopress_xml_sitemaps_help_tab = add_submenu_page('seopress-option', __('XML / Image / Video / HTML Sitemap', 'wp-seopress'), __('XML / HTML Sitemap', 'wp-seopress'), seopress_capability('manage_options', 'menu'), 'seopress-xml-sitemap', [$this, 'seopress_xml_sitemap_page']);
42
- $seopress_social_networks_help_tab = add_submenu_page('seopress-option', __('Social Networks', 'wp-seopress'), __('Social Networks', 'wp-seopress'), seopress_capability('manage_options', 'menu'), 'seopress-social', [$this, 'seopress_social_page']);
43
- $seopress_google_analytics_help_tab = add_submenu_page('seopress-option', __('Analytics', 'wp-seopress'), __('Analytics', 'wp-seopress'), seopress_capability('manage_options', 'menu'), 'seopress-google-analytics', [$this, 'seopress_google_analytics_page']);
44
- add_submenu_page('seopress-option', __('Advanced', 'wp-seopress'), __('Advanced', 'wp-seopress'), seopress_capability('manage_options', 'menu'), 'seopress-advanced', [$this, 'seopress_advanced_page']);
45
- add_submenu_page('seopress-option', __('Tools', 'wp-seopress'), __('Tools', 'wp-seopress'), seopress_capability('manage_options', 'menu'), 'seopress-import-export', [$this, 'seopress_import_export_page']);
46
 
47
  if (function_exists('seopress_get_toggle_white_label_option')) {
48
  $white_label_toggle = seopress_get_toggle_white_label_option();
@@ -2754,6 +2755,14 @@ class seopress_options
2754
  'seopress_setting_section_advanced_appearance' // Section
2755
  );
2756
 
 
 
 
 
 
 
 
 
2757
  add_settings_field(
2758
  'seopress_advanced_appearance_genesis_seo_metaboxe', // ID
2759
  __('Hide Genesis SEO Metabox', 'wp-seopress'), // Title
@@ -2803,6 +2812,8 @@ class seopress_options
2803
  'seopress_setting_section_advanced_security' // Section
2804
  );
2805
 
 
 
2806
  //Tools SECTION=======================================================================
2807
  add_settings_section(
2808
  'seopress_setting_section_tools_compatibility', // ID
@@ -3157,7 +3168,7 @@ class seopress_options
3157
  }
3158
 
3159
  public function print_section_info_advanced_security() {
3160
- echo '<p>' . __('Manage security.', 'wp-seopress') . '</p>';
3161
  }
3162
 
3163
  public function print_section_info_tools_compatibility() {
@@ -4975,7 +4986,7 @@ class seopress_options
4975
  echo ' value="wp_head">' . __('Head (not recommended)', 'wp-seopress') . '</option>';
4976
  echo '</select>';
4977
 
4978
- echo '<p class="description">'.__('Your theme must be compatible with wp_body_open hook introduced in WordPress 5.2 if "opening body tag" option selected.').'</p>';
4979
 
4980
  if (isset($this->options['seopress_google_analytics_hook'])) {
4981
  esc_attr($this->options['seopress_google_analytics_hook']);
@@ -6290,6 +6301,8 @@ class seopress_options
6290
 
6291
  echo '<label for="seopress_advanced_advanced_wp_rsd">' . __('Remove Really Simple Discovery meta tag in source code (eg:', 'wp-seopress') . '<em>' . esc_attr('<link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.seopress.dev/xmlrpc.php?rsd" />') . '</em>)</label>';
6292
 
 
 
6293
  if (isset($this->options['seopress_advanced_advanced_wp_rsd'])) {
6294
  esc_attr($this->options['seopress_advanced_advanced_wp_rsd']);
6295
  }
@@ -6715,6 +6728,24 @@ class seopress_options
6715
  }
6716
  }
6717
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6718
  public function seopress_advanced_appearance_genesis_seo_metaboxe_callback() {
6719
  $options = get_option('seopress_advanced_option_name');
6720
 
2
 
3
  defined('ABSPATH') or exit('Please don&rsquo;t call the plugin directly. Thanks :)');
4
 
5
+ use SEOPress\Helpers\PagesAdmin;
6
+
7
+ class seopress_options {
8
  /**
9
  * Holds the values to be used in the fields callbacks.
10
  */
38
 
39
  add_menu_page(__('SEOPress Option Page', 'wp-seopress-pro'), $sp_seo_admin_menu['title'], seopress_capability('manage_options', 'menu'), 'seopress-option', [$this, 'create_admin_page'], $sp_seo_admin_menu['icon'], 90);
40
  add_submenu_page('seopress-option', __('Dashboard', 'wp-seopress'), __('Dashboard', 'wp-seopress'), seopress_capability('manage_options', 'menu'), 'seopress-option', [$this, 'create_admin_page']);
41
+ $seopress_titles_help_tab = add_submenu_page('seopress-option', __('Titles & Metas', 'wp-seopress'), __('Titles & Metas', 'wp-seopress'), seopress_capability('manage_options', PagesAdmin::TITLE_METAS), 'seopress-titles', [$this, 'seopress_titles_page']);
42
+ $seopress_xml_sitemaps_help_tab = add_submenu_page('seopress-option', __('XML / Image / Video / HTML Sitemap', 'wp-seopress'), __('XML / HTML Sitemap', 'wp-seopress'), seopress_capability('manage_options', PagesAdmin::XML_HTML_SITEMAP), 'seopress-xml-sitemap', [$this, 'seopress_xml_sitemap_page']);
43
+ $seopress_social_networks_help_tab = add_submenu_page('seopress-option', __('Social Networks', 'wp-seopress'), __('Social Networks', 'wp-seopress'), seopress_capability('manage_options', PagesAdmin::SOCIAL_NETWORKS), 'seopress-social', [$this, 'seopress_social_page']);
44
+ $seopress_google_analytics_help_tab = add_submenu_page('seopress-option', __('Analytics', 'wp-seopress'), __('Analytics', 'wp-seopress'), seopress_capability('manage_options', PagesAdmin::ANALYTICS), 'seopress-google-analytics', [$this, 'seopress_google_analytics_page']);
45
+ add_submenu_page('seopress-option', __('Advanced', 'wp-seopress'), __('Advanced', 'wp-seopress'), seopress_capability('manage_options', PagesAdmin::ADVANCED), 'seopress-advanced', [$this, 'seopress_advanced_page']);
46
+ add_submenu_page('seopress-option', __('Tools', 'wp-seopress'), __('Tools', 'wp-seopress'), seopress_capability('manage_options', PagesAdmin::TOOLS), 'seopress-import-export', [$this, 'seopress_import_export_page']);
47
 
48
  if (function_exists('seopress_get_toggle_white_label_option')) {
49
  $white_label_toggle = seopress_get_toggle_white_label_option();
2755
  'seopress_setting_section_advanced_appearance' // Section
2756
  );
2757
 
2758
+ add_settings_field(
2759
+ 'seopress_advanced_appearance_ca_metaboxe', // ID
2760
+ __('Remove Content Analysis Metabox', 'wp-seopress'), // Title
2761
+ [$this, 'seopress_advanced_appearance_ca_metaboxe_callback'], // Callback
2762
+ 'seopress-settings-admin-advanced-appearance', // Page
2763
+ 'seopress_setting_section_advanced_appearance' // Section
2764
+ );
2765
+
2766
  add_settings_field(
2767
  'seopress_advanced_appearance_genesis_seo_metaboxe', // ID
2768
  __('Hide Genesis SEO Metabox', 'wp-seopress'), // Title
2812
  'seopress_setting_section_advanced_security' // Section
2813
  );
2814
 
2815
+ seopress_get_service('SectionPagesSEOPress')->printSectionPages();
2816
+
2817
  //Tools SECTION=======================================================================
2818
  add_settings_section(
2819
  'seopress_setting_section_tools_compatibility', // ID
3168
  }
3169
 
3170
  public function print_section_info_advanced_security() {
3171
+ echo '<p>' . __('Manage security for user roles.', 'wp-seopress') . '</p>';
3172
  }
3173
 
3174
  public function print_section_info_tools_compatibility() {
4986
  echo ' value="wp_head">' . __('Head (not recommended)', 'wp-seopress') . '</option>';
4987
  echo '</select>';
4988
 
4989
+ echo '<p class="description">' . __('Your theme must be compatible with wp_body_open hook introduced in WordPress 5.2 if "opening body tag" option selected.') . '</p>';
4990
 
4991
  if (isset($this->options['seopress_google_analytics_hook'])) {
4992
  esc_attr($this->options['seopress_google_analytics_hook']);
6301
 
6302
  echo '<label for="seopress_advanced_advanced_wp_rsd">' . __('Remove Really Simple Discovery meta tag in source code (eg:', 'wp-seopress') . '<em>' . esc_attr('<link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.seopress.dev/xmlrpc.php?rsd" />') . '</em>)</label>';
6303
 
6304
+ echo '<p class="description">' . __('WordPress Site Health feature will return a HTTPS warning if you enable this option. This is a false positive of course.', 'wp-seopress') . '</p>';
6305
+
6306
  if (isset($this->options['seopress_advanced_advanced_wp_rsd'])) {
6307
  esc_attr($this->options['seopress_advanced_advanced_wp_rsd']);
6308
  }
6728
  }
6729
  }
6730
 
6731
+ public function seopress_advanced_appearance_ca_metaboxe_callback() {
6732
+ $options = get_option('seopress_advanced_option_name');
6733
+
6734
+ $check = isset($options['seopress_advanced_appearance_ca_metaboxe']);
6735
+
6736
+ echo '<input id="seopress_advanced_appearance_ca_metaboxe" name="seopress_advanced_option_name[seopress_advanced_appearance_ca_metaboxe]" type="checkbox"';
6737
+ if ('1' == $check) {
6738
+ echo 'checked="yes"';
6739
+ }
6740
+ echo ' value="1"/>';
6741
+
6742
+ echo '<label for="seopress_advanced_appearance_ca_metaboxe">' . __('Remove Content Analysis Metabox', 'wp-seopress') . '</label>';
6743
+
6744
+ if (isset($this->options['seopress_advanced_appearance_ca_metaboxe'])) {
6745
+ esc_attr($this->options['seopress_advanced_appearance_ca_metaboxe']);
6746
+ }
6747
+ }
6748
+
6749
  public function seopress_advanced_appearance_genesis_seo_metaboxe_callback() {
6750
  $options = get_option('seopress_advanced_option_name');
6751
 
inc/admin/ajax-migrate/aio.php ADDED
@@ -0,0 +1,137 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ defined('ABSPATH') or exit('Please don&rsquo;t call the plugin directly. Thanks :)');
4
+
5
+ ///////////////////////////////////////////////////////////////////////////////////////////////////
6
+ //AIO migration
7
+ ///////////////////////////////////////////////////////////////////////////////////////////////////
8
+ function seopress_aio_migration() {
9
+ check_ajax_referer('seopress_aio_migrate_nonce', $_POST['_ajax_nonce'], true);
10
+
11
+ if (current_user_can(seopress_capability('manage_options', 'migration')) && is_admin()) {
12
+ if (isset($_POST['offset']) && isset($_POST['offset'])) {
13
+ $offset = absint($_POST['offset']);
14
+ }
15
+
16
+ global $wpdb;
17
+ $total_count_posts = (int) $wpdb->get_var("SELECT count(*) FROM {$wpdb->posts}");
18
+
19
+ $increment = 200;
20
+ global $post;
21
+
22
+ if ($offset > $total_count_posts) {
23
+ wp_reset_query();
24
+
25
+ $args = [
26
+ //'number' => $increment,
27
+ 'hide_empty' => false,
28
+ //'offset' => $offset,
29
+ 'fields' => 'ids',
30
+ ];
31
+ $aio_query_terms = get_terms($args);
32
+
33
+ if ($aio_query_terms) {
34
+ foreach ($aio_query_terms as $term_id) {
35
+ if ('' != get_term_meta($term_id, '_aioseop_title', true)) { //Import title tag
36
+ update_term_meta($term_id, '_seopress_titles_title', get_term_meta($term_id, '_aioseop_title', true));
37
+ }
38
+ if ('' != get_term_meta($term_id, '_aioseop_description', true)) { //Import meta desc
39
+ update_term_meta($term_id, '_seopress_titles_desc', get_term_meta($term_id, '_aioseop_description', true));
40
+ }
41
+ if ('' != get_term_meta($term_id, '_aioseop_opengraph_settings', true)) { //Import Facebook / Twitter Title
42
+ $_aioseop_opengraph_settings = get_term_meta($term_id, '_aioseop_opengraph_settings', true);
43
+ if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_title'])) {
44
+ update_term_meta($term_id, '_seopress_social_fb_title', $_aioseop_opengraph_settings['aioseop_opengraph_settings_title']);
45
+ update_term_meta($term_id, '_seopress_social_twitter_title', $_aioseop_opengraph_settings['aioseop_opengraph_settings_title']);
46
+ }
47
+ }
48
+ if ('' != get_term_meta($term_id, '_aioseop_opengraph_settings', true)) { //Import Facebook / Twitter Title
49
+ $_aioseop_opengraph_settings = get_term_meta($term_id, '_aioseop_opengraph_settings', true);
50
+ if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_desc'])) {
51
+ update_term_meta($term_id, '_seopress_social_fb_desc', $_aioseop_opengraph_settings['aioseop_opengraph_settings_desc']);
52
+ update_term_meta($term_id, '_seopress_social_twitter_desc', $_aioseop_opengraph_settings['aioseop_opengraph_settings_desc']);
53
+ }
54
+ }
55
+ if ('' != get_term_meta($term_id, '_aioseop_opengraph_settings', true)) { //Import Facebook Image
56
+ $_aioseop_opengraph_settings = get_term_meta($term_id, '_aioseop_opengraph_settings', true);
57
+ if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_image'])) {
58
+ update_term_meta($term_id, '_seopress_social_fb_img', $_aioseop_opengraph_settings['aioseop_opengraph_settings_customimg']);
59
+ }
60
+ }
61
+ if ('' != get_term_meta($term_id, '_aioseop_opengraph_settings', true)) { //Import Twitter Image
62
+ $_aioseop_opengraph_settings = get_term_meta($term_id, '_aioseop_opengraph_settings', true);
63
+ if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_image'])) {
64
+ update_term_meta($term_id, '_seopress_social_twitter_img', $_aioseop_opengraph_settings['aioseop_opengraph_settings_customimg_twitter']);
65
+ }
66
+ }
67
+ if ('on' == get_term_meta($term_id, '_aioseop_noindex', true)) { //Import Robots NoIndex
68
+ update_term_meta($term_id, '_seopress_robots_index', 'yes');
69
+ }
70
+ if ('on' == get_term_meta($term_id, '_aioseop_nofollow', true)) { //Import Robots NoIndex
71
+ update_term_meta($term_id, '_seopress_robots_follow', 'yes');
72
+ }
73
+ }
74
+ }
75
+ $offset = 'done';
76
+ wp_reset_query();
77
+ } else {
78
+ $args = [
79
+ 'posts_per_page' => $increment,
80
+ 'post_type' => 'any',
81
+ 'post_status' => 'any',
82
+ 'offset' => $offset,
83
+ ];
84
+
85
+ $aio_query = get_posts($args);
86
+
87
+ if ($aio_query) {
88
+ foreach ($aio_query as $post) {
89
+ if ('' != get_post_meta($post->ID, '_aioseop_title', true)) { //Import title tag
90
+ update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, '_aioseop_title', true));
91
+ }
92
+ if ('' != get_post_meta($post->ID, '_aioseop_description', true)) { //Import meta desc
93
+ update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, '_aioseop_description', true));
94
+ }
95
+ if ('' != get_post_meta($post->ID, '_aioseop_opengraph_settings', true)) { //Import Facebook / Twitter Title
96
+ $_aioseop_opengraph_settings = get_post_meta($post->ID, '_aioseop_opengraph_settings', true);
97
+ if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_title'])) {
98
+ update_post_meta($post->ID, '_seopress_social_fb_title', $_aioseop_opengraph_settings['aioseop_opengraph_settings_title']);
99
+ update_post_meta($post->ID, '_seopress_social_twitter_title', $_aioseop_opengraph_settings['aioseop_opengraph_settings_title']);
100
+ }
101
+ }
102
+ if ('' != get_post_meta($post->ID, '_aioseop_opengraph_settings', true)) { //Import Facebook / Twitter Desc
103
+ $_aioseop_opengraph_settings = get_post_meta($post->ID, '_aioseop_opengraph_settings', true);
104
+ if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_desc'])) {
105
+ update_post_meta($post->ID, '_seopress_social_fb_desc', $_aioseop_opengraph_settings['aioseop_opengraph_settings_desc']);
106
+ update_post_meta($post->ID, '_seopress_social_twitter_desc', $_aioseop_opengraph_settings['aioseop_opengraph_settings_desc']);
107
+ }
108
+ }
109
+ if ('' != get_post_meta($post->ID, '_aioseop_opengraph_settings', true)) { //Import Facebook Image
110
+ $_aioseop_opengraph_settings = get_post_meta($post->ID, '_aioseop_opengraph_settings', true);
111
+ if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_image'])) {
112
+ update_post_meta($post->ID, '_seopress_social_fb_img', $_aioseop_opengraph_settings['aioseop_opengraph_settings_customimg']);
113
+ }
114
+ }
115
+ if ('' != get_post_meta($post->ID, '_aioseop_opengraph_settings', true)) { //Import Twitter Image
116
+ $_aioseop_opengraph_settings = get_post_meta($post->ID, '_aioseop_opengraph_settings', true);
117
+ if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_customimg_twitter'])) {
118
+ update_post_meta($post->ID, '_seopress_social_twitter_img', $_aioseop_opengraph_settings['aioseop_opengraph_settings_customimg_twitter']);
119
+ }
120
+ }
121
+ if ('on' == get_post_meta($post->ID, '_aioseop_noindex', true)) { //Import Robots NoIndex
122
+ update_post_meta($post->ID, '_seopress_robots_index', 'yes');
123
+ }
124
+ if ('on' == get_post_meta($post->ID, '_aioseop_nofollow', true)) { //Import Robots NoFollow
125
+ update_post_meta($post->ID, '_seopress_robots_follow', 'yes');
126
+ }
127
+ }
128
+ }
129
+ $offset += $increment;
130
+ }
131
+ $data = [];
132
+ $data['offset'] = $offset;
133
+ wp_send_json_success($data);
134
+ exit();
135
+ }
136
+ }
137
+ add_action('wp_ajax_seopress_aio_migration', 'seopress_aio_migration');
inc/admin/ajax-migrate/platinum.php ADDED
@@ -0,0 +1,181 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ defined('ABSPATH') or exit('Please don&rsquo;t call the plugin directly. Thanks :)');
4
+
5
+ ///////////////////////////////////////////////////////////////////////////////////////////////////
6
+ /* Platinum SEO migration
7
+ * @since 4.5
8
+ * @author Benjamin Denis
9
+ */
10
+ ///////////////////////////////////////////////////////////////////////////////////////////////////
11
+ function seopress_platinum_seo_migration() {
12
+ check_ajax_referer('seopress_platinum_seo_migrate_nonce', $_POST['_ajax_nonce'], true);
13
+
14
+ if (current_user_can(seopress_capability('manage_options', 'migration')) && is_admin()) {
15
+ if (isset($_POST['offset']) && isset($_POST['offset'])) {
16
+ $offset = absint($_POST['offset']);
17
+ }
18
+
19
+ global $wpdb;
20
+
21
+ $total_count_posts = (int) $wpdb->get_var("SELECT count(*) FROM {$wpdb->posts}");
22
+
23
+ $increment = 200;
24
+ global $post;
25
+
26
+ if ($offset > $total_count_posts) {
27
+ wp_reset_query();
28
+
29
+ $args = [
30
+ 'hide_empty' => false,
31
+ ];
32
+ $platinum_seo_query_terms = get_terms($args);
33
+
34
+ if ($platinum_seo_query_terms) {
35
+ foreach ($platinum_seo_query_terms as $term) {
36
+ if ( ! is_wp_error($term)) {
37
+ $tax = 'taxonomy';
38
+ if ('category' === $term->taxonomy) {
39
+ $tax = 'category';
40
+ }
41
+ if ('' != get_term_meta($term->term_id, 'psp_' . $tax . '_seo_metas_' . $term->term_id, true) || '' != get_term_meta($term->$term_id, 'psp_' . $tax . '_social_metas_' . $term->term_id, true)) {
42
+ $term_settings = get_term_meta($term->term_id, 'psp_' . $tax . '_seo_metas_' . $term->term_id, true);
43
+ $term_social_settings = get_term_meta($term->term_id, 'psp_' . $tax . '_social_metas_' . $term->term_id, true);
44
+
45
+ if ( ! empty($term_settings['title'])) { //Import title tag
46
+ update_term_meta($term->term_id, '_seopress_titles_title', $term_settings['title']);
47
+ }
48
+ if ( ! empty($term_settings['description'])) { //Import meta desc
49
+ update_term_meta($term->term_id, '_seopress_titles_desc', $term_settings['description']);
50
+ }
51
+ if ( ! empty($term_social_settings['fb_title'])) { //Import Facebook Title
52
+ update_term_meta($term->term_id, '_seopress_social_fb_title', $term_social_settings['fb_title']);
53
+ update_term_meta($term->term_id, '_seopress_social_twitter_title', $term_social_settings['fb_title']);
54
+ }
55
+ if ( ! empty($term_social_settings['fb_description'])) { //Import Facebook Desc
56
+ update_term_meta($term->term_id, '_seopress_social_fb_desc', $term_social_settings['fb_description']);
57
+ update_term_meta($term->term_id, '_seopress_social_twitter_desc', $term_social_settings['fb_description']);
58
+ }
59
+ if ( ! empty($term_social_settings['fb_image'])) { //Import Facebook Image
60
+ update_term_meta($term->term_id, '_seopress_social_fb_img', $term_social_settings['fb_image']);
61
+ update_term_meta($term->term_id, '_seopress_social_twitter_img', $term_social_settings['fb_image']);
62
+ }
63
+ if ( ! empty($term_settings['canonical_url'])) { //Import Canonical URL
64
+ update_term_meta($term->term_id, '_seopress_robots_canonical', $term_settings['canonical_url']);
65
+ }
66
+ if ( ! empty($term_settings['redirect_to_url'])) { //Import Redirect URL
67
+ update_term_meta($term->term_id, '_seopress_redirections_value', $term_settings['redirect_to_url']);
68
+ update_term_meta($term->term_id, '_seopress_redirections_enabled', 'yes');
69
+ if ( ! empty($term_settings['redirect_status_code'])) {
70
+ $status = $term_settings['redirect_status_code'];
71
+ if ('303' === $term_settings['redirect_status_code']) {
72
+ $status = '301';
73
+ }
74
+
75
+ update_term_meta($term->term_id, '_seopress_redirections_type', $status);
76
+ }
77
+ }
78
+ if ( ! empty($term_settings['noindex'])) { //Import Robots NoIndex
79
+ update_term_meta($term->term_id, '_seopress_robots_index', 'yes');
80
+ }
81
+ if ( ! empty($term_settings['nofollow'])) { //Import Robots NoFollow
82
+ update_term_meta($term->term_id, '_seopress_robots_follow', 'yes');
83
+ }
84
+ if ( ! empty($term_settings['noarchive'])) { //Import Robots NoArchive
85
+ update_term_meta($term->term_id, '_seopress_robots_archive', 'yes');
86
+ }
87
+ if ( ! empty($term_settings['nosnippet'])) { //Import Robots NoSnippet
88
+ update_term_meta($term->term_id, '_seopress_robots_snippet', 'yes');
89
+ }
90
+ if ( ! empty($term_settings['noimageindex'])) { //Import Robots NoImageIndex
91
+ update_term_meta($term->term_id, '_seopress_robots_imageindex', 'yes');
92
+ }
93
+ }
94
+ }
95
+ }
96
+ }
97
+ $offset = 'done';
98
+ wp_reset_query();
99
+ } else {
100
+ $args = [
101
+ 'posts_per_page' => $increment,
102
+ 'post_type' => 'any',
103
+ 'post_status' => 'any',
104
+ 'offset' => $offset,
105
+ ];
106
+
107
+ $platinum_seo_query = get_posts($args);
108
+
109
+ if ($platinum_seo_query) {
110
+ foreach ($platinum_seo_query as $post) {
111
+ if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_title', true)) { //Import title tag
112
+ update_post_meta($post->ID, '_seopress_titles_title', get_metadata('platinumseo', $post->ID, '_techblissonline_psp_title', true));
113
+ }
114
+ if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_description', true)) { //Import meta desc
115
+ update_post_meta($post->ID, '_seopress_titles_desc', get_metadata('platinumseo', $post->ID, '_techblissonline_psp_description', true));
116
+ }
117
+ if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_fb_title', true)) { //Import Facebook Title
118
+ update_post_meta($post->ID, '_seopress_social_fb_title', get_metadata('platinumseo', $post->ID, '_techblissonline_psp_fb_title', true));
119
+ update_post_meta($post->ID, '_seopress_social_twitter_title', get_metadata('platinumseo', $post->ID, '_techblissonline_psp_fb_title', true));
120
+ }
121
+ if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_fb_description', true)) { //Import Facebook Desc
122
+ update_post_meta($post->ID, '_seopress_social_fb_desc', get_metadata('platinumseo', $post->ID, '_techblissonline_psp_fb_description', true));
123
+ update_post_meta($post->ID, '_seopress_social_twitter_desc', get_metadata('platinumseo', $post->ID, '_techblissonline_psp_fb_description', true));
124
+ }
125
+ if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_fb_image', true)) { //Import Facebook Image
126
+ update_post_meta($post->ID, '_seopress_social_fb_img', get_metadata('platinumseo', $post->ID, '_techblissonline_psp_fb_image', true));
127
+ update_post_meta($post->ID, '_seopress_social_twitter_img', get_metadata('platinumseo', $post->ID, '_techblissonline_psp_fb_image', true));
128
+ }
129
+ if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_keywords', true)) { //Import Target Keyword
130
+ update_post_meta($post->ID, '_seopress_analysis_target_kw', get_metadata('platinumseo', $post->ID, '_techblissonline_psp_keywords', true));
131
+ }
132
+ if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_canonical_url', true)) { //Import Canonical URL
133
+ update_post_meta($post->ID, '_seopress_robots_canonical', get_metadata('platinumseo', $post->ID, '_techblissonline_psp_canonical_url', true));
134
+ }
135
+ if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_redirect_to_url', true)) { //Import Redirect URL
136
+ update_post_meta($post->ID, '_seopress_redirections_value', get_metadata('platinumseo', $post->ID, '_techblissonline_psp_redirect_to_url', true));
137
+ update_post_meta($post->ID, '_seopress_redirections_enabled', 'yes'); //Enable the redirect
138
+
139
+ if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_redirect_status_code', true)) {
140
+ $status = get_metadata('platinumseo', $post->ID, '_techblissonline_psp_redirect_status_code', true);
141
+ if ('303' === get_metadata('platinumseo', $post->ID, '_techblissonline_psp_redirect_status_code', true)) {
142
+ $status = '301';
143
+ }
144
+
145
+ update_term_meta($post->ID, '_seopress_redirections_type', $status);
146
+ }
147
+ }
148
+ if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_noindex', true)) { //Import Robots NoIndex
149
+ update_post_meta($post->ID, '_seopress_robots_index', 'yes');
150
+ }
151
+ if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_nofollow', true)) { //Import Robots NoFollow
152
+ update_post_meta($post->ID, '_seopress_robots_follow', 'yes');
153
+ }
154
+ if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_noarchive', true)) { //Import Robots NoArchive
155
+ update_post_meta($post->ID, '_seopress_robots_archive', 'yes');
156
+ }
157
+ if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_nosnippet', true)) { //Import Robots NoSnippet
158
+ update_post_meta($post->ID, '_seopress_robots_snippet', 'yes');
159
+ }
160
+ if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_noimageidx', true)) { //Import Robots NoImageIndex
161
+ update_post_meta($post->ID, '_seopress_robots_imageindex', 'yes');
162
+ }
163
+ if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_keywords', true)) { //Import Target Keywords
164
+ update_post_meta($post->ID, '_seopress_analysis_target_kw', get_metadata('platinumseo', $post->ID, '_techblissonline_psp_keywords', true));
165
+ }
166
+ if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_preferred_term', true)) { //Import Primary category
167
+ if ('category' == get_metadata('platinumseo', $post->ID, '_techblissonline_psp_preferred_taxonomy', true) || 'product_cat' == get_metadata('platinumseo', $post->ID, '_techblissonline_psp_preferred_taxonomy', true)) {
168
+ update_post_meta($post->ID, '_seopress_robots_primary_cat', get_metadata('platinumseo', $post->ID, '_techblissonline_psp_preferred_term', true));
169
+ }
170
+ }
171
+ }
172
+ }
173
+ $offset += $increment;
174
+ }
175
+ $data = [];
176
+ $data['offset'] = $offset;
177
+ wp_send_json_success($data);
178
+ exit();
179
+ }
180
+ }
181
+ add_action('wp_ajax_seopress_platinum_seo_migration', 'seopress_platinum_seo_migration');
inc/admin/ajax-migrate/premium-seo-pack.php ADDED
@@ -0,0 +1,118 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ defined('ABSPATH') or exit('Please don&rsquo;t call the plugin directly. Thanks :)');
4
+
5
+ ///////////////////////////////////////////////////////////////////////////////////////////////////
6
+ /* Premium SEO Pack migration
7
+ * @since 3.8.7
8
+ * @author Benjamin Denis
9
+ */
10
+ ///////////////////////////////////////////////////////////////////////////////////////////////////
11
+ function seopress_premium_seo_pack_migration() {
12
+ check_ajax_referer('seopress_premium_seo_pack_migrate_nonce', $_POST['_ajax_nonce'], true);
13
+
14
+ if (current_user_can(seopress_capability('manage_options', 'migration')) && is_admin()) {
15
+ if (isset($_POST['offset']) && isset($_POST['offset'])) {
16
+ $offset = absint($_POST['offset']);
17
+ }
18
+
19
+ global $wpdb;
20
+
21
+ $total_count_posts = (int) $wpdb->get_var("SELECT count(*) FROM {$wpdb->posts}");
22
+
23
+ $increment = 200;
24
+ global $post;
25
+
26
+ if ($offset > $total_count_posts) {
27
+ wp_reset_query();
28
+
29
+ $premium_query_terms = get_option('psp_taxonomy_seo');
30
+
31
+ if ($premium_query_terms) {
32
+ foreach ($premium_query_terms as $taxonomies => $taxonomie) {
33
+ foreach ($taxonomie as $term_id => $term_value) {
34
+ if ('' != $term_value['psp_meta']['title']) { //Import title tag
35
+ update_term_meta($term_id, '_seopress_titles_title', $term_value['psp_meta']['title']);
36
+ }
37
+ if ('' != $term_value['psp_meta']['description']) { //Import meta desc
38
+ update_term_meta($term_id, '_seopress_titles_desc', $term_value['psp_meta']['description']);
39
+ }
40
+ if ('' != $term_value['psp_meta']['facebook_titlu']) { //Import Facebook Title
41
+ update_term_meta($term_id, '_seopress_social_fb_title', $term_value['psp_meta']['facebook_titlu']);
42
+ }
43
+ if ('' != $term_value['psp_meta']['facebook_desc']) { //Import Facebook Desc
44
+ update_term_meta($term_id, '_seopress_social_fb_desc', $term_value['psp_meta']['facebook_desc']);
45
+ }
46
+ if ('' != $term_value['psp_meta']['facebook_image']) { //Import Facebook Image
47
+ update_term_meta($term_id, '_seopress_social_fb_img', $term_value['psp_meta']['facebook_image']);
48
+ }
49
+ if ('noindex' == $term_value['psp_meta']['robots_index']) { //Import Robots NoIndex
50
+ update_term_meta($term_id, '_seopress_robots_index', 'yes');
51
+ }
52
+ if ('nofollow' == $term_value['psp_meta']['robots_follow']) { //Import Robots NoFollow
53
+ update_term_meta($term_id, '_seopress_robots_follow', 'yes');
54
+ }
55
+ if ('' != $term_value['psp_meta']['canonical']) { //Import Canonical URL
56
+ update_term_meta($term_id, '_seopress_robots_canonical', $term_value['psp_meta']['canonical']);
57
+ }
58
+ }
59
+ }
60
+ }
61
+ $offset = 'done';
62
+ wp_reset_query();
63
+ } else {
64
+ $args = [
65
+ 'posts_per_page' => $increment,
66
+ 'post_type' => 'any',
67
+ 'post_status' => 'any',
68
+ 'offset' => $offset,
69
+ ];
70
+
71
+ $premium_query = get_posts($args);
72
+
73
+ if ($premium_query) {
74
+ foreach ($premium_query as $post) {
75
+ $psp_meta = get_post_meta($post->ID, 'psp_meta', true);
76
+
77
+ if ( ! empty($psp_meta)) {
78
+ if ( ! empty($psp_meta['title'])) { //Import title tag
79
+ update_post_meta($post->ID, '_seopress_titles_title', $psp_meta['title']);
80
+ }
81
+ if ( ! empty($psp_meta['description'])) { //Import meta desc
82
+ update_post_meta($post->ID, '_seopress_titles_desc', $psp_meta['description']);
83
+ }
84
+ if ( ! empty($psp_meta['facebook_titlu'])) { //Import Facebook Title
85
+ update_post_meta($post->ID, '_seopress_social_fb_title', $psp_meta['facebook_titlu']);
86
+ }
87
+ if ( ! empty($psp_meta['facebook_desc'])) { //Import Facebook Desc
88
+ update_post_meta($post->ID, '_seopress_social_fb_desc', $psp_meta['facebook_desc']);
89
+ }
90
+ if ( ! empty($psp_meta['facebook_image'])) { //Import Facebook Image
91
+ update_post_meta($post->ID, '_seopress_social_fb_img', $psp_meta['facebook_image']);
92
+ }
93
+ if ('noindex' == $psp_meta['robots_index']) { //Import Robots NoIndex
94
+ update_post_meta($post->ID, '_seopress_robots_index', 'yes');
95
+ }
96
+ if ('nofollow' == $psp_meta['robots_follow']) { //Import Robots NoIndex
97
+ update_post_meta($post->ID, '_seopress_robots_follow', 'yes');
98
+ }
99
+ if ( ! empty($psp_meta['canonical'])) { //Import Canonical URL
100
+ update_post_meta($post->ID, '_seopress_robots_canonical', $psp_meta['canonical']);
101
+ }
102
+ if ( ! empty($psp_meta['mfocus_keyword'])) { //Import Focus Keywords
103
+ $target_kw = preg_split('/\r\n|\r|\n/', $psp_meta['mfocus_keyword']);
104
+
105
+ update_post_meta($post->ID, '_seopress_analysis_target_kw', implode(',', $target_kw));
106
+ }
107
+ }
108
+ }
109
+ }
110
+ $offset += $increment;
111
+ }
112
+ $data = [];
113
+ $data['offset'] = $offset;
114
+ wp_send_json_success($data);
115
+ exit();
116
+ }
117
+ }
118
+ add_action('wp_ajax_seopress_premium_seo_pack_migration', 'seopress_premium_seo_pack_migration');
inc/admin/ajax-migrate/seo-framework.php ADDED
@@ -0,0 +1,121 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ defined('ABSPATH') or exit('Please don&rsquo;t call the plugin directly. Thanks :)');
4
+
5
+ ///////////////////////////////////////////////////////////////////////////////////////////////////
6
+ //SEO Framework migration
7
+ ///////////////////////////////////////////////////////////////////////////////////////////////////
8
+ function seopress_seo_framework_migration() {
9
+ check_ajax_referer('seopress_seo_framework_migrate_nonce', $_POST['_ajax_nonce'], true);
10
+
11
+ if (current_user_can(seopress_capability('manage_options', 'migration')) && is_admin()) {
12
+ if (isset($_POST['offset']) && isset($_POST['offset'])) {
13
+ $offset = absint($_POST['offset']);
14
+ }
15
+
16
+ global $wpdb;
17
+ $total_count_posts = (int) $wpdb->get_var("SELECT count(*) FROM {$wpdb->posts}");
18
+
19
+ $increment = 200;
20
+ global $post;
21
+
22
+ if ($offset > $total_count_posts) {
23
+ wp_reset_query();
24
+
25
+ $args = [
26
+ //'number' => $increment,
27
+ 'hide_empty' => false,
28
+ //'offset' => $offset,
29
+ 'fields' => 'ids',
30
+ ];
31
+ $seo_framework_query_terms = get_terms($args);
32
+
33
+ if ($seo_framework_query_terms) {
34
+ foreach ($seo_framework_query_terms as $term_id) {
35
+ if ('' != get_term_meta($term_id, 'autodescription-term-settings', true)) {
36
+ $term_settings = get_term_meta($term_id, 'autodescription-term-settings', true);
37
+
38
+ if ( ! empty($term_settings['doctitle'])) { //Import title tag
39
+ update_term_meta($term_id, '_seopress_titles_title', $term_settings['doctitle']);
40
+ }
41
+ if ( ! empty($term_settings['description'])) { //Import meta desc
42
+ update_term_meta($term_id, '_seopress_titles_desc', $term_settings['description']);
43
+ }
44
+ if ( ! empty($term_settings['noindex'])) { //Import Robots NoIndex
45
+ update_term_meta($term_id, '_seopress_robots_index', 'yes');
46
+ }
47
+ if ( ! empty($term_settings['nofollow'])) { //Import Robots NoFollow
48
+ update_term_meta($term_id, '_seopress_robots_follow', 'yes');
49
+ }
50
+ if ( ! empty($term_settings['noarchive'])) { //Import Robots NoArchive
51
+ update_term_meta($term_id, '_seopress_robots_archive', 'yes');
52
+ }
53
+ }
54
+ }
55
+ }
56
+ $offset = 'done';
57
+ wp_reset_query();
58
+ } else {
59
+ $args = [
60
+ 'posts_per_page' => $increment,
61
+ 'post_type' => 'any',
62
+ 'post_status' => 'any',
63
+ 'offset' => $offset,
64
+ ];
65
+
66
+ $seo_framework_query = get_posts($args);
67
+
68
+ if ($seo_framework_query) {
69
+ foreach ($seo_framework_query as $post) {
70
+ if ('' != get_post_meta($post->ID, '_genesis_title', true)) { //Import title tag
71
+ update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, '_genesis_title', true));
72
+ }
73
+ if ('' != get_post_meta($post->ID, '_genesis_description', true)) { //Import meta desc
74
+ update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, '_genesis_description', true));
75
+ }
76
+ if ('' != get_post_meta($post->ID, '_open_graph_title', true)) { //Import Facebook Title
77
+ update_post_meta($post->ID, '_seopress_social_fb_title', get_post_meta($post->ID, '_open_graph_title', true));
78
+ }
79
+ if ('' != get_post_meta($post->ID, '_open_graph_description', true)) { //Import Facebook Desc
80
+ update_post_meta($post->ID, '_seopress_social_fb_desc', get_post_meta($post->ID, '_open_graph_description', true));
81
+ }
82
+ if ('' != get_post_meta($post->ID, '_social_image_url', true)) { //Import Facebook Image
83
+ update_post_meta($post->ID, '_seopress_social_fb_img', get_post_meta($post->ID, '_social_image_url', true));
84
+ }
85
+ if ('' != get_post_meta($post->ID, '_twitter_title', true)) { //Import Twitter Title
86
+ update_post_meta($post->ID, '_seopress_social_twitter_title', get_post_meta($post->ID, '_twitter_title', true));
87
+ }
88
+ if ('' != get_post_meta($post->ID, '_twitter_description', true)) { //Import Twitter Desc
89
+ update_post_meta($post->ID, '_seopress_social_twitter_desc', get_post_meta($post->ID, '_twitter_description', true));
90
+ }
91
+ if ('' != get_post_meta($post->ID, '_social_image_url', true)) { //Import Twitter Image
92
+ update_post_meta($post->ID, '_seopress_social_twitter_img', get_post_meta($post->ID, '_social_image_url', true));
93
+ }
94
+ if ('1' == get_post_meta($post->ID, '_genesis_noindex', true)) { //Import Robots NoIndex
95
+ update_post_meta($post->ID, '_seopress_robots_index', 'yes');
96
+ }
97
+ if ('1' == get_post_meta($post->ID, '_genesis_nofollow', true)) { //Import Robots NoFollow
98
+ update_post_meta($post->ID, '_seopress_robots_follow', 'yes');
99
+ }
100
+ if ('1' == get_post_meta($post->ID, '_genesis_noarchive', true)) { //Import Robots NoArchive
101
+ update_post_meta($post->ID, '_seopress_robots_archive', 'yes');
102
+ }
103
+ if ('' != get_post_meta($post->ID, '_genesis_canonical_uri', true)) { //Import Canonical URL
104
+ update_post_meta($post->ID, '_seopress_robots_canonical', get_post_meta($post->ID, '_genesis_canonical_uri', true));
105
+ }
106
+ if ('' != get_post_meta($post->ID, 'redirect', true)) { //Import Redirect URL
107
+ update_post_meta($post->ID, '_seopress_redirections_enabled', 'yes');
108
+ update_post_meta($post->ID, '_seopress_redirections_type', '301');
109
+ update_post_meta($post->ID, '_seopress_redirections_value', get_post_meta($post->ID, 'redirect', true));
110
+ }
111
+ }
112
+ }
113
+ $offset += $increment;
114
+ }
115
+ $data = [];
116
+ $data['offset'] = $offset;
117
+ wp_send_json_success($data);
118
+ exit();
119
+ }
120
+ }
121
+ add_action('wp_ajax_seopress_seo_framework_migration', 'seopress_seo_framework_migration');
inc/admin/ajax-migrate/seo-ultimate.php ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ defined('ABSPATH') or exit('Please don&rsquo;t call the plugin directly. Thanks :)');
4
+
5
+ ///////////////////////////////////////////////////////////////////////////////////////////////////
6
+ /* SEO Ultimate migration
7
+ * @since 3.8.2
8
+ * @author Benjamin Denis
9
+ */
10
+ ///////////////////////////////////////////////////////////////////////////////////////////////////
11
+ function seopress_seo_ultimate_migration() {
12
+ check_ajax_referer('seopress_seo_ultimate_migrate_nonce', $_POST['_ajax_nonce'], true);
13
+
14
+ if (current_user_can(seopress_capability('manage_options', 'migration')) && is_admin()) {
15
+ if (isset($_POST['offset']) && isset($_POST['offset'])) {
16
+ $offset = absint($_POST['offset']);
17
+ }
18
+
19
+ global $wpdb;
20
+
21
+ $total_count_posts = (int) $wpdb->get_var("SELECT count(*) FROM {$wpdb->posts}");
22
+
23
+ $increment = 200;
24
+ global $post;
25
+
26
+ if ($offset > $total_count_posts) {
27
+ $offset = 'done';
28
+ wp_reset_query();
29
+ } else {
30
+ $args = [
31
+ 'posts_per_page' => $increment,
32
+ 'post_type' => 'any',
33
+ 'post_status' => 'any',
34
+ 'offset' => $offset,
35
+ ];
36
+
37
+ $su_query = get_posts($args);
38
+
39
+ if ($su_query) {
40
+ foreach ($su_query as $post) {
41
+ if ('' != get_post_meta($post->ID, '_su_title', true)) { //Import title tag
42
+ update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, '_su_title', true));
43
+ }
44
+ if ('' != get_post_meta($post->ID, '_su_description', true)) { //Import meta desc
45
+ update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, '_su_description', true));
46
+ }
47
+ if ('' != get_post_meta($post->ID, '_su_og_title', true)) { //Import Facebook Title
48
+ update_post_meta($post->ID, '_seopress_social_fb_title', get_post_meta($post->ID, '_su_og_title', true));
49
+ }
50
+ if ('' != get_post_meta($post->ID, '_su_og_description', true)) { //Import Facebook Desc
51
+ update_post_meta($post->ID, '_seopress_social_fb_desc', get_post_meta($post->ID, '_su_og_description', true));
52
+ }
53
+ if ('' != get_post_meta($post->ID, '_su_og_image', true)) { //Import Facebook Image
54
+ update_post_meta($post->ID, '_seopress_social_fb_img', get_post_meta($post->ID, '_su_og_image', true));
55
+ }
56
+ if ('1' == get_post_meta($post->ID, '_su_meta_robots_noindex', true)) { //Import Robots NoIndex
57
+ update_post_meta($post->ID, '_seopress_robots_index', 'yes');
58
+ }
59
+ if ('1' == get_post_meta($post->ID, '_su_meta_robots_nofollow', true)) { //Import Robots NoFollow
60
+ update_post_meta($post->ID, '_seopress_robots_follow', 'yes');
61
+ }
62
+ }
63
+ }
64
+ $offset += $increment;
65
+ }
66
+ $data = [];
67
+ $data['offset'] = $offset;
68
+ wp_send_json_success($data);
69
+ exit();
70
+ }
71
+ }
72
+ add_action('wp_ajax_seopress_seo_ultimate_migration', 'seopress_seo_ultimate_migration');
inc/admin/ajax-migrate/seopressor.php ADDED
@@ -0,0 +1,488 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ defined('ABSPATH') or exit('Please don&rsquo;t call the plugin directly. Thanks :)');
4
+
5
+ ///////////////////////////////////////////////////////////////////////////////////////////////////
6
+ /* SEOPressor migration
7
+ * @since 4.5
8
+ * @author Benjamin Denis
9
+ */
10
+ ///////////////////////////////////////////////////////////////////////////////////////////////////
11
+ function seopress_seopressor_migration() {
12
+ check_ajax_referer('seopress_seopressor_migrate_nonce', $_POST['_ajax_nonce'], true);
13
+
14
+ if (current_user_can(seopress_capability('manage_options', 'migration')) && is_admin()) {
15
+ if (isset($_POST['offset']) && isset($_POST['offset'])) {
16
+ $offset = absint($_POST['offset']);
17
+ }
18
+
19
+ global $wpdb;
20
+
21
+ $total_count_posts = (int) $wpdb->get_var("SELECT count(*) FROM {$wpdb->posts}");
22
+
23
+ $increment = 200;
24
+ global $post;
25
+
26
+ if ($offset > $total_count_posts) {
27
+ $offset = 'done';
28
+ wp_reset_query();
29
+ } else {
30
+ $args = [
31
+ 'posts_per_page' => $increment,
32
+ 'post_type' => 'any',
33
+ 'post_status' => 'any',
34
+ 'offset' => $offset,
35
+ ];
36
+
37
+ $su_query = get_posts($args);
38
+
39
+ if ($su_query) {
40
+ foreach ($su_query as $post) {
41
+ if ( ! empty(get_post_meta($post->ID, '_seop_settings', true))) {
42
+ $_seop_settings = get_post_meta($post->ID, '_seop_settings', true);
43
+
44
+ if ( ! empty($_seop_settings['meta_title'])) { //Import title tag
45
+ update_post_meta($post->ID, '_seopress_titles_title', $_seop_settings['meta_title']);
46
+ }
47
+ if ( ! empty($_seop_settings['meta_description'])) { //Import meta desc
48
+ update_post_meta($post->ID, '_seopress_titles_desc', $_seop_settings['meta_description']);
49
+ }
50
+ if ( ! empty($_seop_settings['fb_title'])) { //Import Facebook Title
51
+ update_post_meta($post->ID, '_seopress_social_fb_title', $_seop_settings['fb_title']);
52
+ }
53
+ if ( ! empty($_seop_settings['fb_description'])) { //Import Facebook Desc
54
+ update_post_meta($post->ID, '_seopress_social_fb_desc', $_seop_settings['fb_description']);
55
+ }
56
+ if ( ! empty($_seop_settings['fb_img'])) { //Import Facebook Image
57
+ update_post_meta($post->ID, '_seopress_social_fb_img', $_seop_settings['fb_img']);
58
+ }
59
+ if ( ! empty($_seop_settings['tw_title'])) { //Import Twitter Title
60
+ update_post_meta($post->ID, '_seopress_social_twitter_title', $_seop_settings['tw_title']);
61
+ }
62
+ if ( ! empty($_seop_settings['tw_description'])) { //Import Twitter Desc
63
+ update_post_meta($post->ID, '_seopress_social_twitter_desc', $_seop_settings['tw_description']);
64
+ }
65
+ if ( ! empty($_seop_settings['tw_image'])) { //Import Twitter Image
66
+ update_post_meta($post->ID, '_seopress_social_twitter_img', $_seop_settings['tw_image']);
67
+ }
68
+ if ( ! empty($_seop_settings['meta_rules'])) {
69
+ $robots = explode('#|#|#', $_seop_settings['meta_rules']);
70
+
71
+ if ( ! empty($robots)) {
72
+ if (in_array('noindex', $robots)) { //Import Robots NoIndex
73
+ update_post_meta($post->ID, '_seopress_robots_index', 'yes');
74
+ }
75
+ if (in_array('nofollow', $robots)) { //Import Robots NoFollow
76
+ update_post_meta($post->ID, '_seopress_robots_follow', 'yes');
77
+ }
78
+ if (in_array('noarchive', $robots)) { //Import Robots NoArchive
79
+ update_post_meta($post->ID, '_seopress_robots_archive', 'yes');
80
+ }
81
+ if (in_array('nosnippet', $robots)) { //Import Robots NoSnippet
82
+ update_post_meta($post->ID, '_seopress_robots_snippet', 'yes');
83
+ }
84
+ if (in_array('noodp', $robots)) { //Import Robots NoOdp
85
+ update_post_meta($post->ID, '_seopress_robots_odp', 'yes');
86
+ }
87
+ if (in_array('noimageindex', $robots)) { //Import Robots NoImageIndex
88
+ update_post_meta($post->ID, '_seopress_robots_imageindex', 'yes');
89
+ }
90
+ }
91
+ }
92
+ if ('' != get_post_meta($post->ID, '_seop_kw_1', true) || '' != get_post_meta($post->ID, '_seop_kw_2', true) || '' != get_post_meta($post->ID, '_seop_kw_3', true)) { //Import Target Keyword
93
+ $kw = [];
94
+ $kw[] = get_post_meta($post->ID, '_seop_kw_1', true);
95
+ $kw[] = get_post_meta($post->ID, '_seop_kw_2', true);
96
+ $kw[] = get_post_meta($post->ID, '_seop_kw_3', true);
97
+
98
+ $kw = implode(',', $kw);
99
+
100
+ if ( ! empty($kw)) {
101
+ update_post_meta($post->ID, '_seopress_analysis_target_kw', $kw);
102
+ }
103
+ }
104
+ if ( ! empty($_seop_settings['meta_canonical'])) { //Import Canonical URL
105
+ update_post_meta($post->ID, '_seopress_robots_canonical', $_seop_settings['meta_canonical']);
106
+ }
107
+ if ( ! empty($_seop_settings['meta_redirect'])) { //Import Redirect URL
108
+ update_post_meta($post->ID, '_seopress_redirections_value', $_seop_settings['meta_redirect']);
109
+ update_post_meta($post->ID, '_seopress_redirections_enabled', 'yes'); //Enable the redirect
110
+ }
111
+ }
112
+ }
113
+ }
114
+ $offset += $increment;
115
+ }
116
+ $data = [];
117
+ $data['offset'] = $offset;
118
+ wp_send_json_success($data);
119
+ exit();
120
+ }
121
+ }
122
+ add_action('wp_ajax_seopress_seopressor_migration', 'seopress_seopressor_migration');
123
+
124
+ ///////////////////////////////////////////////////////////////////////////////////////////////////
125
+ //Export SEOPress metadata to CSV
126
+ ///////////////////////////////////////////////////////////////////////////////////////////////////
127
+ function seopress_metadata_export() {
128
+ check_ajax_referer('seopress_export_csv_metadata_nonce', $_POST['_ajax_nonce'], true);
129
+
130
+ if (current_user_can(seopress_capability('manage_options', 'migration')) && is_admin()) {
131
+ if (isset($_POST['offset'])) {
132
+ $offset = absint($_POST['offset']);
133
+ }
134
+
135
+ $post_export = '';
136
+ if (isset($_POST['post_export'])) {
137
+ $post_export = esc_attr($_POST['post_export']);
138
+ }
139
+
140
+ $term_export = '';
141
+ if (isset($_POST['term_export'])) {
142
+ $term_export = esc_attr($_POST['term_export']);
143
+ }
144
+
145
+ //Get post types
146
+ $seopress_get_post_types = [];
147
+ foreach (seopress_get_post_types() as $seopress_cpt_key => $seopress_cpt_value) {
148
+ $seopress_get_post_types[] = $seopress_cpt_key;
149
+ }
150
+
151
+ //Get taxonomies
152
+ $seopress_get_taxonomies = [];
153
+ foreach (seopress_get_taxonomies() as $seopress_tax_key => $seopress_tax_value) {
154
+ $seopress_get_taxonomies[] = $seopress_tax_key;
155
+ }
156
+
157
+ global $wpdb;
158
+ global $post;
159
+
160
+ //Count posts
161
+ $i = 1;
162
+ $sql = '(';
163
+ $count = count($seopress_get_post_types);
164
+ foreach ($seopress_get_post_types as $cpt) {
165
+ $sql .= '(post_type = "' . $cpt . '")';
166
+
167
+ if ($i < $count) {
168
+ $sql .= ' OR ';
169
+ }
170
+
171
+ ++$i;
172
+ }
173
+ $sql .= ')';
174
+
175
+ $total_count_posts = (int) $wpdb->get_var("SELECT count(*)
176
+ FROM {$wpdb->posts}
177
+ WHERE $sql
178
+ AND (post_status = 'publish' OR post_status = 'pending' OR post_status = 'draft' OR post_status = 'auto-draft' OR post_status = 'future' OR post_status = 'private' OR post_status = 'inherit' OR post_status = 'trash') ");
179
+
180
+ //Count terms
181
+ $total_count_terms = (int) $wpdb->get_var("SELECT count(*) FROM {$wpdb->terms}");
182
+
183
+ $increment = 200;
184
+
185
+ $csv = '';
186
+ $csv = get_option('seopress_metadata_csv');
187
+ $download_url = '';
188
+
189
+ $settings['id'] = [];
190
+ $settings['post_title'] = [];
191
+ $settings['url'] = [];
192
+ $settings['meta_title'] = [];
193
+ $settings['meta_desc'] = [];
194
+ $settings['fb_title'] = [];
195
+ $settings['fb_desc'] = [];
196
+ $settings['fb_img'] = [];
197
+ $settings['tw_title'] = [];
198
+ $settings['tw_desc'] = [];
199
+ $settings['tw_img'] = [];
200
+ $settings['noindex'] = [];
201
+ $settings['nofollow'] = [];
202
+ $settings['noodp'] = [];
203
+ $settings['noimageindex'] = [];
204
+ $settings['noarchive'] = [];
205
+ $settings['nosnippet'] = [];
206
+ $settings['canonical_url'] = [];
207
+ $settings['primary_cat'] = [];
208
+ $settings['redirect_active'] = [];
209
+ $settings['redirect_type'] = [];
210
+ $settings['redirect_url'] = [];
211
+ $settings['target_kw'] = [];
212
+
213
+ //Posts
214
+ if ('done' != $post_export) {
215
+ if ($offset > $total_count_posts) {
216
+ wp_reset_query();
217
+ //Reset offset once Posts export is done
218
+ $offset = 0;
219
+ update_option('seopress_metadata_csv', $csv);
220
+ $post_export = 'done';
221
+ } else {
222
+ $args = [
223
+ 'post_type' => $seopress_get_post_types,
224
+ 'posts_per_page' => $increment,
225
+ 'offset' => $offset,
226
+ 'post_status' => 'any',
227
+ 'order' => 'DESC',
228
+ 'orderby' => 'date',
229
+ ];
230
+ $args = apply_filters('seopress_metadata_query_args', $args, $seopress_get_post_types, $increment, $offset);
231
+ $meta_query = get_posts($args);
232
+
233
+ if ($meta_query) {
234
+ // The Loop
235
+ foreach ($meta_query as $post) {
236
+ array_push($settings['id'], $post->ID);
237
+
238
+ array_push($settings['post_title'], $post->post_title);
239
+
240
+ array_push($settings['url'], get_permalink($post));
241
+
242
+ array_push($settings['meta_title'], get_post_meta($post->ID, '_seopress_titles_title', true));
243
+
244
+ array_push($settings['meta_desc'], get_post_meta($post->ID, '_seopress_titles_desc', true));
245
+
246
+ array_push($settings['fb_title'], get_post_meta($post->ID, '_seopress_social_fb_title', true));
247
+
248
+ array_push($settings['fb_desc'], get_post_meta($post->ID, '_seopress_social_fb_desc', true));
249
+
250
+ array_push($settings['fb_img'], get_post_meta($post->ID, '_seopress_social_fb_img', true));
251
+
252
+ array_push($settings['tw_title'], get_post_meta($post->ID, '_seopress_social_twitter_title', true));
253
+
254
+ array_push($settings['tw_desc'], get_post_meta($post->ID, '_seopress_social_twitter_desc', true));
255
+
256
+ array_push($settings['tw_img'], get_post_meta($post->ID, '_seopress_social_twitter_img', true));
257
+
258
+ array_push($settings['noindex'], get_post_meta($post->ID, '_seopress_robots_index', true));
259
+
260
+ array_push($settings['nofollow'], get_post_meta($post->ID, '_seopress_robots_follow', true));
261
+
262
+ array_push($settings['noodp'], get_post_meta($post->ID, '_seopress_robots_odp', true));
263
+
264
+ array_push($settings['noimageindex'], get_post_meta($post->ID, '_seopress_robots_imageindex', true));
265
+
266
+ array_push($settings['noarchive'], get_post_meta($post->ID, '_seopress_robots_archive', true));
267
+
268
+ array_push($settings['nosnippet'], get_post_meta($post->ID, '_seopress_robots_snippet', true));
269
+
270
+ array_push($settings['canonical_url'], get_post_meta($post->ID, '_seopress_robots_canonical', true));
271
+
272
+ array_push($settings['primary_cat'], get_post_meta($post->ID, 'seopress_robots_primary_cat', true));
273
+
274
+ array_push($settings['redirect_active'], get_post_meta($post->ID, '_seopress_redirections_enabled', true));
275
+
276
+ array_push($settings['redirect_type'], get_post_meta($post->ID, '_seopress_redirections_type', true));
277
+
278
+ array_push($settings['redirect_url'], get_post_meta($post->ID, '_seopress_redirections_value', true));
279
+
280
+ array_push($settings['target_kw'], get_post_meta($post->ID, '_seopress_analysis_target_kw', true));
281
+
282
+ $csv[] = array_merge(
283
+ $settings['id'],
284
+ $settings['post_title'],
285
+ $settings['url'],
286
+ $settings['meta_title'],
287
+ $settings['meta_desc'],
288
+ $settings['fb_title'],
289
+ $settings['fb_desc'],
290
+ $settings['fb_img'],
291
+ $settings['tw_title'],
292
+ $settings['tw_desc'],
293
+ $settings['tw_img'],
294
+ $settings['noindex'],
295
+ $settings['nofollow'],
296
+ $settings['noodp'],
297
+ $settings['noimageindex'],
298
+ $settings['noarchive'],
299
+ $settings['nosnippet'],
300
+ $settings['canonical_url'],
301
+ $settings['primary_cat'],
302
+ $settings['redirect_active'],
303
+ $settings['redirect_type'],
304
+ $settings['redirect_url'],
305
+ $settings['target_kw']
306
+ );
307
+
308
+ //Clean arrays
309
+ $settings['id'] = [];
310
+ $settings['post_title'] = [];
311
+ $settings['url'] = [];
312
+ $settings['meta_title'] = [];
313
+ $settings['meta_desc'] = [];
314
+ $settings['fb_title'] = [];
315
+ $settings['fb_desc'] = [];
316
+ $settings['fb_img'] = [];
317
+ $settings['tw_title'] = [];
318
+ $settings['tw_desc'] = [];
319
+ $settings['tw_img'] = [];
320
+ $settings['noindex'] = [];
321
+ $settings['nofollow'] = [];
322
+ $settings['noodp'] = [];
323
+ $settings['noimageindex'] = [];
324
+ $settings['noarchive'] = [];
325
+ $settings['nosnippet'] = [];
326
+ $settings['canonical_url'] = [];
327
+ $settings['primary_cat'] = [];
328
+ $settings['redirect_active'] = [];
329
+ $settings['redirect_type'] = [];
330
+ $settings['redirect_url'] = [];
331
+ $settings['target_kw'] = [];
332
+ }
333
+ }
334
+ $offset += $increment;
335
+ update_option('seopress_metadata_csv', $csv);
336
+ }
337
+ } elseif ('done' != $term_export) {
338
+ //Terms
339
+ if ($offset > $total_count_terms) {
340
+ update_option('seopress_metadata_csv', $csv);
341
+ $post_export = 'done';
342
+ $term_export = 'done';
343
+ } else {
344
+ $args = [
345
+ 'taxonomy' => $seopress_get_taxonomies,
346
+ 'number' => $increment,
347
+ 'offset' => $offset,
348
+ 'order' => 'DESC',
349
+ 'orderby' => 'date',
350
+ 'hide_empty' => false,
351
+ ];
352
+
353
+ $args = apply_filters('seopress_metadata_query_terms_args', $args, $seopress_get_taxonomies, $increment, $offset);
354
+
355
+ $meta_query = get_terms($args);
356
+
357
+ if ($meta_query) {
358
+ // The Loop
359
+ foreach ($meta_query as $term) {
360
+ array_push($settings['id'], $term->term_id);
361
+
362
+ array_push($settings['post_title'], $term->name);
363
+
364
+ array_push($settings['url'], get_term_link($term));
365
+
366
+ array_push($settings['meta_title'], get_term_meta($term->term_id, '_seopress_titles_title', true));
367
+
368
+ array_push($settings['meta_desc'], get_term_meta($term->term_id, '_seopress_titles_desc', true));
369
+
370
+ array_push($settings['fb_title'], get_term_meta($term->term_id, '_seopress_social_fb_title', true));
371
+
372
+ array_push($settings['fb_desc'], get_term_meta($term->term_id, '_seopress_social_fb_desc', true));
373
+
374
+ array_push($settings['fb_img'], get_term_meta($term->term_id, '_seopress_social_fb_img', true));
375
+
376
+ array_push($settings['tw_title'], get_term_meta($term->term_id, '_seopress_social_twitter_title', true));
377
+
378
+ array_push($settings['tw_desc'], get_term_meta($term->term_id, '_seopress_social_twitter_desc', true));
379
+
380
+ array_push($settings['tw_img'], get_term_meta($term->term_id, '_seopress_social_twitter_img', true));
381
+
382
+ array_push($settings['noindex'], get_term_meta($term->term_id, '_seopress_robots_index', true));
383
+
384
+ array_push($settings['nofollow'], get_term_meta($term->term_id, '_seopress_robots_follow', true));
385
+
386
+ array_push($settings['noodp'], get_term_meta($term->term_id, '_seopress_robots_odp', true));
387
+
388
+ array_push($settings['noimageindex'], get_term_meta($term->term_id, '_seopress_robots_imageindex', true));
389
+
390
+ array_push($settings['noarchive'], get_term_meta($term->term_id, '_seopress_robots_archive', true));
391
+
392
+ array_push($settings['nosnippet'], get_term_meta($term->term_id, '_seopress_robots_snippet', true));
393
+
394
+ array_push($settings['canonical_url'], get_term_meta($term->term_id, '_seopress_robots_canonical', true));
395
+
396
+ array_push($settings['redirect_active'], get_term_meta($term->term_id, '_seopress_redirections_enabled', true));
397
+
398
+ array_push($settings['redirect_type'], get_term_meta($term->term_id, '_seopress_redirections_type', true));
399
+
400
+ array_push($settings['redirect_url'], get_term_meta($term->term_id, '_seopress_redirections_value', true));
401
+
402
+ array_push($settings['target_kw'], get_term_meta($term->term_id, '_seopress_analysis_target_kw', true));
403
+
404
+ $csv[] = array_merge(
405
+ $settings['id'],
406
+ $settings['post_title'],
407
+ $settings['url'],
408
+ $settings['meta_title'],
409
+ $settings['meta_desc'],
410
+ $settings['fb_title'],
411
+ $settings['fb_desc'],
412
+ $settings['fb_img'],
413
+ $settings['tw_title'],
414
+ $settings['tw_desc'],
415
+ $settings['tw_img'],
416
+ $settings['noindex'],
417
+ $settings['nofollow'],
418
+ $settings['noodp'],
419
+ $settings['noimageindex'],
420
+ $settings['noarchive'],
421
+ $settings['nosnippet'],
422
+ $settings['canonical_url'],
423
+ $settings['redirect_active'],
424
+ $settings['redirect_type'],
425
+ $settings['redirect_url'],
426
+ $settings['target_kw']
427
+ );
428
+
429
+ //Clean arrays
430
+ $settings['id'] = [];
431
+ $settings['post_title'] = [];
432
+ $settings['url'] = [];
433
+ $settings['meta_title'] = [];
434
+ $settings['meta_desc'] = [];
435
+ $settings['fb_title'] = [];
436
+ $settings['fb_desc'] = [];
437
+ $settings['fb_img'] = [];
438
+ $settings['tw_title'] = [];
439
+ $settings['tw_desc'] = [];
440
+ $settings['tw_img'] = [];
441
+ $settings['noindex'] = [];
442
+ $settings['nofollow'] = [];
443
+ $settings['noodp'] = [];
444
+ $settings['noimageindex'] = [];
445
+ $settings['noarchive'] = [];
446
+ $settings['nosnippet'] = [];
447
+ $settings['canonical_url'] = [];
448
+ $settings['redirect_active'] = [];
449
+ $settings['redirect_type'] = [];
450
+ $settings['redirect_url'] = [];
451
+ $settings['target_kw'] = [];
452
+ }
453
+ }
454
+ $offset += $increment;
455
+ $post_export = 'done';
456
+ update_option('seopress_metadata_csv', $csv);
457
+ }
458
+ } else {
459
+ $post_export = 'done';
460
+ $term_export = 'done';
461
+ }
462
+
463
+ //Create download URL
464
+ if ('done' == $post_export && 'done' == $term_export) {
465
+ $args = array_merge($_POST, [
466
+ 'nonce' => wp_create_nonce('seopress_csv_batch_export_nonce'),
467
+ 'page' => 'seopress-import-export',
468
+ 'seopress_action' => 'seopress_download_batch_export',
469
+ ]);
470
+
471
+ $download_url = add_query_arg($args, admin_url('admin.php'));
472
+
473
+ $offset = 'done';
474
+ }
475
+
476
+ //Return data to JSON
477
+ $data = [];
478
+ $data['offset'] = $offset;
479
+ $data['url'] = $download_url;
480
+ $data['post_export'] = $post_export;
481
+ $data['term_export'] = $term_export;
482
+ wp_send_json_success($data);
483
+
484
+ exit();
485
+ }
486
+ }
487
+
488
+ add_action('wp_ajax_seopress_metadata_export', 'seopress_metadata_export');
inc/admin/ajax-migrate/smart-crawl.php ADDED
@@ -0,0 +1,174 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ defined('ABSPATH') or exit('Please don&rsquo;t call the plugin directly. Thanks :)');
4
+
5
+ ///////////////////////////////////////////////////////////////////////////////////////////////////
6
+ /* SmartCrawl migration
7
+ * @since 4.5
8
+ * @author Benjamin Denis
9
+ */
10
+ ///////////////////////////////////////////////////////////////////////////////////////////////////
11
+ function seopress_smart_crawl_migration() {
12
+ check_ajax_referer('seopress_smart_crawl_migrate_nonce', $_POST['_ajax_nonce'], true);
13
+
14
+ if (current_user_can(seopress_capability('manage_options', 'migration')) && is_admin()) {
15
+ if (isset($_POST['offset']) && isset($_POST['offset'])) {
16
+ $offset = absint($_POST['offset']);
17
+ }
18
+
19
+ global $wpdb;
20
+
21
+ $total_count_posts = (int) $wpdb->get_var("SELECT count(*) FROM {$wpdb->posts}");
22
+
23
+ $increment = 200;
24
+ global $post;
25
+
26
+ if ($offset > $total_count_posts) {
27
+ wp_reset_query();
28
+
29
+ $smart_crawl_query_terms = get_option('wds_taxonomy_meta');
30
+
31
+ if ($smart_crawl_query_terms) {
32
+ foreach ($smart_crawl_query_terms as $taxonomies => $taxonomie) {
33
+ foreach ($taxonomie as $term_id => $term_value) {
34
+ if ( ! empty($term_value['wds_title'])) { //Import title tag
35
+ update_term_meta($term_id, '_seopress_titles_title', $term_value['wds_title']);
36
+ }
37
+ if ( ! empty($term_value['wds_desc'])) { //Import meta desc
38
+ update_term_meta($term_id, '_seopress_titles_desc', $term_value['wds_desc']);
39
+ }
40
+ if ( ! empty($term_value['opengraph']['title'])) { //Import Facebook Title
41
+ update_term_meta($term_id, '_seopress_social_fb_title', $term_value['opengraph']['title']);
42
+ }
43
+ if ( ! empty($term_value['opengraph']['description'])) { //Import Facebook Desc
44
+ update_term_meta($term_id, '_seopress_social_fb_desc', $term_value['opengraph']['description']);
45
+ }
46
+ if ( ! empty($term_value['opengraph']['images'])) { //Import Facebook Image
47
+ $image_id = $term_value['opengraph']['images'][0];
48
+ $img_url = wp_get_attachment_url($image_id);
49
+
50
+ if (isset($img_url) && '' != $img_url) {
51
+ update_term_meta($term_id, '_seopress_social_fb_img', $img_url);
52
+ }
53
+ }
54
+ if ( ! empty($term_value['twitter']['title'])) { //Import Facebook Title
55
+ update_term_meta($term_id, '_seopress_social_twitter_title', $term_value['twitter']['title']);
56
+ }
57
+ if ( ! empty($term_value['twitter']['description'])) { //Import Facebook Desc
58
+ update_term_meta($term_id, '_seopress_social_twitter_desc', $term_value['twitter']['description']);
59
+ }
60
+ if ( ! empty($term_value['twitter']['images'])) { //Import Facebook Image
61
+ $image_id = $term_value['twitter']['images'][0];
62
+ $img_url = wp_get_attachment_url($image_id);
63
+
64
+ if (isset($img_url) && '' != $img_url) {
65
+ update_term_meta($term_id, '_seopress_social_twitter_img', $img_url);
66
+ }
67
+ }
68
+ if ( ! empty($term_value['wds_noindex']) && 'noindex' == $term_value['wds_noindex']) { //Import Robots NoIndex
69
+ update_term_meta($term_id, '_seopress_robots_index', 'yes');
70
+ }
71
+ if ( ! empty($term_value['wds_nofollow']) && 'nofollow' == $term_value['wds_nofollow']) { //Import Robots NoFollow
72
+ update_term_meta($term_id, '_seopress_robots_follow', 'yes');
73
+ }
74
+ if ('' != $term_value['wds_canonical']) { //Import Canonical URL
75
+ update_term_meta($term_id, '_seopress_robots_canonical', $term_value['wds_canonical']);
76
+ }
77
+ }
78
+ }
79
+ }
80
+ $offset = 'done';
81
+ wp_reset_query();
82
+ } else {
83
+ $args = [
84
+ 'posts_per_page' => $increment,
85
+ 'post_type' => 'any',
86
+ 'post_status' => 'any',
87
+ 'offset' => $offset,
88
+ ];
89
+
90
+ $smart_crawl_query = get_posts($args);
91
+
92
+ if ($smart_crawl_query) {
93
+ foreach ($smart_crawl_query as $post) {
94
+ if ('' != get_post_meta($post->ID, '_wds_title', true)) { //Import title tag
95
+ update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, '_wds_title', true));
96
+ }
97
+ if ('' != get_post_meta($post->ID, '_wds_metadesc', true)) { //Import meta desc
98
+ update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, '_wds_metadesc', true));
99
+ }
100
+ if ('' != get_post_meta($post->ID, '_wds_opengraph', true)) {
101
+ $_wds_opengraph = get_post_meta($post->ID, '_wds_opengraph', true);
102
+ if ( ! empty($_wds_opengraph['title'])) {
103
+ update_post_meta($post->ID, '_seopress_social_fb_title', $_wds_opengraph['title']); //Import Facebook Title
104
+ }
105
+ if ( ! empty($_wds_opengraph['description'])) { //Import Facebook Desc
106
+ update_post_meta($post->ID, '_seopress_social_fb_desc', $_wds_opengraph['description']);
107
+ }
108
+ if ( ! empty($_wds_opengraph['images'])) { //Import Facebook Image
109
+ $image_id = $_wds_opengraph['images'][0];
110
+ $img_url = wp_get_attachment_url($image_id);
111
+
112
+ if (isset($img_url) && '' != $img_url) {
113
+ update_post_meta($post->ID, '_seopress_social_fb_img', $img_url);
114
+ }
115
+ }
116
+ }
117
+ if ('' != get_post_meta($post->ID, '_wds_twitter', true)) {
118
+ $_wds_twitter = get_post_meta($post->ID, '_wds_twitter', true);
119
+ if ( ! empty($_wds_twitter['title'])) {
120
+ update_post_meta($post->ID, '_seopress_social_twitter_title', $_wds_twitter['title']); //Import Twitter Title
121
+ }
122
+ if ( ! empty($_wds_twitter['description'])) { //Import Twitter Desc
123
+ update_post_meta($post->ID, '_seopress_social_twitter_desc', $_wds_twitter['description']);
124
+ }
125
+ if ( ! empty($_wds_twitter['images'])) { //Import Twitter Image
126
+ $image_id = $_wds_twitter['images'][0];
127
+ $img_url = wp_get_attachment_url($image_id);
128
+
129
+ if (isset($img_url) && '' != $img_url) {
130
+ update_post_meta($post->ID, '_seopress_social_twitter_img', $img_url);
131
+ }
132
+ }
133
+ }
134
+ if ('1' === get_post_meta($post->ID, '_wds_meta-robots-noindex', true)) { //Import Robots NoIndex
135
+ update_post_meta($post->ID, '_seopress_robots_index', 'yes');
136
+ }
137
+ if ('1' === get_post_meta($post->ID, '_wds_meta-robots-nofollow', true)) { //Import Robots NoIndex
138
+ update_post_meta($post->ID, '_seopress_robots_follow', 'yes');
139
+ }
140
+ if ('' != get_post_meta($post->ID, '_wds_meta-robots-adv', true)) {
141
+ $robots = get_post_meta($post->ID, '_wds_meta-robots-adv', true);
142
+ if ('' != $robots) {
143
+ $robots = explode(',', $robots);
144
+
145
+ if (in_array('noarchive', $robots)) { //Import Robots NoArchive
146
+ update_post_meta($post->ID, '_seopress_robots_archive', 'yes');
147
+ }
148
+ if (in_array('nosnippet', $robots)) { //Import Robots NoSnippet
149
+ update_post_meta($post->ID, '_seopress_robots_snippet', 'yes');
150
+ }
151
+ }
152
+ }
153
+ if ('' != get_post_meta($post->ID, '_wds_canonical', true)) { //Import Canonical URL
154
+ update_post_meta($post->ID, '_seopress_robots_canonical', get_post_meta($post->ID, '_wds_canonical', true));
155
+ }
156
+ if ('' != get_post_meta($post->ID, '_wds_redirect', true)) { //Import Redirect URL
157
+ update_post_meta($post->ID, '_seopress_redirections_enabled', 'yes');
158
+ update_post_meta($post->ID, '_seopress_redirections_type', '301');
159
+ update_post_meta($post->ID, '_seopress_redirections_value', get_post_meta($post->ID, '_wds_redirect', true));
160
+ }
161
+ if ('' != get_post_meta($post->ID, '_wds_focus-keywords', true)) { //Import Focus Keywords
162
+ update_post_meta($post->ID, '_seopress_analysis_target_kw', get_post_meta($post->ID, '_wds_focus-keywords', true));
163
+ }
164
+ }
165
+ }
166
+ $offset += $increment;
167
+ }
168
+ $data = [];
169
+ $data['offset'] = $offset;
170
+ wp_send_json_success($data);
171
+ exit();
172
+ }
173
+ }
174
+ add_action('wp_ajax_seopress_smart_crawl_migration', 'seopress_smart_crawl_migration');
inc/admin/ajax-migrate/squirrly.php ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ defined('ABSPATH') or exit('Please don&rsquo;t call the plugin directly. Thanks :)');
4
+
5
+ ///////////////////////////////////////////////////////////////////////////////////////////////////
6
+ //Squirrly migration
7
+ ///////////////////////////////////////////////////////////////////////////////////////////////////
8
+ function seopress_squirrly_migration() {
9
+ check_ajax_referer('seopress_squirrly_migrate_nonce', $_POST['_ajax_nonce'], true);
10
+
11
+ if (current_user_can(seopress_capability('manage_options', 'migration')) && is_admin()) {
12
+ if (isset($_POST['offset']) && isset($_POST['offset'])) {
13
+ $offset = absint($_POST['offset']);
14
+ }
15
+
16
+ global $wpdb;
17
+ $table_name = $wpdb->prefix . 'qss';
18
+ $blog_id = get_current_blog_id();
19
+
20
+ $count_query = $wpdb->get_results("SELECT * FROM $table_name WHERE blog_id = $blog_id", ARRAY_A);
21
+
22
+ if ( ! empty($count_query)) {
23
+ foreach ($count_query as $value) {
24
+ $post_id = url_to_postid($value['URL']);
25
+
26
+ if (0 != $post_id && ! empty($value['seo'])) {
27
+ $seo = maybe_unserialize($value['seo']);
28
+
29
+ if ('' != $seo['title']) { //Import title tag
30
+ update_post_meta($post_id, '_seopress_titles_title', $seo['title']);
31
+ }
32
+ if ('' != $seo['description']) { //Import description tag
33
+ update_post_meta($post_id, '_seopress_titles_desc', $seo['description']);
34
+ }
35
+ if ('' != $seo['og_title']) { //Import Facebook Title
36
+ update_post_meta($post_id, '_seopress_social_fb_title', $seo['og_title']);
37
+ }
38
+ if ('' != $seo['og_description']) { //Import Facebook Desc
39
+ update_post_meta($post_id, '_seopress_social_fb_desc', $seo['og_description']);
40
+ }
41
+ if ('' != $seo['og_media']) { //Import Facebook Image
42
+ update_post_meta($post_id, '_seopress_social_fb_img', $seo['og_media']);
43
+ }
44
+ if ('' != $seo['tw_title']) { //Import Twitter Title
45
+ update_post_meta($post_id, '_seopress_social_twitter_title', $seo['tw_title']);
46
+ }
47
+ if ('' != $seo['tw_description']) { //Import Twitter Desc
48
+ update_post_meta($post_id, '_seopress_social_twitter_desc', $seo['tw_description']);
49
+ }
50
+ if ('' != $seo['tw_media']) { //Import Twitter Image
51
+ update_post_meta($post_id, '_seopress_social_twitter_img', $seo['tw_media']);
52
+ }
53
+ if (1 === $seo['noindex']) { //Import noindex
54
+ update_post_meta($post_id, '_seopress_robots_index', 'yes');
55
+ }
56
+ if (1 === $seo['nofollow']) { //Import nofollow
57
+ update_post_meta($post_id, '_seopress_robots_follow', 'yes');
58
+ }
59
+ if ('' != $seo['canonical']) { //Import canonical
60
+ update_post_meta($post_id, '_seopress_robots_canonical', $seo['canonical']);
61
+ }
62
+ }
63
+ }
64
+ $offset = 'done';
65
+ }
66
+ $data = [];
67
+ $data['offset'] = $offset;
68
+ wp_send_json_success($data);
69
+ exit();
70
+ }
71
+ }
72
+ add_action('wp_ajax_seopress_squirrly_migration', 'seopress_squirrly_migration');
inc/admin/ajax-migrate/wp-meta-seo.php ADDED
@@ -0,0 +1,92 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ defined('ABSPATH') or exit('Please don&rsquo;t call the plugin directly. Thanks :)');
4
+
5
+ ///////////////////////////////////////////////////////////////////////////////////////////////////
6
+ /* WP Meta SEO migration
7
+ * @since 3.8.2
8
+ * @author Benjamin Denis
9
+ */
10
+ ///////////////////////////////////////////////////////////////////////////////////////////////////
11
+ function seopress_wp_meta_seo_migration() {
12
+ check_ajax_referer('seopress_meta_seo_migrate_nonce', $_POST['_ajax_nonce'], true);
13
+
14
+ if (current_user_can(seopress_capability('manage_options', 'migration')) && is_admin()) {
15
+ if (isset($_POST['offset']) && isset($_POST['offset'])) {
16
+ $offset = absint($_POST['offset']);
17
+ }
18
+
19
+ global $wpdb;
20
+ $total_count_posts = (int) $wpdb->get_var("SELECT count(*) FROM {$wpdb->posts}");
21
+
22
+ $increment = 200;
23
+ global $post;
24
+
25
+ if ($offset > $total_count_posts) {
26
+ wp_reset_query();
27
+
28
+ $args = [
29
+ 'hide_empty' => false,
30
+ 'fields' => 'ids',
31
+ ];
32
+ $wp_meta_seo_query_terms = get_terms($args);
33
+
34
+ if ($wp_meta_seo_query_terms) {
35
+ foreach ($wp_meta_seo_query_terms as $term_id) {
36
+ if ('' != get_term_meta($term_id, 'wpms_category_metatitle', true)) { //Import title tag
37
+ update_term_meta($term_id, '_seopress_titles_title', get_term_meta($term_id, 'wpms_category_metatitle', true));
38
+ }
39
+ if ('' != get_term_meta($term_id, 'wpms_category_metadesc', true)) { //Import title desc
40
+ update_term_meta($term_id, '_seopress_titles_desc', get_term_meta($term_id, 'wpms_category_metadesc', true));
41
+ }
42
+ }
43
+ }
44
+ $offset = 'done';
45
+ wp_reset_query();
46
+ } else {
47
+ $args = [
48
+ 'posts_per_page' => $increment,
49
+ 'post_type' => 'any',
50
+ 'post_status' => 'any',
51
+ 'offset' => $offset,
52
+ ];
53
+
54
+ $wp_meta_seo_query = get_posts($args);
55
+
56
+ if ($wp_meta_seo_query) {
57
+ foreach ($wp_meta_seo_query as $post) {
58
+ if ('' != get_post_meta($post->ID, '_metaseo_metatitle', true)) { //Import title tag
59
+ update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, '_metaseo_metatitle', true));
60
+ }
61
+ if ('' != get_post_meta($post->ID, '_metaseo_metadesc', true)) { //Import meta desc
62
+ update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, '_metaseo_metadesc', true));
63
+ }
64
+ if ('' != get_post_meta($post->ID, '_metaseo_metaopengraph-title', true)) { //Import Facebook Title
65
+ update_post_meta($post->ID, '_seopress_social_fb_title', get_post_meta($post->ID, '_metaseo_metaopengraph-title', true));
66
+ }
67
+ if ('' != get_post_meta($post->ID, '_metaseo_metaopengraph-desc', true)) { //Import Facebook Desc
68
+ update_post_meta($post->ID, '_seopress_social_fb_desc', get_post_meta($post->ID, '_metaseo_metaopengraph-desc', true));
69
+ }
70
+ if ('' != get_post_meta($post->ID, '_metaseo_metaopengraph-image', true)) { //Import Facebook Image
71
+ update_post_meta($post->ID, '_seopress_social_fb_img', get_post_meta($post->ID, '_metaseo_metaopengraph-image', true));
72
+ }
73
+ if ('' != get_post_meta($post->ID, '_metaseo_metatwitter-title', true)) { //Import Twitter Title
74
+ update_post_meta($post->ID, '_seopress_social_twitter_title', get_post_meta($post->ID, '_metaseo_metatwitter-title', true));
75
+ }
76
+ if ('' != get_post_meta($post->ID, '_metaseo_metatwitter-desc', true)) { //Import Twitter Desc
77
+ update_post_meta($post->ID, '_seopress_social_twitter_desc', get_post_meta($post->ID, '_metaseo_metatwitter-desc', true));
78
+ }
79
+ if ('' != get_post_meta($post->ID, '_metaseo_metatwitter-image', true)) { //Import Twitter Image
80
+ update_post_meta($post->ID, '_seopress_social_twitter_img', get_post_meta($post->ID, '_metaseo_metatwitter-image', true));
81
+ }
82
+ }
83
+ }
84
+ $offset += $increment;
85
+ }
86
+ $data = [];
87
+ $data['offset'] = $offset;
88
+ wp_send_json_success($data);
89
+ exit();
90
+ }
91
+ }
92
+ add_action('wp_ajax_seopress_wp_meta_seo_migration', 'seopress_wp_meta_seo_migration');
inc/admin/ajax-migrate/wpseo.php ADDED
@@ -0,0 +1,128 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ defined('ABSPATH') or exit('Please don&rsquo;t call the plugin directly. Thanks :)');
4
+
5
+ ///////////////////////////////////////////////////////////////////////////////////////////////////
6
+ /* wpSEO migration
7
+ * @since 4.0
8
+ * @author Benjamin Denis
9
+ */
10
+ ///////////////////////////////////////////////////////////////////////////////////////////////////
11
+ function seopress_wpseo_migration() {
12
+ check_ajax_referer('seopress_wpseo_migrate_nonce', $_POST['_ajax_nonce'], true);
13
+
14
+ if (current_user_can(seopress_capability('manage_options', 'migration')) && is_admin()) {
15
+ if (isset($_POST['offset']) && isset($_POST['offset'])) {
16
+ $offset = absint($_POST['offset']);
17
+ }
18
+
19
+ global $wpdb;
20
+
21
+ $total_count_posts = (int) $wpdb->get_var("SELECT count(*) FROM {$wpdb->posts}");
22
+
23
+ $increment = 200;
24
+ global $post;
25
+
26
+ if ($offset > $total_count_posts) {
27
+ wp_reset_query();
28
+
29
+ $args = [
30
+ 'hide_empty' => false,
31
+ 'fields' => 'ids',
32
+ ];
33
+ $wpseo_query_terms = get_terms($args);
34
+
35
+ if ($wpseo_query_terms) {
36
+ foreach ($wpseo_query_terms as $term_id) {
37
+ if ('' != get_option('wpseo_category_' . $term_id . '_title')) { //Import title tag
38
+ update_term_meta($term_id, '_seopress_titles_title', get_option('wpseo_category_' . $term_id . '_title'));
39
+ }
40
+ if ('' != get_option('wpseo_category_' . $term_id)) { //Import meta desc
41
+ update_term_meta($term_id, '_seopress_titles_desc', get_option('wpseo_category_' . $term_id));
42
+ }
43
+ if ('' != get_option('wpseo_category_' . $term_id . '_og_title')) { //Import Facebook Title
44
+ update_term_meta($term_id, '_seopress_social_fb_title', get_option('wpseo_category_' . $term_id . '_og_title'));
45
+ update_term_meta($term_id, '_seopress_social_twitter_title', get_option('wpseo_category_' . $term_id . '_og_title'));
46
+ }
47
+ if ('' != get_option('wpseo_category_' . $term_id . '_og_desc')) { //Import Facebook Desc
48
+ update_term_meta($term_id, '_seopress_social_fb_desc', get_option('wpseo_category_' . $term_id . '_og_desc'));
49
+ update_term_meta($term_id, '_seopress_social_twitter_desc', get_option('wpseo_category_' . $term_id . '_og_desc'));
50
+ }
51
+ if ('' != get_option('wpseo_category_' . $term_id . '_og_image')) { //Import Facebook Image
52
+ update_term_meta($term_id, '_seopress_social_fb_img', get_option('wpseo_category_' . $term_id . '_og_image'));
53
+ update_term_meta($term_id, '_seopress_social_twitter_img', get_option('wpseo_category_' . $term_id . '_og_image'));
54
+ }
55
+ if ('' != get_option('wpseo_category_' . $term_id . '_canonical')) { //Import Canonical URL
56
+ update_term_meta($term_id, '_seopress_robots_canonical', get_option('wpseo_category_' . $term_id . '_canonical'));
57
+ }
58
+ if ('' != get_option('wpseo_category_' . $term_id . '_redirect')) { //Import Redirect URL
59
+ update_term_meta($term_id, '_seopress_redirections_value', get_option('wpseo_category_' . $term_id . '_redirect'));
60
+ update_term_meta($term_id, '_seopress_redirections_enabled', 'yes');
61
+ }
62
+ if ('4' == get_option('wpseo_category_' . $term_id . '_robots') || '5' == get_option('wpseo_category_' . $term_id . '_robots') || '3' == get_option('wpseo_category_' . $term_id . '_robots')) { //Import Robots NoIndex
63
+ update_term_meta($term_id, '_seopress_robots_index', 'yes');
64
+ }
65
+ if ('2' == get_option('wpseo_category_' . $term_id . '_robots')) { //Import Robots NoFollow
66
+ update_term_meta($term_id, '_seopress_robots_follow', 'yes');
67
+ }
68
+ }
69
+ }
70
+ $offset = 'done';
71
+ wp_reset_query();
72
+ } else {
73
+ $args = [
74
+ 'posts_per_page' => $increment,
75
+ 'post_type' => 'any',
76
+ 'post_status' => 'any',
77
+ 'offset' => $offset,
78
+ ];
79
+
80
+ $wpseo_query = get_posts($args);
81
+
82
+ if ($wpseo_query) {
83
+ foreach ($wpseo_query as $post) {
84
+ if ('' != get_post_meta($post->ID, '_wpseo_edit_title', true)) { //Import title tag
85
+ update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, '_wpseo_edit_title', true));
86
+ }
87
+ if ('' != get_post_meta($post->ID, '_wpseo_edit_description', true)) { //Import meta desc
88
+ update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, '_wpseo_edit_description', true));
89
+ }
90
+ if ('' != get_post_meta($post->ID, '_wpseo_edit_og_title', true)) { //Import Facebook Title
91
+ update_post_meta($post->ID, '_seopress_social_fb_title', get_post_meta($post->ID, '_wpseo_edit_og_title', true));
92
+ update_post_meta($post->ID, '_seopress_social_twitter_title', get_post_meta($post->ID, '_wpseo_edit_og_title', true));
93
+ }
94
+ if ('' != get_post_meta($post->ID, '_wpseo_edit_og_description', true)) { //Import Facebook Desc
95
+ update_post_meta($post->ID, '_seopress_social_fb_desc', get_post_meta($post->ID, '_wpseo_edit_og_description', true));
96
+ update_post_meta($post->ID, '_seopress_social_twitter_desc', get_post_meta($post->ID, '_wpseo_edit_og_description', true));
97
+ }
98
+ if ('' != get_post_meta($post->ID, '_wpseo_edit_og_image', true)) { //Import Facebook Image
99
+ update_post_meta($post->ID, '_seopress_social_fb_img', get_post_meta($post->ID, '_wpseo_edit_og_image', true));
100
+ update_post_meta($post->ID, '_seopress_social_twitter_img', get_post_meta($post->ID, '_wpseo_edit_og_image', true));
101
+ }
102
+ if ('' != get_post_meta($post->ID, '_wpseo_edit_keyword_0', true)) { //Import Target Keyword
103
+ update_post_meta($post->ID, '_seopress_analysis_target_kw', get_post_meta($post->ID, '_wpseo_edit_keyword_0', true));
104
+ }
105
+ if ('' != get_post_meta($post->ID, '_wpseo_edit_canonical', true)) { //Import Canonical URL
106
+ update_post_meta($post->ID, '_seopress_robots_canonical', get_post_meta($post->ID, '_wpseo_edit_canonical', true));
107
+ }
108
+ if ('' != get_post_meta($post->ID, '_wpseo_edit_redirect', true)) { //Import Redirect URL
109
+ update_post_meta($post->ID, '_seopress_redirections_value', get_post_meta($post->ID, '_wpseo_edit_redirect', true));
110
+ update_post_meta($post->ID, '_seopress_redirections_enabled', 'yes'); //Enable the redirect
111
+ }
112
+ if ('4' == get_post_meta($post->ID, '_wpseo_edit_robots', true) || '5' == get_post_meta($post->ID, '_wpseo_edit_robots', true) || '3' == get_post_meta($post->ID, '_wpseo_edit_robots', true)) { //Import Robots NoIndex
113
+ update_post_meta($post->ID, '_seopress_robots_index', 'yes');
114
+ }
115
+ if ('2' == get_post_meta($post->ID, '_wpseo_edit_robots', true)) { //Import Robots NoFollow
116
+ update_post_meta($post->ID, '_seopress_robots_follow', 'yes');
117
+ }
118
+ }
119
+ }
120
+ $offset += $increment;
121
+ }
122
+ $data = [];
123
+ $data['offset'] = $offset;
124
+ wp_send_json_success($data);
125
+ exit();
126
+ }
127
+ }
128
+ add_action('wp_ajax_seopress_wpseo_migration', 'seopress_wpseo_migration');
inc/admin/ajax-migrate/yoast.php ADDED
@@ -0,0 +1,169 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ defined('ABSPATH') or exit('Please don&rsquo;t call the plugin directly. Thanks :)');
4
+
5
+ ///////////////////////////////////////////////////////////////////////////////////////////////////
6
+ //Yoast migration
7
+ ///////////////////////////////////////////////////////////////////////////////////////////////////
8
+ function seopress_yoast_migration() {
9
+ check_ajax_referer('seopress_yoast_migrate_nonce', $_POST['_ajax_nonce'], true);
10
+
11
+ if (current_user_can(seopress_capability('manage_options', 'migration')) && is_admin()) {
12
+ if (isset($_POST['offset']) && isset($_POST['offset'])) {
13
+ $offset = absint($_POST['offset']);
14
+ }
15
+
16
+ global $wpdb;
17
+
18
+ $total_count_posts = (int) $wpdb->get_var("SELECT count(*) FROM {$wpdb->posts}");
19
+
20
+ $increment = 200;
21
+ global $post;
22
+
23
+ if ($offset > $total_count_posts) {
24
+ wp_reset_query();
25
+
26
+ $yoast_query_terms = get_option('wpseo_taxonomy_meta');
27
+
28
+ if ($yoast_query_terms) {
29
+ foreach ($yoast_query_terms as $taxonomies => $taxonomie) {
30
+ foreach ($taxonomie as $term_id => $term_value) {
31
+ if ('' != $term_value['wpseo_title']) { //Import title tag
32
+ update_term_meta($term_id, '_seopress_titles_title', $term_value['wpseo_title']);
33
+ }
34
+ if ('' != $term_value['wpseo_desc']) { //Import meta desc
35
+ update_term_meta($term_id, '_seopress_titles_desc', $term_value['wpseo_desc']);
36
+ }
37
+ if ('' != $term_value['wpseo_opengraph-title']) { //Import Facebook Title
38
+ update_term_meta($term_id, '_seopress_social_fb_title', $term_value['wpseo_opengraph-title']);
39
+ }
40
+ if ('' != $term_value['wpseo_opengraph-description']) { //Import Facebook Desc
41
+ update_term_meta($term_id, '_seopress_social_fb_desc', $term_value['wpseo_opengraph-description']);
42
+ }
43
+ if ('' != $term_value['wpseo_opengraph-image']) { //Import Facebook Image
44
+ update_term_meta($term_id, '_seopress_social_fb_img', $term_value['wpseo_opengraph-image']);
45
+ }
46
+ if ('' != $term_value['wpseo_twitter-title']) { //Import Twitter Title
47
+ update_term_meta($term_id, '_seopress_social_twitter_title', $term_value['wpseo_twitter-title']);
48
+ }
49
+ if ('' != $term_value['wpseo_twitter-description']) { //Import Twitter Desc
50
+ update_term_meta($term_id, '_seopress_social_twitter_desc', $term_value['wpseo_twitter-description']);
51
+ }
52
+ if ('' != $term_value['wpseo_twitter-image']) { //Import Twitter Image
53
+ update_term_meta($term_id, '_seopress_social_twitter_img', $term_value['wpseo_twitter-image']);
54
+ }
55
+ if ('noindex' == $term_value['wpseo_noindex']) { //Import Robots NoIndex
56
+ update_term_meta($term_id, '_seopress_robots_index', 'yes');
57
+ }
58
+ if ('' != $term_value['wpseo_canonical']) { //Import Canonical URL
59
+ update_term_meta($term_id, '_seopress_robots_canonical', $term_value['wpseo_canonical']);
60
+ }
61
+ }
62
+ }
63
+ }
64
+ $offset = 'done';
65
+ wp_reset_query();
66
+ } else {
67
+ $args = [
68
+ 'posts_per_page' => $increment,
69
+ 'post_type' => 'any',
70
+ 'post_status' => 'any',
71
+ 'offset' => $offset,
72
+ ];
73
+
74
+ $yoast_query = get_posts($args);
75
+
76
+ if ($yoast_query) {
77
+ foreach ($yoast_query as $post) {
78
+ if ('' != get_post_meta($post->ID, '_yoast_wpseo_title', true)) { //Import title tag
79
+ update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, '_yoast_wpseo_title', true));
80
+ }
81
+ if ('' != get_post_meta($post->ID, '_yoast_wpseo_metadesc', true)) { //Import meta desc
82
+ update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, '_yoast_wpseo_metadesc', true));
83
+ }
84
+ if ('' != get_post_meta($post->ID, '_yoast_wpseo_opengraph-title', true)) { //Import Facebook Title
85
+ update_post_meta($post->ID, '_seopress_social_fb_title', get_post_meta($post->ID, '_yoast_wpseo_opengraph-title', true));
86
+ }
87
+ if ('' != get_post_meta($post->ID, '_yoast_wpseo_opengraph-description', true)) { //Import Facebook Desc
88
+ update_post_meta($post->ID, '_seopress_social_fb_desc', get_post_meta($post->ID, '_yoast_wpseo_opengraph-description', true));
89
+ }
90
+ if ('' != get_post_meta($post->ID, '_yoast_wpseo_opengraph-image', true)) { //Import Facebook Image
91
+ update_post_meta($post->ID, '_seopress_social_fb_img', get_post_meta($post->ID, '_yoast_wpseo_opengraph-image', true));
92
+ }
93
+ if ('' != get_post_meta($post->ID, '_yoast_wpseo_twitter-title', true)) { //Import Twitter Title
94
+ update_post_meta($post->ID, '_seopress_social_twitter_title', get_post_meta($post->ID, '_yoast_wpseo_twitter-title', true));
95
+ }
96
+ if ('' != get_post_meta($post->ID, '_yoast_wpseo_twitter-description', true)) { //Import Twitter Desc
97
+ update_post_meta($post->ID, '_seopress_social_twitter_desc', get_post_meta($post->ID, '_yoast_wpseo_twitter-description', true));
98
+ }
99
+ if ('' != get_post_meta($post->ID, '_yoast_wpseo_twitter-image', true)) { //Import Twitter Image
100
+ update_post_meta($post->ID, '_seopress_social_twitter_img', get_post_meta($post->ID, '_yoast_wpseo_twitter-image', true));
101
+ }
102
+ if ('1' == get_post_meta($post->ID, '_yoast_wpseo_meta-robots-noindex', true)) { //Import Robots NoIndex
103
+ update_post_meta($post->ID, '_seopress_robots_index', 'yes');
104
+ }
105
+ if ('1' == get_post_meta($post->ID, '_yoast_wpseo_meta-robots-nofollow', true)) { //Import Robots NoFollow
106
+ update_post_meta($post->ID, '_seopress_robots_follow', 'yes');
107
+ }
108
+ if ('' != get_post_meta($post->ID, '_yoast_wpseo_meta-robots-adv', true)) { //Import Robots NoOdp, NoImageIndex, NoArchive, NoSnippet
109
+ $yoast_wpseo_meta_robots_adv = get_post_meta($post->ID, '_yoast_wpseo_meta-robots-adv', true);
110
+
111
+ if (false !== strpos($yoast_wpseo_meta_robots_adv, 'noodp')) {
112
+ update_post_meta($post->ID, '_seopress_robots_odp', 'yes');
113
+ }
114
+ if (false !== strpos($yoast_wpseo_meta_robots_adv, 'noimageindex')) {
115
+ update_post_meta($post->ID, '_seopress_robots_imageindex', 'yes');
116
+ }
117
+ if (false !== strpos($yoast_wpseo_meta_robots_adv, 'noarchive')) {
118
+ update_post_meta($post->ID, '_seopress_robots_archive', 'yes');
119
+ }
120
+ if (false !== strpos($yoast_wpseo_meta_robots_adv, 'nosnippet')) {
121
+ update_post_meta($post->ID, '_seopress_robots_snippet', 'yes');
122
+ }
123
+ }
124
+ if ('' != get_post_meta($post->ID, '_yoast_wpseo_canonical', true)) { //Import Canonical URL
125
+ update_post_meta($post->ID, '_seopress_robots_canonical', get_post_meta($post->ID, '_yoast_wpseo_canonical', true));
126
+ }
127
+ if ('' != get_post_meta($post->ID, '_yoast_wpseo_focuskw', true) || '' != get_post_meta($post->ID, '_yoast_wpseo_focuskeywords', true)) { //Import Focus Keywords
128
+ $y_fkws_clean = []; //reset array
129
+
130
+ $y_fkws = get_post_meta($post->ID, '_yoast_wpseo_focuskeywords', false);
131
+
132
+ foreach ($y_fkws as $value) {
133
+ foreach (json_decode($value) as $key => $value) {
134
+ $y_fkws_clean[] .= $value->keyword;
135
+ }
136
+ }
137
+
138
+ $y_fkws_clean[] .= get_post_meta($post->ID, '_yoast_wpseo_focuskw', true);
139
+
140
+ update_post_meta($post->ID, '_seopress_analysis_target_kw', implode(',', $y_fkws_clean));
141
+ }
142
+
143
+ //Primary category
144
+ if (class_exists('WPSEO_Primary_Term')) {
145
+ if ('product' == get_post_type($post->ID)) {
146
+ $tax = 'product_cat';
147
+ } else {
148
+ $tax = 'category';
149
+ }
150
+
151
+ $primary_term = new WPSEO_Primary_Term($tax, $post->ID);
152
+
153
+ $primary_term = $primary_term->get_primary_term();
154
+
155
+ if ('' != $primary_term && is_int($primary_term)) {
156
+ update_post_meta($post->ID, '_seopress_robots_primary_cat', $primary_term);
157
+ }
158
+ }
159
+ }
160
+ }
161
+ $offset += $increment;
162
+ }
163
+ $data = [];
164
+ $data['offset'] = $offset;
165
+ wp_send_json_success($data);
166
+ exit();
167
+ }
168
+ }
169
+ add_action('wp_ajax_seopress_yoast_migration', 'seopress_yoast_migration');
inc/admin/ajax.php CHANGED
@@ -100,6 +100,10 @@ function seopress_do_real_preview() {
100
  $post_url = add_query_arg('no_admin_bar', 1, $post_url);
101
 
102
  $response = wp_remote_get($post_url, $args);
 
 
 
 
103
  } else {
104
  $response = wp_remote_get(get_preview_post_link((int) $seopress_get_the_id, ['no_admin_bar' => 1]), $args);
105
  }
@@ -128,8 +132,8 @@ function seopress_do_real_preview() {
128
  //Get post content (used for Words counter)
129
  $seopress_get_the_content = apply_filters('the_content', get_post_field('post_content', $seopress_get_the_id));
130
 
131
- //Themify / Cornerstone compatibility
132
- if (defined('THEMIFY_DIR') || is_plugin_active('cornerstone/cornerstone.php')) {
133
  $seopress_get_the_content = get_post_field('post_content', $seopress_get_the_id);
134
  }
135
 
@@ -139,6 +143,19 @@ function seopress_do_real_preview() {
139
  $seopress_get_the_content = $seopress_get_the_content . get_post_meta($seopress_get_the_id, 'mfn-page-items-seo', true);
140
  }
141
 
 
 
 
 
 
 
 
 
 
 
 
 
 
142
  //Add WC product excerpt
143
  if ('product' == $seopress_get_post_type) {
144
  $seopress_get_the_content = $seopress_get_the_content . get_the_excerpt($seopress_get_the_id);
@@ -146,6 +163,17 @@ function seopress_do_real_preview() {
146
 
147
  $seopress_get_the_content = apply_filters('seopress_content_analysis_content', $seopress_get_the_content, $seopress_get_the_id);
148
 
 
 
 
 
 
 
 
 
 
 
 
149
  //Get Target Keywords
150
  if (isset($_GET['seopress_analysis_target_kw']) && ! empty($_GET['seopress_analysis_target_kw'])) {
151
  $data['target_kws'] = esc_html(strtolower(stripslashes_deep($_GET['seopress_analysis_target_kw'])));
@@ -558,1799 +586,14 @@ function seopress_hide_notices() {
558
  }
559
  add_action('wp_ajax_seopress_hide_notices', 'seopress_hide_notices');
560
 
561
- ///////////////////////////////////////////////////////////////////////////////////////////////////
562
- //Yoast migration
563
- ///////////////////////////////////////////////////////////////////////////////////////////////////
564
- function seopress_yoast_migration() {
565
- check_ajax_referer('seopress_yoast_migrate_nonce', $_POST['_ajax_nonce'], true);
566
-
567
- if (current_user_can(seopress_capability('manage_options', 'migration')) && is_admin()) {
568
- if (isset($_POST['offset']) && isset($_POST['offset'])) {
569
- $offset = absint($_POST['offset']);
570
- }
571
-
572
- global $wpdb;
573
-
574
- $total_count_posts = (int) $wpdb->get_var("SELECT count(*) FROM {$wpdb->posts}");
575
-
576
- $increment = 200;
577
- global $post;
578
-
579
- if ($offset > $total_count_posts) {
580
- wp_reset_query();
581
-
582
- $yoast_query_terms = get_option('wpseo_taxonomy_meta');
583
-
584
- if ($yoast_query_terms) {
585
- foreach ($yoast_query_terms as $taxonomies => $taxonomie) {
586
- foreach ($taxonomie as $term_id => $term_value) {
587
- if ('' != $term_value['wpseo_title']) { //Import title tag
588
- update_term_meta($term_id, '_seopress_titles_title', $term_value['wpseo_title']);
589
- }
590
- if ('' != $term_value['wpseo_desc']) { //Import meta desc
591
- update_term_meta($term_id, '_seopress_titles_desc', $term_value['wpseo_desc']);
592
- }
593
- if ('' != $term_value['wpseo_opengraph-title']) { //Import Facebook Title
594
- update_term_meta($term_id, '_seopress_social_fb_title', $term_value['wpseo_opengraph-title']);
595
- }
596
- if ('' != $term_value['wpseo_opengraph-description']) { //Import Facebook Desc
597
- update_term_meta($term_id, '_seopress_social_fb_desc', $term_value['wpseo_opengraph-description']);
598
- }
599
- if ('' != $term_value['wpseo_opengraph-image']) { //Import Facebook Image
600
- update_term_meta($term_id, '_seopress_social_fb_img', $term_value['wpseo_opengraph-image']);
601
- }
602
- if ('' != $term_value['wpseo_twitter-title']) { //Import Twitter Title
603
- update_term_meta($term_id, '_seopress_social_twitter_title', $term_value['wpseo_twitter-title']);
604
- }
605
- if ('' != $term_value['wpseo_twitter-description']) { //Import Twitter Desc
606
- update_term_meta($term_id, '_seopress_social_twitter_desc', $term_value['wpseo_twitter-description']);
607
- }
608
- if ('' != $term_value['wpseo_twitter-image']) { //Import Twitter Image
609
- update_term_meta($term_id, '_seopress_social_twitter_img', $term_value['wpseo_twitter-image']);
610
- }
611
- if ('noindex' == $term_value['wpseo_noindex']) { //Import Robots NoIndex
612
- update_term_meta($term_id, '_seopress_robots_index', 'yes');
613
- }
614
- if ('' != $term_value['wpseo_canonical']) { //Import Canonical URL
615
- update_term_meta($term_id, '_seopress_robots_canonical', $term_value['wpseo_canonical']);
616
- }
617
- }
618
- }
619
- }
620
- $offset = 'done';
621
- wp_reset_query();
622
- } else {
623
- $args = [
624
- 'posts_per_page' => $increment,
625
- 'post_type' => 'any',
626
- 'post_status' => 'any',
627
- 'offset' => $offset,
628
- ];
629
-
630
- $yoast_query = get_posts($args);
631
-
632
- if ($yoast_query) {
633
- foreach ($yoast_query as $post) {
634
- if ('' != get_post_meta($post->ID, '_yoast_wpseo_title', true)) { //Import title tag
635
- update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, '_yoast_wpseo_title', true));
636
- }
637
- if ('' != get_post_meta($post->ID, '_yoast_wpseo_metadesc', true)) { //Import meta desc
638
- update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, '_yoast_wpseo_metadesc', true));
639
- }
640
- if ('' != get_post_meta($post->ID, '_yoast_wpseo_opengraph-title', true)) { //Import Facebook Title
641
- update_post_meta($post->ID, '_seopress_social_fb_title', get_post_meta($post->ID, '_yoast_wpseo_opengraph-title', true));
642
- }
643
- if ('' != get_post_meta($post->ID, '_yoast_wpseo_opengraph-description', true)) { //Import Facebook Desc
644
- update_post_meta($post->ID, '_seopress_social_fb_desc', get_post_meta($post->ID, '_yoast_wpseo_opengraph-description', true));
645
- }
646
- if ('' != get_post_meta($post->ID, '_yoast_wpseo_opengraph-image', true)) { //Import Facebook Image
647
- update_post_meta($post->ID, '_seopress_social_fb_img', get_post_meta($post->ID, '_yoast_wpseo_opengraph-image', true));
648
- }
649
- if ('' != get_post_meta($post->ID, '_yoast_wpseo_twitter-title', true)) { //Import Twitter Title
650
- update_post_meta($post->ID, '_seopress_social_twitter_title', get_post_meta($post->ID, '_yoast_wpseo_twitter-title', true));
651
- }
652
- if ('' != get_post_meta($post->ID, '_yoast_wpseo_twitter-description', true)) { //Import Twitter Desc
653
- update_post_meta($post->ID, '_seopress_social_twitter_desc', get_post_meta($post->ID, '_yoast_wpseo_twitter-description', true));
654
- }
655
- if ('' != get_post_meta($post->ID, '_yoast_wpseo_twitter-image', true)) { //Import Twitter Image
656
- update_post_meta($post->ID, '_seopress_social_twitter_img', get_post_meta($post->ID, '_yoast_wpseo_twitter-image', true));
657
- }
658
- if ('1' == get_post_meta($post->ID, '_yoast_wpseo_meta-robots-noindex', true)) { //Import Robots NoIndex
659
- update_post_meta($post->ID, '_seopress_robots_index', 'yes');
660
- }
661
- if ('1' == get_post_meta($post->ID, '_yoast_wpseo_meta-robots-nofollow', true)) { //Import Robots NoFollow
662
- update_post_meta($post->ID, '_seopress_robots_follow', 'yes');
663
- }
664
- if ('' != get_post_meta($post->ID, '_yoast_wpseo_meta-robots-adv', true)) { //Import Robots NoOdp, NoImageIndex, NoArchive, NoSnippet
665
- $yoast_wpseo_meta_robots_adv = get_post_meta($post->ID, '_yoast_wpseo_meta-robots-adv', true);
666
-
667
- if (false !== strpos($yoast_wpseo_meta_robots_adv, 'noodp')) {
668
- update_post_meta($post->ID, '_seopress_robots_odp', 'yes');
669
- }
670
- if (false !== strpos($yoast_wpseo_meta_robots_adv, 'noimageindex')) {
671
- update_post_meta($post->ID, '_seopress_robots_imageindex', 'yes');
672
- }
673
- if (false !== strpos($yoast_wpseo_meta_robots_adv, 'noarchive')) {
674
- update_post_meta($post->ID, '_seopress_robots_archive', 'yes');
675
- }
676
- if (false !== strpos($yoast_wpseo_meta_robots_adv, 'nosnippet')) {
677
- update_post_meta($post->ID, '_seopress_robots_snippet', 'yes');
678
- }
679
- }
680
- if ('' != get_post_meta($post->ID, '_yoast_wpseo_canonical', true)) { //Import Canonical URL
681
- update_post_meta($post->ID, '_seopress_robots_canonical', get_post_meta($post->ID, '_yoast_wpseo_canonical', true));
682
- }
683
- if ('' != get_post_meta($post->ID, '_yoast_wpseo_focuskw', true) || '' != get_post_meta($post->ID, '_yoast_wpseo_focuskeywords', true)) { //Import Focus Keywords
684
- $y_fkws_clean = []; //reset array
685
-
686
- $y_fkws = get_post_meta($post->ID, '_yoast_wpseo_focuskeywords', false);
687
-
688
- foreach ($y_fkws as $value) {
689
- foreach (json_decode($value) as $key => $value) {
690
- $y_fkws_clean[] .= $value->keyword;
691
- }
692
- }
693
-
694
- $y_fkws_clean[] .= get_post_meta($post->ID, '_yoast_wpseo_focuskw', true);
695
-
696
- update_post_meta($post->ID, '_seopress_analysis_target_kw', implode(',', $y_fkws_clean));
697
- }
698
-
699
- //Primary category
700
- if (class_exists('WPSEO_Primary_Term')) {
701
- if ('product' == get_post_type($post->ID)) {
702
- $tax = 'product_cat';
703
- } else {
704
- $tax = 'category';
705
- }
706
-
707
- $primary_term = new WPSEO_Primary_Term($tax, $post->ID);
708
-
709
- $primary_term = $primary_term->get_primary_term();
710
-
711
- if ('' != $primary_term && is_int($primary_term)) {
712
- update_post_meta($post->ID, '_seopress_robots_primary_cat', $primary_term);
713
- }
714
- }
715
- }
716
- }
717
- $offset += $increment;
718
- }
719
- $data = [];
720
- $data['offset'] = $offset;
721
- wp_send_json_success($data);
722
- exit();
723
- }
724
- }
725
- add_action('wp_ajax_seopress_yoast_migration', 'seopress_yoast_migration');
726
-
727
- ///////////////////////////////////////////////////////////////////////////////////////////////////
728
- //AIO migration
729
- ///////////////////////////////////////////////////////////////////////////////////////////////////
730
- function seopress_aio_migration() {
731
- check_ajax_referer('seopress_aio_migrate_nonce', $_POST['_ajax_nonce'], true);
732
-
733
- if (current_user_can(seopress_capability('manage_options', 'migration')) && is_admin()) {
734
- if (isset($_POST['offset']) && isset($_POST['offset'])) {
735
- $offset = absint($_POST['offset']);
736
- }
737
-
738
- global $wpdb;
739
- $total_count_posts = (int) $wpdb->get_var("SELECT count(*) FROM {$wpdb->posts}");
740
-
741
- $increment = 200;
742
- global $post;
743
-
744
- if ($offset > $total_count_posts) {
745
- $offset = 'done';
746
- wp_reset_query();
747
- } else {
748
- $args = [
749
- 'posts_per_page' => $increment,
750
- 'post_type' => 'any',
751
- 'post_status' => 'any',
752
- 'offset' => $offset,
753
- ];
754
-
755
- $aio_query = get_posts($args);
756
-
757
- if ($aio_query) {
758
- foreach ($aio_query as $post) {
759
- if ('' != get_post_meta($post->ID, '_aioseo_title', true)) { //Import title tag
760
- update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, '_aioseo_title', true));
761
- } elseif ('' != get_post_meta($post->ID, '_aioseop_title', true)) { //Import old title tag
762
- update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, '_aioseop_title', true));
763
- }
764
- if ('' != get_post_meta($post->ID, '_aioseo_description', true)) { //Import meta desc
765
- update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, '_aioseo_description', true));
766
- } elseif ('' != get_post_meta($post->ID, '_aioseop_description', true)) { //Import old meta desc
767
- update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, '_aioseop_description', true));
768
- }
769
-
770
- if ('' != get_post_meta($post->ID, '_aioseo_og_title', true)) { //Import Facebook Title
771
- update_post_meta($post->ID, '_seopress_social_fb_title', get_post_meta($post->ID, '_aioseo_og_title', true));
772
- } elseif ('' != get_post_meta($post->ID, '_aioseop_opengraph_settings', true)) { //Import old Facebook
773
- $_aioseop_opengraph_settings = get_post_meta($post->ID, '_aioseop_opengraph_settings', true);
774
- if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_title'])) {
775
- update_post_meta($post->ID, '_seopress_social_fb_title', $_aioseop_opengraph_settings['aioseop_opengraph_settings_title']);
776
- }
777
- }
778
-
779
- if ('' != get_post_meta($post->ID, '_aioseo_twitter_title', true)) { //Import Twitter Title
780
- update_post_meta($post->ID, '_seopress_social_twitter_title', get_post_meta($post->ID, '_aioseo_twitter_title', true));
781
- } elseif ('' != get_post_meta($post->ID, '_aioseop_opengraph_settings', true)) { //Import old Twitter Title
782
- $_aioseop_opengraph_settings = get_post_meta($post->ID, '_aioseop_opengraph_settings', true);
783
- if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_title'])) {
784
- update_post_meta($post->ID, '_seopress_social_twitter_title', $_aioseop_opengraph_settings['aioseop_opengraph_settings_title']);
785
- }
786
- }
787
-
788
- if ('' != get_post_meta($post->ID, '_aioseo_og_description', true)) { //Import Facebook Desc
789
- update_post_meta($post->ID, '_seopress_social_fb_desc', get_post_meta($post->ID, '_aioseo_og_description', true));
790
- } elseif ('' != get_post_meta($post->ID, '_aioseop_opengraph_settings', true)) { //Import old Facebook Desc
791
- $_aioseop_opengraph_settings = get_post_meta($post->ID, '_aioseop_opengraph_settings', true);
792
- if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_title'])) {
793
- update_post_meta($post->ID, '_seopress_social_fb_desc', $_aioseop_opengraph_settings['aioseop_opengraph_settings_title']);
794
- }
795
- }
796
-
797
- if ('' != get_post_meta($post->ID, '_aioseo_twitter_description', true)) { //Import Twitter Desc
798
- update_post_meta($post->ID, '_seopress_social_twitter_desc', get_post_meta($post->ID, '_aioseo_twitter_description', true));
799
- } elseif ('' != get_post_meta($post->ID, '_aioseop_opengraph_settings', true)) { //Import old Twitter Desc
800
- $_aioseop_opengraph_settings = get_post_meta($post->ID, '_aioseop_opengraph_settings', true);
801
- if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_title'])) {
802
- update_post_meta($post->ID, '_seopress_social_twitter_desc', $_aioseop_opengraph_settings['aioseop_opengraph_settings_title']);
803
- }
804
- }
805
-
806
- $canonical_url = "SELECT p.canonical_url, p.post_id
807
- FROM {$wpdb->prefix}aioseo_posts p
808
- WHERE p.post_id = $post->ID";
809
-
810
- $canonical_url = $wpdb->get_results($canonical_url, ARRAY_A);
811
-
812
- if ( ! empty($canonical_url[0]['canonical_url'])) {//Import Canonical URL
813
- update_post_meta($post->ID, '_seopress_robots_canonical', $canonical_url[0]['canonical_url']);
814
- }
815
-
816
- $og_img_url = "SELECT p.og_image_custom_url, p.post_id
817
- FROM {$wpdb->prefix}aioseo_posts p
818
- WHERE p.og_image_type = 'custom_image' AND p.post_id = $post->ID";
819
-
820
- $og_img_url = $wpdb->get_results($og_img_url, ARRAY_A);
821
-
822
- if ( ! empty($og_img_url[0]['og_image_custom_url'])) {//Import Facebook Image
823
- update_post_meta($post->ID, '_seopress_social_fb_img', $og_img_url[0]['og_image_custom_url']);
824
- } elseif ('' != get_post_meta($post->ID, '_aioseop_opengraph_settings', true)) { //Import old Facebook Image
825
- $_aioseop_opengraph_settings = get_post_meta($post->ID, '_aioseop_opengraph_settings', true);
826
- if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_image'])) {
827
- update_post_meta($post->ID, '_seopress_social_fb_img', $_aioseop_opengraph_settings['aioseop_opengraph_settings_customimg']);
828
- }
829
- }
830
-
831
- $tw_img_url = "SELECT p.twitter_image_custom_url, p.post_id
832
- FROM {$wpdb->prefix}aioseo_posts p
833
- WHERE p.twitter_image_type = 'custom_image' AND p.post_id = $post->ID";
834
-
835
- $tw_img_url = $wpdb->get_results($tw_img_url, ARRAY_A);
836
-
837
- if ( ! empty($tw_img_url[0]['twitter_image_custom_url'])) {//Import Twitter Image
838
- update_post_meta($post->ID, '_seopress_social_twitter_img', $tw_img_url[0]['twitter_image_custom_url']);
839
- } elseif ('' != get_post_meta($post->ID, '_aioseop_opengraph_settings', true)) { //Import old Twitter Image
840
- $_aioseop_opengraph_settings = get_post_meta($post->ID, '_aioseop_opengraph_settings', true);
841
- if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_customimg_twitter'])) {
842
- update_post_meta($post->ID, '_seopress_social_twitter_img', $_aioseop_opengraph_settings['aioseop_opengraph_settings_customimg_twitter']);
843
- }
844
- }
845
-
846
- $robots_noindex = "SELECT p.robots_noindex, p.post_id
847
- FROM {$wpdb->prefix}aioseo_posts p
848
- WHERE p.post_id = $post->ID";
849
-
850
- $robots_noindex = $wpdb->get_results($robots_noindex, ARRAY_A);
851
-
852
- if ( ! empty($robots_noindex[0]['robots_noindex']) && '1' === $robots_noindex[0]['robots_noindex']) {//Import Robots NoIndex
853
- update_post_meta($post->ID, '_seopress_robots_index', 'yes');
854
- } elseif ('on' == get_post_meta($post->ID, '_aioseop_noindex', true)) { //Import old Robots NoIndex
855
- update_post_meta($post->ID, '_seopress_robots_index', 'yes');
856
- }
857
-
858
- $robots_nofollow = "SELECT p.robots_nofollow, p.post_id
859
- FROM {$wpdb->prefix}aioseo_posts p
860
- WHERE p.post_id = $post->ID";
861
-
862
- $robots_nofollow = $wpdb->get_results($robots_nofollow, ARRAY_A);
863
-
864
- if ( ! empty($robots_nofollow[0]['robots_nofollow']) && '1' === $robots_nofollow[0]['robots_nofollow']) {//Import Robots NoFollow
865
- update_post_meta($post->ID, '_seopress_robots_follow', 'yes');
866
- } elseif ('on' == get_post_meta($post->ID, '_aioseop_nofollow', true)) { //Import old Robots NoFollow
867
- update_post_meta($post->ID, '_seopress_robots_follow', 'yes');
868
- }
869
-
870
- $robots_noimageindex = "SELECT p.robots_noimageindex, p.post_id
871
- FROM {$wpdb->prefix}aioseo_posts p
872
- WHERE p.post_id = $post->ID";
873
-
874
- $robots_noimageindex = $wpdb->get_results($robots_noimageindex, ARRAY_A);
875
-
876
- if ( ! empty($robots_noimageindex[0]['robots_noimageindex']) && '1' === $robots_noimageindex[0]['robots_noimageindex']) {//Import Robots NoImageIndex
877
- update_post_meta($post->ID, '_seopress_robots_imageindex', 'yes');
878
- }
879
-
880
- $robots_noodp = "SELECT p.robots_noodp, p.post_id
881
- FROM {$wpdb->prefix}aioseo_posts p
882
- WHERE p.post_id = $post->ID";
883
-
884
- $robots_noodp = $wpdb->get_results($robots_noodp, ARRAY_A);
885
-
886
- if ( ! empty($robots_noodp[0]['robots_noodp']) && '1' === $robots_noodp[0]['robots_noodp']) {//Import Robots NoOdp
887
- update_post_meta($post->ID, '_seopress_robots_odp', 'yes');
888
- }
889
-
890
- $robots_nosnippet = "SELECT p.robots_nosnippet, p.post_id
891
- FROM {$wpdb->prefix}aioseo_posts p
892
- WHERE p.post_id = $post->ID";
893
-
894
- $robots_nosnippet = $wpdb->get_results($robots_nosnippet, ARRAY_A);
895
-
896
- if ( ! empty($robots_nosnippet[0]['robots_nosnippet']) && '1' === $robots_nosnippet[0]['robots_nosnippet']) {//Import Robots NoSnippet
897
- update_post_meta($post->ID, '_seopress_robots_snippet', 'yes');
898
- }
899
-
900
- $robots_noarchive = "SELECT p.robots_noarchive, p.post_id
901
- FROM {$wpdb->prefix}aioseo_posts p
902
- WHERE p.post_id = $post->ID";
903
-
904
- $robots_noarchive = $wpdb->get_results($robots_noarchive, ARRAY_A);
905
-
906
- if ( ! empty($robots_noarchive[0]['robots_noarchive']) && '1' === $robots_noarchive[0]['robots_noarchive']) {//Import Robots NoArchive
907
- update_post_meta($post->ID, '_seopress_robots_archive', 'yes');
908
- }
909
-
910
- $keyphrases = "SELECT p.keyphrases, p.post_id
911
- FROM {$wpdb->prefix}aioseo_posts p
912
- WHERE p.post_id = $post->ID";
913
-
914
- $keyphrases = $wpdb->get_results($keyphrases, ARRAY_A);
915
-
916
- if ( ! empty($keyphrases)) {
917
- $keyphrases = json_decode($keyphrases[0]['keyphrases']);
918
-
919
- if (isset($keyphrases->focus->keyphrase)) {
920
- $keyphrases = $keyphrases->focus->keyphrase;
921
-
922
- if ('' != $keyphrases) { //Import focus kw
923
- update_post_meta($post->ID, '_seopress_analysis_target_kw', $keyphrases);
924
- }
925
- }
926
- }
927
- }
928
- }
929
- $offset += $increment;
930
- }
931
- $data = [];
932
- $data['offset'] = $offset;
933
- wp_send_json_success($data);
934
- exit();
935
- }
936
- }
937
- add_action('wp_ajax_seopress_aio_migration', 'seopress_aio_migration');
938
-
939
- ///////////////////////////////////////////////////////////////////////////////////////////////////
940
- //SEO Framework migration
941
- ///////////////////////////////////////////////////////////////////////////////////////////////////
942
- function seopress_seo_framework_migration() {
943
- check_ajax_referer('seopress_seo_framework_migrate_nonce', $_POST['_ajax_nonce'], true);
944
-
945
- if (current_user_can(seopress_capability('manage_options', 'migration')) && is_admin()) {
946
- if (isset($_POST['offset']) && isset($_POST['offset'])) {
947
- $offset = absint($_POST['offset']);
948
- }
949
-
950
- global $wpdb;
951
- $total_count_posts = (int) $wpdb->get_var("SELECT count(*) FROM {$wpdb->posts}");
952
-
953
- $increment = 200;
954
- global $post;
955
-
956
- if ($offset > $total_count_posts) {
957
- wp_reset_query();
958
-
959
- $args = [
960
- //'number' => $increment,
961
- 'hide_empty' => false,
962
- //'offset' => $offset,
963
- 'fields' => 'ids',
964
- ];
965
- $seo_framework_query_terms = get_terms($args);
966
-
967
- if ($seo_framework_query_terms) {
968
- foreach ($seo_framework_query_terms as $term_id) {
969
- if ('' != get_term_meta($term_id, 'autodescription-term-settings', true)) {
970
- $term_settings = get_term_meta($term_id, 'autodescription-term-settings', true);
971
-
972
- if ( ! empty($term_settings['doctitle'])) { //Import title tag
973
- update_term_meta($term_id, '_seopress_titles_title', $term_settings['doctitle']);
974
- }
975
- if ( ! empty($term_settings['description'])) { //Import meta desc
976
- update_term_meta($term_id, '_seopress_titles_desc', $term_settings['description']);
977
- }
978
- if ( ! empty($term_settings['noindex'])) { //Import Robots NoIndex
979
- update_term_meta($term_id, '_seopress_robots_index', 'yes');
980
- }
981
- if ( ! empty($term_settings['nofollow'])) { //Import Robots NoFollow
982
- update_term_meta($term_id, '_seopress_robots_follow', 'yes');
983
- }
984
- if ( ! empty($term_settings['noarchive'])) { //Import Robots NoArchive
985
- update_term_meta($term_id, '_seopress_robots_archive', 'yes');
986
- }
987
- }
988
- }
989
- }
990
- $offset = 'done';
991
- wp_reset_query();
992
- } else {
993
- $args = [
994
- 'posts_per_page' => $increment,
995
- 'post_type' => 'any',
996
- 'post_status' => 'any',
997
- 'offset' => $offset,
998
- ];
999
-
1000
- $seo_framework_query = get_posts($args);
1001
-
1002
- if ($seo_framework_query) {
1003
- foreach ($seo_framework_query as $post) {
1004
- if ('' != get_post_meta($post->ID, '_genesis_title', true)) { //Import title tag
1005
- update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, '_genesis_title', true));
1006
- }
1007
- if ('' != get_post_meta($post->ID, '_genesis_description', true)) { //Import meta desc
1008
- update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, '_genesis_description', true));
1009
- }
1010
- if ('' != get_post_meta($post->ID, '_open_graph_title', true)) { //Import Facebook Title
1011
- update_post_meta($post->ID, '_seopress_social_fb_title', get_post_meta($post->ID, '_open_graph_title', true));
1012
- }
1013
- if ('' != get_post_meta($post->ID, '_open_graph_description', true)) { //Import Facebook Desc
1014
- update_post_meta($post->ID, '_seopress_social_fb_desc', get_post_meta($post->ID, '_open_graph_description', true));
1015
- }
1016
- if ('' != get_post_meta($post->ID, '_social_image_url', true)) { //Import Facebook Image
1017
- update_post_meta($post->ID, '_seopress_social_fb_img', get_post_meta($post->ID, '_social_image_url', true));
1018
- }
1019
- if ('' != get_post_meta($post->ID, '_twitter_title', true)) { //Import Twitter Title
1020
- update_post_meta($post->ID, '_seopress_social_twitter_title', get_post_meta($post->ID, '_twitter_title', true));
1021
- }
1022
- if ('' != get_post_meta($post->ID, '_twitter_description', true)) { //Import Twitter Desc
1023
- update_post_meta($post->ID, '_seopress_social_twitter_desc', get_post_meta($post->ID, '_twitter_description', true));
1024
- }
1025
- if ('' != get_post_meta($post->ID, '_social_image_url', true)) { //Import Twitter Image
1026
- update_post_meta($post->ID, '_seopress_social_twitter_img', get_post_meta($post->ID, '_social_image_url', true));
1027
- }
1028
- if ('1' == get_post_meta($post->ID, '_genesis_noindex', true)) { //Import Robots NoIndex
1029
- update_post_meta($post->ID, '_seopress_robots_index', 'yes');
1030
- }
1031
- if ('1' == get_post_meta($post->ID, '_genesis_nofollow', true)) { //Import Robots NoFollow
1032
- update_post_meta($post->ID, '_seopress_robots_follow', 'yes');
1033
- }
1034
- if ('1' == get_post_meta($post->ID, '_genesis_noarchive', true)) { //Import Robots NoArchive
1035
- update_post_meta($post->ID, '_seopress_robots_archive', 'yes');
1036
- }
1037
- if ('' != get_post_meta($post->ID, '_genesis_canonical_uri', true)) { //Import Canonical URL
1038
- update_post_meta($post->ID, '_seopress_robots_canonical', get_post_meta($post->ID, '_genesis_canonical_uri', true));
1039
- }
1040
- if ('' != get_post_meta($post->ID, 'redirect', true)) { //Import Redirect URL
1041
- update_post_meta($post->ID, '_seopress_redirections_enabled', 'yes');
1042
- update_post_meta($post->ID, '_seopress_redirections_type', '301');
1043
- update_post_meta($post->ID, '_seopress_redirections_value', get_post_meta($post->ID, 'redirect', true));
1044
- }
1045
- }
1046
- }
1047
- $offset += $increment;
1048
- }
1049
- $data = [];
1050
- $data['offset'] = $offset;
1051
- wp_send_json_success($data);
1052
- exit();
1053
- }
1054
- }
1055
- add_action('wp_ajax_seopress_seo_framework_migration', 'seopress_seo_framework_migration');
1056
-
1057
- ///////////////////////////////////////////////////////////////////////////////////////////////////
1058
- //Squirrly migration
1059
- ///////////////////////////////////////////////////////////////////////////////////////////////////
1060
- function seopress_squirrly_migration() {
1061
- check_ajax_referer('seopress_squirrly_migrate_nonce', $_POST['_ajax_nonce'], true);
1062
-
1063
- if (current_user_can(seopress_capability('manage_options', 'migration')) && is_admin()) {
1064
- if (isset($_POST['offset']) && isset($_POST['offset'])) {
1065
- $offset = absint($_POST['offset']);
1066
- }
1067
-
1068
- global $wpdb;
1069
- $table_name = $wpdb->prefix . 'qss';
1070
- $blog_id = get_current_blog_id();
1071
-
1072
- $count_query = $wpdb->get_results("SELECT * FROM $table_name WHERE blog_id = $blog_id", ARRAY_A);
1073
-
1074
- if ( ! empty($count_query)) {
1075
- foreach ($count_query as $value) {
1076
- $post_id = url_to_postid($value['URL']);
1077
-
1078
- if (0 != $post_id && ! empty($value['seo'])) {
1079
- $seo = maybe_unserialize($value['seo']);
1080
-
1081
- if ('' != $seo['title']) { //Import title tag
1082
- update_post_meta($post_id, '_seopress_titles_title', $seo['title']);
1083
- }
1084
- if ('' != $seo['description']) { //Import description tag
1085
- update_post_meta($post_id, '_seopress_titles_desc', $seo['description']);
1086
- }
1087
- if ('' != $seo['og_title']) { //Import Facebook Title
1088
- update_post_meta($post_id, '_seopress_social_fb_title', $seo['og_title']);
1089
- }
1090
- if ('' != $seo['og_description']) { //Import Facebook Desc
1091
- update_post_meta($post_id, '_seopress_social_fb_desc', $seo['og_description']);
1092
- }
1093
- if ('' != $seo['og_media']) { //Import Facebook Image
1094
- update_post_meta($post_id, '_seopress_social_fb_img', $seo['og_media']);
1095
- }
1096
- if ('' != $seo['tw_title']) { //Import Twitter Title
1097
- update_post_meta($post_id, '_seopress_social_twitter_title', $seo['tw_title']);
1098
- }
1099
- if ('' != $seo['tw_description']) { //Import Twitter Desc
1100
- update_post_meta($post_id, '_seopress_social_twitter_desc', $seo['tw_description']);
1101
- }
1102
- if ('' != $seo['tw_media']) { //Import Twitter Image
1103
- update_post_meta($post_id, '_seopress_social_twitter_img', $seo['tw_media']);
1104
- }
1105
- if (1 === $seo['noindex']) { //Import noindex
1106
- update_post_meta($post_id, '_seopress_robots_index', 'yes');
1107
- }
1108
- if (1 === $seo['nofollow']) { //Import nofollow
1109
- update_post_meta($post_id, '_seopress_robots_follow', 'yes');
1110
- }
1111
- if ('' != $seo['canonical']) { //Import canonical
1112
- update_post_meta($post_id, '_seopress_robots_canonical', $seo['canonical']);
1113
- }
1114
- }
1115
- }
1116
- $offset = 'done';
1117
- }
1118
- $data = [];
1119
- $data['offset'] = $offset;
1120
- wp_send_json_success($data);
1121
- exit();
1122
- }
1123
- }
1124
- add_action('wp_ajax_seopress_squirrly_migration', 'seopress_squirrly_migration');
1125
-
1126
- ///////////////////////////////////////////////////////////////////////////////////////////////////
1127
- /* SEO Ultimate migration
1128
- * @since 3.8.2
1129
- * @author Benjamin Denis
1130
- */
1131
- ///////////////////////////////////////////////////////////////////////////////////////////////////
1132
- function seopress_seo_ultimate_migration() {
1133
- check_ajax_referer('seopress_seo_ultimate_migrate_nonce', $_POST['_ajax_nonce'], true);
1134
-
1135
- if (current_user_can(seopress_capability('manage_options', 'migration')) && is_admin()) {
1136
- if (isset($_POST['offset']) && isset($_POST['offset'])) {
1137
- $offset = absint($_POST['offset']);
1138
- }
1139
-
1140
- global $wpdb;
1141
-
1142
- $total_count_posts = (int) $wpdb->get_var("SELECT count(*) FROM {$wpdb->posts}");
1143
-
1144
- $increment = 200;
1145
- global $post;
1146
-
1147
- if ($offset > $total_count_posts) {
1148
- $offset = 'done';
1149
- wp_reset_query();
1150
- } else {
1151
- $args = [
1152
- 'posts_per_page' => $increment,
1153
- 'post_type' => 'any',
1154
- 'post_status' => 'any',
1155
- 'offset' => $offset,
1156
- ];
1157
-
1158
- $su_query = get_posts($args);
1159
-
1160
- if ($su_query) {
1161
- foreach ($su_query as $post) {
1162
- if ('' != get_post_meta($post->ID, '_su_title', true)) { //Import title tag
1163
- update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, '_su_title', true));
1164
- }
1165
- if ('' != get_post_meta($post->ID, '_su_description', true)) { //Import meta desc
1166
- update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, '_su_description', true));
1167
- }
1168
- if ('' != get_post_meta($post->ID, '_su_og_title', true)) { //Import Facebook Title
1169
- update_post_meta($post->ID, '_seopress_social_fb_title', get_post_meta($post->ID, '_su_og_title', true));
1170
- }
1171
- if ('' != get_post_meta($post->ID, '_su_og_description', true)) { //Import Facebook Desc
1172
- update_post_meta($post->ID, '_seopress_social_fb_desc', get_post_meta($post->ID, '_su_og_description', true));
1173
- }
1174
- if ('' != get_post_meta($post->ID, '_su_og_image', true)) { //Import Facebook Image
1175
- update_post_meta($post->ID, '_seopress_social_fb_img', get_post_meta($post->ID, '_su_og_image', true));
1176
- }
1177
- if ('1' == get_post_meta($post->ID, '_su_meta_robots_noindex', true)) { //Import Robots NoIndex
1178
- update_post_meta($post->ID, '_seopress_robots_index', 'yes');
1179
- }
1180
- if ('1' == get_post_meta($post->ID, '_su_meta_robots_nofollow', true)) { //Import Robots NoFollow
1181
- update_post_meta($post->ID, '_seopress_robots_follow', 'yes');
1182
- }
1183
- }
1184
- }
1185
- $offset += $increment;
1186
- }
1187
- $data = [];
1188
- $data['offset'] = $offset;
1189
- wp_send_json_success($data);
1190
- exit();
1191
- }
1192
- }
1193
- add_action('wp_ajax_seopress_seo_ultimate_migration', 'seopress_seo_ultimate_migration');
1194
-
1195
- ///////////////////////////////////////////////////////////////////////////////////////////////////
1196
- /* WP Meta SEO migration
1197
- * @since 3.8.2
1198
- * @author Benjamin Denis
1199
- */
1200
- ///////////////////////////////////////////////////////////////////////////////////////////////////
1201
- function seopress_wp_meta_seo_migration() {
1202
- check_ajax_referer('seopress_meta_seo_migrate_nonce', $_POST['_ajax_nonce'], true);
1203
-
1204
- if (current_user_can(seopress_capability('manage_options', 'migration')) && is_admin()) {
1205
- if (isset($_POST['offset']) && isset($_POST['offset'])) {
1206
- $offset = absint($_POST['offset']);
1207
- }
1208
-
1209
- global $wpdb;
1210
- $total_count_posts = (int) $wpdb->get_var("SELECT count(*) FROM {$wpdb->posts}");
1211
-
1212
- $increment = 200;
1213
- global $post;
1214
-
1215
- if ($offset > $total_count_posts) {
1216
- wp_reset_query();
1217
-
1218
- $args = [
1219
- 'hide_empty' => false,
1220
- 'fields' => 'ids',
1221
- ];
1222
- $wp_meta_seo_query_terms = get_terms($args);
1223
-
1224
- if ($wp_meta_seo_query_terms) {
1225
- foreach ($wp_meta_seo_query_terms as $term_id) {
1226
- if ('' != get_term_meta($term_id, 'wpms_category_metatitle', true)) { //Import title tag
1227
- update_term_meta($term_id, '_seopress_titles_title', get_term_meta($term_id, 'wpms_category_metatitle', true));
1228
- }
1229
- if ('' != get_term_meta($term_id, 'wpms_category_metadesc', true)) { //Import title desc
1230
- update_term_meta($term_id, '_seopress_titles_desc', get_term_meta($term_id, 'wpms_category_metadesc', true));
1231
- }
1232
- }
1233
- }
1234
- $offset = 'done';
1235
- wp_reset_query();
1236
- } else {
1237
- $args = [
1238
- 'posts_per_page' => $increment,
1239
- 'post_type' => 'any',
1240
- 'post_status' => 'any',
1241
- 'offset' => $offset,
1242
- ];
1243
-
1244
- $wp_meta_seo_query = get_posts($args);
1245
-
1246
- if ($wp_meta_seo_query) {
1247
- foreach ($wp_meta_seo_query as $post) {
1248
- if ('' != get_post_meta($post->ID, '_metaseo_metatitle', true)) { //Import title tag
1249
- update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, '_metaseo_metatitle', true));
1250
- }
1251
- if ('' != get_post_meta($post->ID, '_metaseo_metadesc', true)) { //Import meta desc
1252
- update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, '_metaseo_metadesc', true));
1253
- }
1254
- if ('' != get_post_meta($post->ID, '_metaseo_metaopengraph-title', true)) { //Import Facebook Title
1255
- update_post_meta($post->ID, '_seopress_social_fb_title', get_post_meta($post->ID, '_metaseo_metaopengraph-title', true));
1256
- }
1257
- if ('' != get_post_meta($post->ID, '_metaseo_metaopengraph-desc', true)) { //Import Facebook Desc
1258
- update_post_meta($post->ID, '_seopress_social_fb_desc', get_post_meta($post->ID, '_metaseo_metaopengraph-desc', true));
1259
- }
1260
- if ('' != get_post_meta($post->ID, '_metaseo_metaopengraph-image', true)) { //Import Facebook Image
1261
- update_post_meta($post->ID, '_seopress_social_fb_img', get_post_meta($post->ID, '_metaseo_metaopengraph-image', true));
1262
- }
1263
- if ('' != get_post_meta($post->ID, '_metaseo_metatwitter-title', true)) { //Import Twitter Title
1264
- update_post_meta($post->ID, '_seopress_social_twitter_title', get_post_meta($post->ID, '_metaseo_metatwitter-title', true));
1265
- }
1266
- if ('' != get_post_meta($post->ID, '_metaseo_metatwitter-desc', true)) { //Import Twitter Desc
1267
- update_post_meta($post->ID, '_seopress_social_twitter_desc', get_post_meta($post->ID, '_metaseo_metatwitter-desc', true));
1268
- }
1269
- if ('' != get_post_meta($post->ID, '_metaseo_metatwitter-image', true)) { //Import Twitter Image
1270
- update_post_meta($post->ID, '_seopress_social_twitter_img', get_post_meta($post->ID, '_metaseo_metatwitter-image', true));
1271
- }
1272
- }
1273
- }
1274
- $offset += $increment;
1275
- }
1276
- $data = [];
1277
- $data['offset'] = $offset;
1278
- wp_send_json_success($data);
1279
- exit();
1280
- }
1281
- }
1282
- add_action('wp_ajax_seopress_wp_meta_seo_migration', 'seopress_wp_meta_seo_migration');
1283
-
1284
- ///////////////////////////////////////////////////////////////////////////////////////////////////
1285
- /* Premium SEO Pack migration
1286
- * @since 3.8.7
1287
- * @author Benjamin Denis
1288
- */
1289
- ///////////////////////////////////////////////////////////////////////////////////////////////////
1290
- function seopress_premium_seo_pack_migration() {
1291
- check_ajax_referer('seopress_premium_seo_pack_migrate_nonce', $_POST['_ajax_nonce'], true);
1292
-
1293
- if (current_user_can(seopress_capability('manage_options', 'migration')) && is_admin()) {
1294
- if (isset($_POST['offset']) && isset($_POST['offset'])) {
1295
- $offset = absint($_POST['offset']);
1296
- }
1297
-
1298
- global $wpdb;
1299
-
1300
- $total_count_posts = (int) $wpdb->get_var("SELECT count(*) FROM {$wpdb->posts}");
1301
-
1302
- $increment = 200;
1303
- global $post;
1304
-
1305
- if ($offset > $total_count_posts) {
1306
- wp_reset_query();
1307
-
1308
- $premium_query_terms = get_option('psp_taxonomy_seo');
1309
-
1310
- if ($premium_query_terms) {
1311
- foreach ($premium_query_terms as $taxonomies => $taxonomie) {
1312
- foreach ($taxonomie as $term_id => $term_value) {
1313
- if ('' != $term_value['psp_meta']['title']) { //Import title tag
1314
- update_term_meta($term_id, '_seopress_titles_title', $term_value['psp_meta']['title']);
1315
- }
1316
- if ('' != $term_value['psp_meta']['description']) { //Import meta desc
1317
- update_term_meta($term_id, '_seopress_titles_desc', $term_value['psp_meta']['description']);
1318
- }
1319
- if ('' != $term_value['psp_meta']['facebook_titlu']) { //Import Facebook Title
1320
- update_term_meta($term_id, '_seopress_social_fb_title', $term_value['psp_meta']['facebook_titlu']);
1321
- }
1322
- if ('' != $term_value['psp_meta']['facebook_desc']) { //Import Facebook Desc
1323
- update_term_meta($term_id, '_seopress_social_fb_desc', $term_value['psp_meta']['facebook_desc']);
1324
- }
1325
- if ('' != $term_value['psp_meta']['facebook_image']) { //Import Facebook Image
1326
- update_term_meta($term_id, '_seopress_social_fb_img', $term_value['psp_meta']['facebook_image']);
1327
- }
1328
- if ('noindex' == $term_value['psp_meta']['robots_index']) { //Import Robots NoIndex
1329
- update_term_meta($term_id, '_seopress_robots_index', 'yes');
1330
- }
1331
- if ('nofollow' == $term_value['psp_meta']['robots_follow']) { //Import Robots NoFollow
1332
- update_term_meta($term_id, '_seopress_robots_follow', 'yes');
1333
- }
1334
- if ('' != $term_value['psp_meta']['canonical']) { //Import Canonical URL
1335
- update_term_meta($term_id, '_seopress_robots_canonical', $term_value['psp_meta']['canonical']);
1336
- }
1337
- }
1338
- }
1339
- }
1340
- $offset = 'done';
1341
- wp_reset_query();
1342
- } else {
1343
- $args = [
1344
- 'posts_per_page' => $increment,
1345
- 'post_type' => 'any',
1346
- 'post_status' => 'any',
1347
- 'offset' => $offset,
1348
- ];
1349
-
1350
- $premium_query = get_posts($args);
1351
-
1352
- if ($premium_query) {
1353
- foreach ($premium_query as $post) {
1354
- $psp_meta = get_post_meta($post->ID, 'psp_meta', true);
1355
-
1356
- if ( ! empty($psp_meta)) {
1357
- if ( ! empty($psp_meta['title'])) { //Import title tag
1358
- update_post_meta($post->ID, '_seopress_titles_title', $psp_meta['title']);
1359
- }
1360
- if ( ! empty($psp_meta['description'])) { //Import meta desc
1361
- update_post_meta($post->ID, '_seopress_titles_desc', $psp_meta['description']);
1362
- }
1363
- if ( ! empty($psp_meta['facebook_titlu'])) { //Import Facebook Title
1364
- update_post_meta($post->ID, '_seopress_social_fb_title', $psp_meta['facebook_titlu']);
1365
- }
1366
- if ( ! empty($psp_meta['facebook_desc'])) { //Import Facebook Desc
1367
- update_post_meta($post->ID, '_seopress_social_fb_desc', $psp_meta['facebook_desc']);
1368
- }
1369
- if ( ! empty($psp_meta['facebook_image'])) { //Import Facebook Image
1370
- update_post_meta($post->ID, '_seopress_social_fb_img', $psp_meta['facebook_image']);
1371
- }
1372
- if ('noindex' == $psp_meta['robots_index']) { //Import Robots NoIndex
1373
- update_post_meta($post->ID, '_seopress_robots_index', 'yes');
1374
- }
1375
- if ('nofollow' == $psp_meta['robots_follow']) { //Import Robots NoIndex
1376
- update_post_meta($post->ID, '_seopress_robots_follow', 'yes');
1377
- }
1378
- if ( ! empty($psp_meta['canonical'])) { //Import Canonical URL
1379
- update_post_meta($post->ID, '_seopress_robots_canonical', $psp_meta['canonical']);
1380
- }
1381
- if ( ! empty($psp_meta['mfocus_keyword'])) { //Import Focus Keywords
1382
- $target_kw = preg_split('/\r\n|\r|\n/', $psp_meta['mfocus_keyword']);
1383
-
1384
- update_post_meta($post->ID, '_seopress_analysis_target_kw', implode(',', $target_kw));
1385
- }
1386
- }
1387
- }
1388
- }
1389
- $offset += $increment;
1390
- }
1391
- $data = [];
1392
- $data['offset'] = $offset;
1393
- wp_send_json_success($data);
1394
- exit();
1395
- }
1396
- }
1397
- add_action('wp_ajax_seopress_premium_seo_pack_migration', 'seopress_premium_seo_pack_migration');
1398
-
1399
- ///////////////////////////////////////////////////////////////////////////////////////////////////
1400
- /* wpSEO migration
1401
- * @since 4.0
1402
- * @author Benjamin Denis
1403
- */
1404
- ///////////////////////////////////////////////////////////////////////////////////////////////////
1405
- function seopress_wpseo_migration() {
1406
- check_ajax_referer('seopress_wpseo_migrate_nonce', $_POST['_ajax_nonce'], true);
1407
-
1408
- if (current_user_can(seopress_capability('manage_options', 'migration')) && is_admin()) {
1409
- if (isset($_POST['offset']) && isset($_POST['offset'])) {
1410
- $offset = absint($_POST['offset']);
1411
- }
1412
-
1413
- global $wpdb;
1414
-
1415
- $total_count_posts = (int) $wpdb->get_var("SELECT count(*) FROM {$wpdb->posts}");
1416
-
1417
- $increment = 200;
1418
- global $post;
1419
-
1420
- if ($offset > $total_count_posts) {
1421
- wp_reset_query();
1422
-
1423
- $args = [
1424
- 'hide_empty' => false,
1425
- 'fields' => 'ids',
1426
- ];
1427
- $wpseo_query_terms = get_terms($args);
1428
-
1429
- if ($wpseo_query_terms) {
1430
- foreach ($wpseo_query_terms as $term_id) {
1431
- if ('' != get_option('wpseo_category_' . $term_id . '_title')) { //Import title tag
1432
- update_term_meta($term_id, '_seopress_titles_title', get_option('wpseo_category_' . $term_id . '_title'));
1433
- }
1434
- if ('' != get_option('wpseo_category_' . $term_id)) { //Import meta desc
1435
- update_term_meta($term_id, '_seopress_titles_desc', get_option('wpseo_category_' . $term_id));
1436
- }
1437
- if ('' != get_option('wpseo_category_' . $term_id . '_og_title')) { //Import Facebook Title
1438
- update_term_meta($term_id, '_seopress_social_fb_title', get_option('wpseo_category_' . $term_id . '_og_title'));
1439
- update_term_meta($term_id, '_seopress_social_twitter_title', get_option('wpseo_category_' . $term_id . '_og_title'));
1440
- }
1441
- if ('' != get_option('wpseo_category_' . $term_id . '_og_desc')) { //Import Facebook Desc
1442
- update_term_meta($term_id, '_seopress_social_fb_desc', get_option('wpseo_category_' . $term_id . '_og_desc'));
1443
- update_term_meta($term_id, '_seopress_social_twitter_desc', get_option('wpseo_category_' . $term_id . '_og_desc'));
1444
- }
1445
- if ('' != get_option('wpseo_category_' . $term_id . '_og_image')) { //Import Facebook Image
1446
- update_term_meta($term_id, '_seopress_social_fb_img', get_option('wpseo_category_' . $term_id . '_og_image'));
1447
- update_term_meta($term_id, '_seopress_social_twitter_img', get_option('wpseo_category_' . $term_id . '_og_image'));
1448
- }
1449
- if ('' != get_option('wpseo_category_' . $term_id . '_canonical')) { //Import Canonical URL
1450
- update_term_meta($term_id, '_seopress_robots_canonical', get_option('wpseo_category_' . $term_id . '_canonical'));
1451
- }
1452
- if ('' != get_option('wpseo_category_' . $term_id . '_redirect')) { //Import Redirect URL
1453
- update_term_meta($term_id, '_seopress_redirections_value', get_option('wpseo_category_' . $term_id . '_redirect'));
1454
- update_term_meta($term_id, '_seopress_redirections_enabled', 'yes');
1455
- }
1456
- if ('4' == get_option('wpseo_category_' . $term_id . '_robots') || '5' == get_option('wpseo_category_' . $term_id . '_robots') || '3' == get_option('wpseo_category_' . $term_id . '_robots')) { //Import Robots NoIndex
1457
- update_term_meta($term_id, '_seopress_robots_index', 'yes');
1458
- }
1459
- if ('2' == get_option('wpseo_category_' . $term_id . '_robots')) { //Import Robots NoFollow
1460
- update_term_meta($term_id, '_seopress_robots_follow', 'yes');
1461
- }
1462
- }
1463
- }
1464
- $offset = 'done';
1465
- wp_reset_query();
1466
- } else {
1467
- $args = [
1468
- 'posts_per_page' => $increment,
1469
- 'post_type' => 'any',
1470
- 'post_status' => 'any',
1471
- 'offset' => $offset,
1472
- ];
1473
-
1474
- $wpseo_query = get_posts($args);
1475
-
1476
- if ($wpseo_query) {
1477
- foreach ($wpseo_query as $post) {
1478
- if ('' != get_post_meta($post->ID, '_wpseo_edit_title', true)) { //Import title tag
1479
- update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, '_wpseo_edit_title', true));
1480
- }
1481
- if ('' != get_post_meta($post->ID, '_wpseo_edit_description', true)) { //Import meta desc
1482
- update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, '_wpseo_edit_description', true));
1483
- }
1484
- if ('' != get_post_meta($post->ID, '_wpseo_edit_og_title', true)) { //Import Facebook Title
1485
- update_post_meta($post->ID, '_seopress_social_fb_title', get_post_meta($post->ID, '_wpseo_edit_og_title', true));
1486
- update_post_meta($post->ID, '_seopress_social_twitter_title', get_post_meta($post->ID, '_wpseo_edit_og_title', true));
1487
- }
1488
- if ('' != get_post_meta($post->ID, '_wpseo_edit_og_description', true)) { //Import Facebook Desc
1489
- update_post_meta($post->ID, '_seopress_social_fb_desc', get_post_meta($post->ID, '_wpseo_edit_og_description', true));
1490
- update_post_meta($post->ID, '_seopress_social_twitter_desc', get_post_meta($post->ID, '_wpseo_edit_og_description', true));
1491
- }
1492
- if ('' != get_post_meta($post->ID, '_wpseo_edit_og_image', true)) { //Import Facebook Image
1493
- update_post_meta($post->ID, '_seopress_social_fb_img', get_post_meta($post->ID, '_wpseo_edit_og_image', true));
1494
- update_post_meta($post->ID, '_seopress_social_twitter_img', get_post_meta($post->ID, '_wpseo_edit_og_image', true));
1495
- }
1496
- if ('' != get_post_meta($post->ID, '_wpseo_edit_keyword_0', true)) { //Import Target Keyword
1497
- update_post_meta($post->ID, '_seopress_analysis_target_kw', get_post_meta($post->ID, '_wpseo_edit_keyword_0', true));
1498
- }
1499
- if ('' != get_post_meta($post->ID, '_wpseo_edit_canonical', true)) { //Import Canonical URL
1500
- update_post_meta($post->ID, '_seopress_robots_canonical', get_post_meta($post->ID, '_wpseo_edit_canonical', true));
1501
- }
1502
- if ('' != get_post_meta($post->ID, '_wpseo_edit_redirect', true)) { //Import Redirect URL
1503
- update_post_meta($post->ID, '_seopress_redirections_value', get_post_meta($post->ID, '_wpseo_edit_redirect', true));
1504
- update_post_meta($post->ID, '_seopress_redirections_enabled', 'yes'); //Enable the redirect
1505
- }
1506
- if ('4' == get_post_meta($post->ID, '_wpseo_edit_robots', true) || '5' == get_post_meta($post->ID, '_wpseo_edit_robots', true) || '3' == get_post_meta($post->ID, '_wpseo_edit_robots', true)) { //Import Robots NoIndex
1507
- update_post_meta($post->ID, '_seopress_robots_index', 'yes');
1508
- }
1509
- if ('2' == get_post_meta($post->ID, '_wpseo_edit_robots', true)) { //Import Robots NoFollow
1510
- update_post_meta($post->ID, '_seopress_robots_follow', 'yes');
1511
- }
1512
- }
1513
- }
1514
- $offset += $increment;
1515
- }
1516
- $data = [];
1517
- $data['offset'] = $offset;
1518
- wp_send_json_success($data);
1519
- exit();
1520
- }
1521
- }
1522
- add_action('wp_ajax_seopress_wpseo_migration', 'seopress_wpseo_migration');
1523
-
1524
- ///////////////////////////////////////////////////////////////////////////////////////////////////
1525
- /* Platinum SEO migration
1526
- * @since 4.5
1527
- * @author Benjamin Denis
1528
- */
1529
- ///////////////////////////////////////////////////////////////////////////////////////////////////
1530
- function seopress_platinum_seo_migration() {
1531
- check_ajax_referer('seopress_platinum_seo_migrate_nonce', $_POST['_ajax_nonce'], true);
1532
-
1533
- if (current_user_can(seopress_capability('manage_options', 'migration')) && is_admin()) {
1534
- if (isset($_POST['offset']) && isset($_POST['offset'])) {
1535
- $offset = absint($_POST['offset']);
1536
- }
1537
-
1538
- global $wpdb;
1539
-
1540
- $total_count_posts = (int) $wpdb->get_var("SELECT count(*) FROM {$wpdb->posts}");
1541
-
1542
- $increment = 200;
1543
- global $post;
1544
-
1545
- if ($offset > $total_count_posts) {
1546
- wp_reset_query();
1547
-
1548
- $args = [
1549
- 'hide_empty' => false,
1550
- ];
1551
- $platinum_seo_query_terms = get_terms($args);
1552
-
1553
- if ($platinum_seo_query_terms) {
1554
- foreach ($platinum_seo_query_terms as $term) {
1555
- if ( ! is_wp_error($term)) {
1556
- $tax = 'taxonomy';
1557
- if ('category' === $term->taxonomy) {
1558
- $tax = 'category';
1559
- }
1560
- if ('' != get_term_meta($term->term_id, 'psp_' . $tax . '_seo_metas_' . $term->term_id, true) || '' != get_term_meta($term->$term_id, 'psp_' . $tax . '_social_metas_' . $term->term_id, true)) {
1561
- $term_settings = get_term_meta($term->term_id, 'psp_' . $tax . '_seo_metas_' . $term->term_id, true);
1562
- $term_social_settings = get_term_meta($term->term_id, 'psp_' . $tax . '_social_metas_' . $term->term_id, true);
1563
-
1564
- if ( ! empty($term_settings['title'])) { //Import title tag
1565
- update_term_meta($term->term_id, '_seopress_titles_title', $term_settings['title']);
1566
- }
1567
- if ( ! empty($term_settings['description'])) { //Import meta desc
1568
- update_term_meta($term->term_id, '_seopress_titles_desc', $term_settings['description']);
1569
- }
1570
- if ( ! empty($term_social_settings['fb_title'])) { //Import Facebook Title
1571
- update_term_meta($term->term_id, '_seopress_social_fb_title', $term_social_settings['fb_title']);
1572
- update_term_meta($term->term_id, '_seopress_social_twitter_title', $term_social_settings['fb_title']);
1573
- }
1574
- if ( ! empty($term_social_settings['fb_description'])) { //Import Facebook Desc
1575
- update_term_meta($term->term_id, '_seopress_social_fb_desc', $term_social_settings['fb_description']);
1576
- update_term_meta($term->term_id, '_seopress_social_twitter_desc', $term_social_settings['fb_description']);
1577
- }
1578
- if ( ! empty($term_social_settings['fb_image'])) { //Import Facebook Image
1579
- update_term_meta($term->term_id, '_seopress_social_fb_img', $term_social_settings['fb_image']);
1580
- update_term_meta($term->term_id, '_seopress_social_twitter_img', $term_social_settings['fb_image']);
1581
- }
1582
- if ( ! empty($term_settings['canonical_url'])) { //Import Canonical URL
1583
- update_term_meta($term->term_id, '_seopress_robots_canonical', $term_settings['canonical_url']);
1584
- }
1585
- if ( ! empty($term_settings['redirect_to_url'])) { //Import Redirect URL
1586
- update_term_meta($term->term_id, '_seopress_redirections_value', $term_settings['redirect_to_url']);
1587
- update_term_meta($term->term_id, '_seopress_redirections_enabled', 'yes');
1588
- if ( ! empty($term_settings['redirect_status_code'])) {
1589
- $status = $term_settings['redirect_status_code'];
1590
- if ('303' === $term_settings['redirect_status_code']) {
1591
- $status = '301';
1592
- }
1593
-
1594
- update_term_meta($term->term_id, '_seopress_redirections_type', $status);
1595
- }
1596
- }
1597
- if ( ! empty($term_settings['noindex'])) { //Import Robots NoIndex
1598
- update_term_meta($term->term_id, '_seopress_robots_index', 'yes');
1599
- }
1600
- if ( ! empty($term_settings['nofollow'])) { //Import Robots NoFollow
1601
- update_term_meta($term->term_id, '_seopress_robots_follow', 'yes');
1602
- }
1603
- if ( ! empty($term_settings['noarchive'])) { //Import Robots NoArchive
1604
- update_term_meta($term->term_id, '_seopress_robots_archive', 'yes');
1605
- }
1606
- if ( ! empty($term_settings['nosnippet'])) { //Import Robots NoSnippet
1607
- update_term_meta($term->term_id, '_seopress_robots_snippet', 'yes');
1608
- }
1609
- if ( ! empty($term_settings['noimageindex'])) { //Import Robots NoImageIndex
1610
- update_term_meta($term->term_id, '_seopress_robots_imageindex', 'yes');
1611
- }
1612
- }
1613
- }
1614
- }
1615
- }
1616
- $offset = 'done';
1617
- wp_reset_query();
1618
- } else {
1619
- $args = [
1620
- 'posts_per_page' => $increment,
1621
- 'post_type' => 'any',
1622
- 'post_status' => 'any',
1623
- 'offset' => $offset,
1624
- ];
1625
-
1626
- $platinum_seo_query = get_posts($args);
1627
-
1628
- if ($platinum_seo_query) {
1629
- foreach ($platinum_seo_query as $post) {
1630
- if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_title', true)) { //Import title tag
1631
- update_post_meta($post->ID, '_seopress_titles_title', get_metadata('platinumseo', $post->ID, '_techblissonline_psp_title', true));
1632
- }
1633
- if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_description', true)) { //Import meta desc
1634
- update_post_meta($post->ID, '_seopress_titles_desc', get_metadata('platinumseo', $post->ID, '_techblissonline_psp_description', true));
1635
- }
1636
- if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_fb_title', true)) { //Import Facebook Title
1637
- update_post_meta($post->ID, '_seopress_social_fb_title', get_metadata('platinumseo', $post->ID, '_techblissonline_psp_fb_title', true));
1638
- update_post_meta($post->ID, '_seopress_social_twitter_title', get_metadata('platinumseo', $post->ID, '_techblissonline_psp_fb_title', true));
1639
- }
1640
- if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_fb_description', true)) { //Import Facebook Desc
1641
- update_post_meta($post->ID, '_seopress_social_fb_desc', get_metadata('platinumseo', $post->ID, '_techblissonline_psp_fb_description', true));
1642
- update_post_meta($post->ID, '_seopress_social_twitter_desc', get_metadata('platinumseo', $post->ID, '_techblissonline_psp_fb_description', true));
1643
- }
1644
- if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_fb_image', true)) { //Import Facebook Image
1645
- update_post_meta($post->ID, '_seopress_social_fb_img', get_metadata('platinumseo', $post->ID, '_techblissonline_psp_fb_image', true));
1646
- update_post_meta($post->ID, '_seopress_social_twitter_img', get_metadata('platinumseo', $post->ID, '_techblissonline_psp_fb_image', true));
1647
- }
1648
- if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_keywords', true)) { //Import Target Keyword
1649
- update_post_meta($post->ID, '_seopress_analysis_target_kw', get_metadata('platinumseo', $post->ID, '_techblissonline_psp_keywords', true));
1650
- }
1651
- if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_canonical_url', true)) { //Import Canonical URL
1652
- update_post_meta($post->ID, '_seopress_robots_canonical', get_metadata('platinumseo', $post->ID, '_techblissonline_psp_canonical_url', true));
1653
- }
1654
- if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_redirect_to_url', true)) { //Import Redirect URL
1655
- update_post_meta($post->ID, '_seopress_redirections_value', get_metadata('platinumseo', $post->ID, '_techblissonline_psp_redirect_to_url', true));
1656
- update_post_meta($post->ID, '_seopress_redirections_enabled', 'yes'); //Enable the redirect
1657
-
1658
- if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_redirect_status_code', true)) {
1659
- $status = get_metadata('platinumseo', $post->ID, '_techblissonline_psp_redirect_status_code', true);
1660
- if ('303' === get_metadata('platinumseo', $post->ID, '_techblissonline_psp_redirect_status_code', true)) {
1661
- $status = '301';
1662
- }
1663
-
1664
- update_term_meta($post->ID, '_seopress_redirections_type', $status);
1665
- }
1666
- }
1667
- if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_noindex', true)) { //Import Robots NoIndex
1668
- update_post_meta($post->ID, '_seopress_robots_index', 'yes');
1669
- }
1670
- if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_nofollow', true)) { //Import Robots NoFollow
1671
- update_post_meta($post->ID, '_seopress_robots_follow', 'yes');
1672
- }
1673
- if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_noarchive', true)) { //Import Robots NoArchive
1674
- update_post_meta($post->ID, '_seopress_robots_archive', 'yes');
1675
- }
1676
- if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_nosnippet', true)) { //Import Robots NoSnippet
1677
- update_post_meta($post->ID, '_seopress_robots_snippet', 'yes');
1678
- }
1679
- if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_noimageidx', true)) { //Import Robots NoImageIndex
1680
- update_post_meta($post->ID, '_seopress_robots_imageindex', 'yes');
1681
- }
1682
- if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_keywords', true)) { //Import Target Keywords
1683
- update_post_meta($post->ID, '_seopress_analysis_target_kw', get_metadata('platinumseo', $post->ID, '_techblissonline_psp_keywords', true));
1684
- }
1685
- if ('' != get_metadata('platinumseo', $post->ID, '_techblissonline_psp_preferred_term', true)) { //Import Primary category
1686
- if ('category' == get_metadata('platinumseo', $post->ID, '_techblissonline_psp_preferred_taxonomy', true) || 'product_cat' == get_metadata('platinumseo', $post->ID, '_techblissonline_psp_preferred_taxonomy', true)) {
1687
- update_post_meta($post->ID, '_seopress_robots_primary_cat', get_metadata('platinumseo', $post->ID, '_techblissonline_psp_preferred_term', true));
1688
- }
1689
- }
1690
- }
1691
- }
1692
- $offset += $increment;
1693
- }
1694
- $data = [];
1695
- $data['offset'] = $offset;
1696
- wp_send_json_success($data);
1697
- exit();
1698
- }
1699
- }
1700
- add_action('wp_ajax_seopress_platinum_seo_migration', 'seopress_platinum_seo_migration');
1701
-
1702
- ///////////////////////////////////////////////////////////////////////////////////////////////////
1703
- /* SmartCrawl migration
1704
- * @since 4.5
1705
- * @author Benjamin Denis
1706
- */
1707
- ///////////////////////////////////////////////////////////////////////////////////////////////////
1708
- function seopress_smart_crawl_migration() {
1709
- check_ajax_referer('seopress_smart_crawl_migrate_nonce', $_POST['_ajax_nonce'], true);
1710
-
1711
- if (current_user_can(seopress_capability('manage_options', 'migration')) && is_admin()) {
1712
- if (isset($_POST['offset']) && isset($_POST['offset'])) {
1713
- $offset = absint($_POST['offset']);
1714
- }
1715
-
1716
- global $wpdb;
1717
-
1718
- $total_count_posts = (int) $wpdb->get_var("SELECT count(*) FROM {$wpdb->posts}");
1719
-
1720
- $increment = 200;
1721
- global $post;
1722
-
1723
- if ($offset > $total_count_posts) {
1724
- wp_reset_query();
1725
-
1726
- $smart_crawl_query_terms = get_option('wds_taxonomy_meta');
1727
-
1728
- if ($smart_crawl_query_terms) {
1729
- foreach ($smart_crawl_query_terms as $taxonomies => $taxonomie) {
1730
- foreach ($taxonomie as $term_id => $term_value) {
1731
- if ( ! empty($term_value['wds_title'])) { //Import title tag
1732
- update_term_meta($term_id, '_seopress_titles_title', $term_value['wds_title']);
1733
- }
1734
- if ( ! empty($term_value['wds_desc'])) { //Import meta desc
1735
- update_term_meta($term_id, '_seopress_titles_desc', $term_value['wds_desc']);
1736
- }
1737
- if ( ! empty($term_value['opengraph']['title'])) { //Import Facebook Title
1738
- update_term_meta($term_id, '_seopress_social_fb_title', $term_value['opengraph']['title']);
1739
- }
1740
- if ( ! empty($term_value['opengraph']['description'])) { //Import Facebook Desc
1741
- update_term_meta($term_id, '_seopress_social_fb_desc', $term_value['opengraph']['description']);
1742
- }
1743
- if ( ! empty($term_value['opengraph']['images'])) { //Import Facebook Image
1744
- $image_id = $term_value['opengraph']['images'][0];
1745
- $img_url = wp_get_attachment_url($image_id);
1746
-
1747
- if (isset($img_url) && '' != $img_url) {
1748
- update_term_meta($term_id, '_seopress_social_fb_img', $img_url);
1749
- }
1750
- }
1751
- if ( ! empty($term_value['twitter']['title'])) { //Import Facebook Title
1752
- update_term_meta($term_id, '_seopress_social_twitter_title', $term_value['twitter']['title']);
1753
- }
1754
- if ( ! empty($term_value['twitter']['description'])) { //Import Facebook Desc
1755
- update_term_meta($term_id, '_seopress_social_twitter_desc', $term_value['twitter']['description']);
1756
- }
1757
- if ( ! empty($term_value['twitter']['images'])) { //Import Facebook Image
1758
- $image_id = $term_value['twitter']['images'][0];
1759
- $img_url = wp_get_attachment_url($image_id);
1760
-
1761
- if (isset($img_url) && '' != $img_url) {
1762
- update_term_meta($term_id, '_seopress_social_twitter_img', $img_url);
1763
- }
1764
- }
1765
- if ( ! empty($term_value['wds_noindex']) && 'noindex' == $term_value['wds_noindex']) { //Import Robots NoIndex
1766
- update_term_meta($term_id, '_seopress_robots_index', 'yes');
1767
- }
1768
- if ( ! empty($term_value['wds_nofollow']) && 'nofollow' == $term_value['wds_nofollow']) { //Import Robots NoFollow
1769
- update_term_meta($term_id, '_seopress_robots_follow', 'yes');
1770
- }
1771
- if ('' != $term_value['wds_canonical']) { //Import Canonical URL
1772
- update_term_meta($term_id, '_seopress_robots_canonical', $term_value['wds_canonical']);
1773
- }
1774
- }
1775
- }
1776
- }
1777
- $offset = 'done';
1778
- wp_reset_query();
1779
- } else {
1780
- $args = [
1781
- 'posts_per_page' => $increment,
1782
- 'post_type' => 'any',
1783
- 'post_status' => 'any',
1784
- 'offset' => $offset,
1785
- ];
1786
-
1787
- $smart_crawl_query = get_posts($args);
1788
-
1789
- if ($smart_crawl_query) {
1790
- foreach ($smart_crawl_query as $post) {
1791
- if ('' != get_post_meta($post->ID, '_wds_title', true)) { //Import title tag
1792
- update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, '_wds_title', true));
1793
- }
1794
- if ('' != get_post_meta($post->ID, '_wds_metadesc', true)) { //Import meta desc
1795
- update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, '_wds_metadesc', true));
1796
- }
1797
- if ('' != get_post_meta($post->ID, '_wds_opengraph', true)) {
1798
- $_wds_opengraph = get_post_meta($post->ID, '_wds_opengraph', true);
1799
- if ( ! empty($_wds_opengraph['title'])) {
1800
- update_post_meta($post->ID, '_seopress_social_fb_title', $_wds_opengraph['title']); //Import Facebook Title
1801
- }
1802
- if ( ! empty($_wds_opengraph['description'])) { //Import Facebook Desc
1803
- update_post_meta($post->ID, '_seopress_social_fb_desc', $_wds_opengraph['description']);
1804
- }
1805
- if ( ! empty($_wds_opengraph['images'])) { //Import Facebook Image
1806
- $image_id = $_wds_opengraph['images'][0];
1807
- $img_url = wp_get_attachment_url($image_id);
1808
-
1809
- if (isset($img_url) && '' != $img_url) {
1810
- update_post_meta($post->ID, '_seopress_social_fb_img', $img_url);
1811
- }
1812
- }
1813
- }
1814
- if ('' != get_post_meta($post->ID, '_wds_twitter', true)) {
1815
- $_wds_twitter = get_post_meta($post->ID, '_wds_twitter', true);
1816
- if ( ! empty($_wds_twitter['title'])) {
1817
- update_post_meta($post->ID, '_seopress_social_twitter_title', $_wds_twitter['title']); //Import Twitter Title
1818
- }
1819
- if ( ! empty($_wds_twitter['description'])) { //Import Twitter Desc
1820
- update_post_meta($post->ID, '_seopress_social_twitter_desc', $_wds_twitter['description']);
1821
- }
1822
- if ( ! empty($_wds_twitter['images'])) { //Import Twitter Image
1823
- $image_id = $_wds_twitter['images'][0];
1824
- $img_url = wp_get_attachment_url($image_id);
1825
-
1826
- if (isset($img_url) && '' != $img_url) {
1827
- update_post_meta($post->ID, '_seopress_social_twitter_img', $img_url);
1828
- }
1829
- }
1830
- }
1831
- if ('1' === get_post_meta($post->ID, '_wds_meta-robots-noindex', true)) { //Import Robots NoIndex
1832
- update_post_meta($post->ID, '_seopress_robots_index', 'yes');
1833
- }
1834
- if ('1' === get_post_meta($post->ID, '_wds_meta-robots-nofollow', true)) { //Import Robots NoIndex
1835
- update_post_meta($post->ID, '_seopress_robots_follow', 'yes');
1836
- }
1837
- if ('' != get_post_meta($post->ID, '_wds_meta-robots-adv', true)) {
1838
- $robots = get_post_meta($post->ID, '_wds_meta-robots-adv', true);
1839
- if ('' != $robots) {
1840
- $robots = explode(',', $robots);
1841
-
1842
- if (in_array('noarchive', $robots)) { //Import Robots NoArchive
1843
- update_post_meta($post->ID, '_seopress_robots_archive', 'yes');
1844
- }
1845
- if (in_array('nosnippet', $robots)) { //Import Robots NoSnippet
1846
- update_post_meta($post->ID, '_seopress_robots_snippet', 'yes');
1847
- }
1848
- }
1849
- }
1850
- if ('' != get_post_meta($post->ID, '_wds_canonical', true)) { //Import Canonical URL
1851
- update_post_meta($post->ID, '_seopress_robots_canonical', get_post_meta($post->ID, '_wds_canonical', true));
1852
- }
1853
- if ('' != get_post_meta($post->ID, '_wds_redirect', true)) { //Import Redirect URL
1854
- update_post_meta($post->ID, '_seopress_redirections_enabled', 'yes');
1855
- update_post_meta($post->ID, '_seopress_redirections_type', '301');
1856
- update_post_meta($post->ID, '_seopress_redirections_value', get_post_meta($post->ID, '_wds_redirect', true));
1857
- }
1858
- if ('' != get_post_meta($post->ID, '_wds_focus-keywords', true)) { //Import Focus Keywords
1859
- update_post_meta($post->ID, '_seopress_analysis_target_kw', get_post_meta($post->ID, '_wds_focus-keywords', true));
1860
- }
1861
- }
1862
- }
1863
- $offset += $increment;
1864
- }
1865
- $data = [];
1866
- $data['offset'] = $offset;
1867
- wp_send_json_success($data);
1868
- exit();
1869
- }
1870
- }
1871
- add_action('wp_ajax_seopress_smart_crawl_migration', 'seopress_smart_crawl_migration');
1872
-
1873
- ///////////////////////////////////////////////////////////////////////////////////////////////////
1874
- /* SEOPressor migration
1875
- * @since 4.5
1876
- * @author Benjamin Denis
1877
- */
1878
- ///////////////////////////////////////////////////////////////////////////////////////////////////
1879
- function seopress_seopressor_migration() {
1880
- check_ajax_referer('seopress_seopressor_migrate_nonce', $_POST['_ajax_nonce'], true);
1881
-
1882
- if (current_user_can(seopress_capability('manage_options', 'migration')) && is_admin()) {
1883
- if (isset($_POST['offset']) && isset($_POST['offset'])) {
1884
- $offset = absint($_POST['offset']);
1885
- }
1886
-
1887
- global $wpdb;
1888
-
1889
- $total_count_posts = (int) $wpdb->get_var("SELECT count(*) FROM {$wpdb->posts}");
1890
-
1891
- $increment = 200;
1892
- global $post;
1893
-
1894
- if ($offset > $total_count_posts) {
1895
- $offset = 'done';
1896
- wp_reset_query();
1897
- } else {
1898
- $args = [
1899
- 'posts_per_page' => $increment,
1900
- 'post_type' => 'any',
1901
- 'post_status' => 'any',
1902
- 'offset' => $offset,
1903
- ];
1904
-
1905
- $su_query = get_posts($args);
1906
-
1907
- if ($su_query) {
1908
- foreach ($su_query as $post) {
1909
- if ( ! empty(get_post_meta($post->ID, '_seop_settings', true))) {
1910
- $_seop_settings = get_post_meta($post->ID, '_seop_settings', true);
1911
-
1912
- if ( ! empty($_seop_settings['meta_title'])) { //Import title tag
1913
- update_post_meta($post->ID, '_seopress_titles_title', $_seop_settings['meta_title']);
1914
- }
1915
- if ( ! empty($_seop_settings['meta_description'])) { //Import meta desc
1916
- update_post_meta($post->ID, '_seopress_titles_desc', $_seop_settings['meta_description']);
1917
- }
1918
- if ( ! empty($_seop_settings['fb_title'])) { //Import Facebook Title
1919
- update_post_meta($post->ID, '_seopress_social_fb_title', $_seop_settings['fb_title']);
1920
- }
1921
- if ( ! empty($_seop_settings['fb_description'])) { //Import Facebook Desc
1922
- update_post_meta($post->ID, '_seopress_social_fb_desc', $_seop_settings['fb_description']);
1923
- }
1924
- if ( ! empty($_seop_settings['fb_img'])) { //Import Facebook Image
1925
- update_post_meta($post->ID, '_seopress_social_fb_img', $_seop_settings['fb_img']);
1926
- }
1927
- if ( ! empty($_seop_settings['tw_title'])) { //Import Twitter Title
1928
- update_post_meta($post->ID, '_seopress_social_twitter_title', $_seop_settings['tw_title']);
1929
- }
1930
- if ( ! empty($_seop_settings['tw_description'])) { //Import Twitter Desc
1931
- update_post_meta($post->ID, '_seopress_social_twitter_desc', $_seop_settings['tw_description']);
1932
- }
1933
- if ( ! empty($_seop_settings['tw_image'])) { //Import Twitter Image
1934
- update_post_meta($post->ID, '_seopress_social_twitter_img', $_seop_settings['tw_image']);
1935
- }
1936
- if ( ! empty($_seop_settings['meta_rules'])) {
1937
- $robots = explode('#|#|#', $_seop_settings['meta_rules']);
1938
-
1939
- if ( ! empty($robots)) {
1940
- if (in_array('noindex', $robots)) { //Import Robots NoIndex
1941
- update_post_meta($post->ID, '_seopress_robots_index', 'yes');
1942
- }
1943
- if (in_array('nofollow', $robots)) { //Import Robots NoFollow
1944
- update_post_meta($post->ID, '_seopress_robots_follow', 'yes');
1945
- }
1946
- if (in_array('noarchive', $robots)) { //Import Robots NoArchive
1947
- update_post_meta($post->ID, '_seopress_robots_archive', 'yes');
1948
- }
1949
- if (in_array('nosnippet', $robots)) { //Import Robots NoSnippet
1950
- update_post_meta($post->ID, '_seopress_robots_snippet', 'yes');
1951
- }
1952
- if (in_array('noodp', $robots)) { //Import Robots NoOdp
1953
- update_post_meta($post->ID, '_seopress_robots_odp', 'yes');
1954
- }
1955
- if (in_array('noimageindex', $robots)) { //Import Robots NoImageIndex
1956
- update_post_meta($post->ID, '_seopress_robots_imageindex', 'yes');
1957
- }
1958
- }
1959
- }
1960
- if ('' != get_post_meta($post->ID, '_seop_kw_1', true) || '' != get_post_meta($post->ID, '_seop_kw_2', true) || '' != get_post_meta($post->ID, '_seop_kw_3', true)) { //Import Target Keyword
1961
- $kw = [];
1962
- $kw[] = get_post_meta($post->ID, '_seop_kw_1', true);
1963
- $kw[] = get_post_meta($post->ID, '_seop_kw_2', true);
1964
- $kw[] = get_post_meta($post->ID, '_seop_kw_3', true);
1965
-
1966
- $kw = implode(',', $kw);
1967
-
1968
- if ( ! empty($kw)) {
1969
- update_post_meta($post->ID, '_seopress_analysis_target_kw', $kw);
1970
- }
1971
- }
1972
- if ( ! empty($_seop_settings['meta_canonical'])) { //Import Canonical URL
1973
- update_post_meta($post->ID, '_seopress_robots_canonical', $_seop_settings['meta_canonical']);
1974
- }
1975
- if ( ! empty($_seop_settings['meta_redirect'])) { //Import Redirect URL
1976
- update_post_meta($post->ID, '_seopress_redirections_value', $_seop_settings['meta_redirect']);
1977
- update_post_meta($post->ID, '_seopress_redirections_enabled', 'yes'); //Enable the redirect
1978
- }
1979
- }
1980
- }
1981
- }
1982
- $offset += $increment;
1983
- }
1984
- $data = [];
1985
- $data['offset'] = $offset;
1986
- wp_send_json_success($data);
1987
- exit();
1988
- }
1989
- }
1990
- add_action('wp_ajax_seopress_seopressor_migration', 'seopress_seopressor_migration');
1991
-
1992
- ///////////////////////////////////////////////////////////////////////////////////////////////////
1993
- //Export SEOPress metadata to CSV
1994
- ///////////////////////////////////////////////////////////////////////////////////////////////////
1995
- function seopress_metadata_export() {
1996
- check_ajax_referer('seopress_export_csv_metadata_nonce', $_POST['_ajax_nonce'], true);
1997
-
1998
- if (current_user_can(seopress_capability('manage_options', 'migration')) && is_admin()) {
1999
- if (isset($_POST['offset'])) {
2000
- $offset = absint($_POST['offset']);
2001
- }
2002
-
2003
- $post_export = '';
2004
- if (isset($_POST['post_export'])) {
2005
- $post_export = esc_attr($_POST['post_export']);
2006
- }
2007
-
2008
- $term_export = '';
2009
- if (isset($_POST['term_export'])) {
2010
- $term_export = esc_attr($_POST['term_export']);
2011
- }
2012
-
2013
- //Get post types
2014
- $seopress_get_post_types = [];
2015
- foreach (seopress_get_post_types() as $seopress_cpt_key => $seopress_cpt_value) {
2016
- $seopress_get_post_types[] = $seopress_cpt_key;
2017
- }
2018
-
2019
- //Get taxonomies
2020
- $seopress_get_taxonomies = [];
2021
- foreach (seopress_get_taxonomies() as $seopress_tax_key => $seopress_tax_value) {
2022
- $seopress_get_taxonomies[] = $seopress_tax_key;
2023
- }
2024
-
2025
- global $wpdb;
2026
- global $post;
2027
-
2028
- //Count posts
2029
- $i = 1;
2030
- $sql = '(';
2031
- $count = count($seopress_get_post_types);
2032
- foreach ($seopress_get_post_types as $cpt) {
2033
- $sql .= '(post_type = "' . $cpt . '")';
2034
-
2035
- if ($i < $count) {
2036
- $sql .= ' OR ';
2037
- }
2038
-
2039
- ++$i;
2040
- }
2041
- $sql .= ')';
2042
-
2043
- $total_count_posts = (int) $wpdb->get_var("SELECT count(*)
2044
- FROM {$wpdb->posts}
2045
- WHERE $sql
2046
- AND (post_status = 'publish' OR post_status = 'pending' OR post_status = 'draft' OR post_status = 'auto-draft' OR post_status = 'future' OR post_status = 'private' OR post_status = 'inherit' OR post_status = 'trash') ");
2047
-
2048
- //Count terms
2049
- $total_count_terms = (int) $wpdb->get_var("SELECT count(*) FROM {$wpdb->terms}");
2050
-
2051
- $increment = 200;
2052
-
2053
- $csv = '';
2054
- $csv = get_option('seopress_metadata_csv');
2055
- $download_url = '';
2056
-
2057
- $settings['id'] = [];
2058
- $settings['post_title'] = [];
2059
- $settings['url'] = [];
2060
- $settings['meta_title'] = [];
2061
- $settings['meta_desc'] = [];
2062
- $settings['fb_title'] = [];
2063
- $settings['fb_desc'] = [];
2064
- $settings['fb_img'] = [];
2065
- $settings['tw_title'] = [];
2066
- $settings['tw_desc'] = [];
2067
- $settings['tw_img'] = [];
2068
- $settings['noindex'] = [];
2069
- $settings['nofollow'] = [];
2070
- $settings['noodp'] = [];
2071
- $settings['noimageindex'] = [];
2072
- $settings['noarchive'] = [];
2073
- $settings['nosnippet'] = [];
2074
- $settings['canonical_url'] = [];
2075
- $settings['primary_cat'] = [];
2076
- $settings['redirect_active'] = [];
2077
- $settings['redirect_type'] = [];
2078
- $settings['redirect_url'] = [];
2079
- $settings['target_kw'] = [];
2080
-
2081
- //Posts
2082
- if ('done' != $post_export) {
2083
- if ($offset > $total_count_posts) {
2084
- wp_reset_query();
2085
- //Reset offset once Posts export is done
2086
- $offset = 0;
2087
- update_option('seopress_metadata_csv', $csv);
2088
- $post_export = 'done';
2089
- } else {
2090
- $args = [
2091
- 'post_type' => $seopress_get_post_types,
2092
- 'posts_per_page' => $increment,
2093
- 'offset' => $offset,
2094
- 'post_status' => 'any',
2095
- 'order' => 'DESC',
2096
- 'orderby' => 'date',
2097
- ];
2098
- $args = apply_filters('seopress_metadata_query_args', $args, $seopress_get_post_types, $increment, $offset);
2099
- $meta_query = get_posts($args);
2100
-
2101
- if ($meta_query) {
2102
- // The Loop
2103
- foreach ($meta_query as $post) {
2104
- array_push($settings['id'], $post->ID);
2105
-
2106
- array_push($settings['post_title'], $post->post_title);
2107
-
2108
- array_push($settings['url'], get_permalink($post));
2109
-
2110
- array_push($settings['meta_title'], get_post_meta($post->ID, '_seopress_titles_title', true));
2111
-
2112
- array_push($settings['meta_desc'], get_post_meta($post->ID, '_seopress_titles_desc', true));
2113
-
2114
- array_push($settings['fb_title'], get_post_meta($post->ID, '_seopress_social_fb_title', true));
2115
-
2116
- array_push($settings['fb_desc'], get_post_meta($post->ID, '_seopress_social_fb_desc', true));
2117
-
2118
- array_push($settings['fb_img'], get_post_meta($post->ID, '_seopress_social_fb_img', true));
2119
-
2120
- array_push($settings['tw_title'], get_post_meta($post->ID, '_seopress_social_twitter_title', true));
2121
-
2122
- array_push($settings['tw_desc'], get_post_meta($post->ID, '_seopress_social_twitter_desc', true));
2123
-
2124
- array_push($settings['tw_img'], get_post_meta($post->ID, '_seopress_social_twitter_img', true));
2125
-
2126
- array_push($settings['noindex'], get_post_meta($post->ID, '_seopress_robots_index', true));
2127
-
2128
- array_push($settings['nofollow'], get_post_meta($post->ID, '_seopress_robots_follow', true));
2129
-
2130
- array_push($settings['noodp'], get_post_meta($post->ID, '_seopress_robots_odp', true));
2131
-
2132
- array_push($settings['noimageindex'], get_post_meta($post->ID, '_seopress_robots_imageindex', true));
2133
-
2134
- array_push($settings['noarchive'], get_post_meta($post->ID, '_seopress_robots_archive', true));
2135
-
2136
- array_push($settings['nosnippet'], get_post_meta($post->ID, '_seopress_robots_snippet', true));
2137
-
2138
- array_push($settings['canonical_url'], get_post_meta($post->ID, '_seopress_robots_canonical', true));
2139
-
2140
- array_push($settings['primary_cat'], get_post_meta($post->ID, 'seopress_robots_primary_cat', true));
2141
-
2142
- array_push($settings['redirect_active'], get_post_meta($post->ID, '_seopress_redirections_enabled', true));
2143
-
2144
- array_push($settings['redirect_type'], get_post_meta($post->ID, '_seopress_redirections_type', true));
2145
-
2146
- array_push($settings['redirect_url'], get_post_meta($post->ID, '_seopress_redirections_value', true));
2147
-
2148
- array_push($settings['target_kw'], get_post_meta($post->ID, '_seopress_analysis_target_kw', true));
2149
-
2150
- $csv[] = array_merge(
2151
- $settings['id'],
2152
- $settings['post_title'],
2153
- $settings['url'],
2154
- $settings['meta_title'],
2155
- $settings['meta_desc'],
2156
- $settings['fb_title'],
2157
- $settings['fb_desc'],
2158
- $settings['fb_img'],
2159
- $settings['tw_title'],
2160
- $settings['tw_desc'],
2161
- $settings['tw_img'],
2162
- $settings['noindex'],
2163
- $settings['nofollow'],
2164
- $settings['noodp'],
2165
- $settings['noimageindex'],
2166
- $settings['noarchive'],
2167
- $settings['nosnippet'],
2168
- $settings['canonical_url'],
2169
- $settings['primary_cat'],
2170
- $settings['redirect_active'],
2171
- $settings['redirect_type'],
2172
- $settings['redirect_url'],
2173
- $settings['target_kw']
2174
- );
2175
-
2176
- //Clean arrays
2177
- $settings['id'] = [];
2178
- $settings['post_title'] = [];
2179
- $settings['url'] = [];
2180
- $settings['meta_title'] = [];
2181
- $settings['meta_desc'] = [];
2182
- $settings['fb_title'] = [];
2183
- $settings['fb_desc'] = [];
2184
- $settings['fb_img'] = [];
2185
- $settings['tw_title'] = [];
2186
- $settings['tw_desc'] = [];
2187
- $settings['tw_img'] = [];
2188
- $settings['noindex'] = [];
2189
- $settings['nofollow'] = [];
2190
- $settings['noodp'] = [];
2191
- $settings['noimageindex'] = [];
2192
- $settings['noarchive'] = [];
2193
- $settings['nosnippet'] = [];
2194
- $settings['canonical_url'] = [];
2195
- $settings['primary_cat'] = [];
2196
- $settings['redirect_active'] = [];
2197
- $settings['redirect_type'] = [];
2198
- $settings['redirect_url'] = [];
2199
- $settings['target_kw'] = [];
2200
- }
2201
- }
2202
- $offset += $increment;
2203
- update_option('seopress_metadata_csv', $csv);
2204
- }
2205
- } elseif ('done' != $term_export) {
2206
- //Terms
2207
- if ($offset > $total_count_terms) {
2208
- update_option('seopress_metadata_csv', $csv);
2209
- $post_export = 'done';
2210
- $term_export = 'done';
2211
- } else {
2212
- $args = [
2213
- 'taxonomy' => $seopress_get_taxonomies,
2214
- 'number' => $increment,
2215
- 'offset' => $offset,
2216
- 'order' => 'DESC',
2217
- 'orderby' => 'date',
2218
- 'hide_empty' => false,
2219
- ];
2220
-
2221
- $args = apply_filters('seopress_metadata_query_terms_args', $args, $seopress_get_taxonomies, $increment, $offset);
2222
-
2223
- $meta_query = get_terms($args);
2224
-
2225
- if ($meta_query) {
2226
- // The Loop
2227
- foreach ($meta_query as $term) {
2228
- array_push($settings['id'], $term->term_id);
2229
-
2230
- array_push($settings['post_title'], $term->name);
2231
-
2232
- array_push($settings['url'], get_term_link($term));
2233
-
2234
- array_push($settings['meta_title'], get_term_meta($term->term_id, '_seopress_titles_title', true));
2235
-
2236
- array_push($settings['meta_desc'], get_term_meta($term->term_id, '_seopress_titles_desc', true));
2237
-
2238
- array_push($settings['fb_title'], get_term_meta($term->term_id, '_seopress_social_fb_title', true));
2239
-
2240
- array_push($settings['fb_desc'], get_term_meta($term->term_id, '_seopress_social_fb_desc', true));
2241
-
2242
- array_push($settings['fb_img'], get_term_meta($term->term_id, '_seopress_social_fb_img', true));
2243
-
2244
- array_push($settings['tw_title'], get_term_meta($term->term_id, '_seopress_social_twitter_title', true));
2245
-
2246
- array_push($settings['tw_desc'], get_term_meta($term->term_id, '_seopress_social_twitter_desc', true));
2247
-
2248
- array_push($settings['tw_img'], get_term_meta($term->term_id, '_seopress_social_twitter_img', true));
2249
-
2250
- array_push($settings['noindex'], get_term_meta($term->term_id, '_seopress_robots_index', true));
2251
-
2252
- array_push($settings['nofollow'], get_term_meta($term->term_id, '_seopress_robots_follow', true));
2253
-
2254
- array_push($settings['noodp'], get_term_meta($term->term_id, '_seopress_robots_odp', true));
2255
-
2256
- array_push($settings['noimageindex'], get_term_meta($term->term_id, '_seopress_robots_imageindex', true));
2257
-
2258
- array_push($settings['noarchive'], get_term_meta($term->term_id, '_seopress_robots_archive', true));
2259
-
2260
- array_push($settings['nosnippet'], get_term_meta($term->term_id, '_seopress_robots_snippet', true));
2261
-
2262
- array_push($settings['canonical_url'], get_term_meta($term->term_id, '_seopress_robots_canonical', true));
2263
-
2264
- array_push($settings['redirect_active'], get_term_meta($term->term_id, '_seopress_redirections_enabled', true));
2265
-
2266
- array_push($settings['redirect_type'], get_term_meta($term->term_id, '_seopress_redirections_type', true));
2267
-
2268
- array_push($settings['redirect_url'], get_term_meta($term->term_id, '_seopress_redirections_value', true));
2269
-
2270
- array_push($settings['target_kw'], get_term_meta($term->term_id, '_seopress_analysis_target_kw', true));
2271
-
2272
- $csv[] = array_merge(
2273
- $settings['id'],
2274
- $settings['post_title'],
2275
- $settings['url'],
2276
- $settings['meta_title'],
2277
- $settings['meta_desc'],
2278
- $settings['fb_title'],
2279
- $settings['fb_desc'],
2280
- $settings['fb_img'],
2281
- $settings['tw_title'],
2282
- $settings['tw_desc'],
2283
- $settings['tw_img'],
2284
- $settings['noindex'],
2285
- $settings['nofollow'],
2286
- $settings['noodp'],
2287
- $settings['noimageindex'],
2288
- $settings['noarchive'],
2289
- $settings['nosnippet'],
2290
- $settings['canonical_url'],
2291
- $settings['redirect_active'],
2292
- $settings['redirect_type'],
2293
- $settings['redirect_url'],
2294
- $settings['target_kw']
2295
- );
2296
-
2297
- //Clean arrays
2298
- $settings['id'] = [];
2299
- $settings['post_title'] = [];
2300
- $settings['url'] = [];
2301
- $settings['meta_title'] = [];
2302
- $settings['meta_desc'] = [];
2303
- $settings['fb_title'] = [];
2304
- $settings['fb_desc'] = [];
2305
- $settings['fb_img'] = [];
2306
- $settings['tw_title'] = [];
2307
- $settings['tw_desc'] = [];
2308
- $settings['tw_img'] = [];
2309
- $settings['noindex'] = [];
2310
- $settings['nofollow'] = [];
2311
- $settings['noodp'] = [];
2312
- $settings['noimageindex'] = [];
2313
- $settings['noarchive'] = [];
2314
- $settings['nosnippet'] = [];
2315
- $settings['canonical_url'] = [];
2316
- $settings['redirect_active'] = [];
2317
- $settings['redirect_type'] = [];
2318
- $settings['redirect_url'] = [];
2319
- $settings['target_kw'] = [];
2320
- }
2321
- }
2322
- $offset += $increment;
2323
- $post_export = 'done';
2324
- update_option('seopress_metadata_csv', $csv);
2325
- }
2326
- } else {
2327
- $post_export = 'done';
2328
- $term_export = 'done';
2329
- }
2330
-
2331
- //Create download URL
2332
- if ('done' == $post_export && 'done' == $term_export) {
2333
- $args = array_merge($_POST, [
2334
- 'nonce' => wp_create_nonce('seopress_csv_batch_export_nonce'),
2335
- 'page' => 'seopress-import-export',
2336
- 'seopress_action' => 'seopress_download_batch_export',
2337
- ]);
2338
-
2339
- $download_url = add_query_arg($args, admin_url('admin.php'));
2340
-
2341
- $offset = 'done';
2342
- }
2343
-
2344
- //Return data to JSON
2345
- $data = [];
2346
- $data['offset'] = $offset;
2347
- $data['url'] = $download_url;
2348
- $data['post_export'] = $post_export;
2349
- $data['term_export'] = $term_export;
2350
- wp_send_json_success($data);
2351
-
2352
- exit();
2353
- }
2354
- }
2355
-
2356
- add_action('wp_ajax_seopress_metadata_export', 'seopress_metadata_export');
100
  $post_url = add_query_arg('no_admin_bar', 1, $post_url);
101
 
102
  $response = wp_remote_get($post_url, $args);
103
+ if (200 !== wp_remote_retrieve_response_code($response)) {
104
+ $post_url = get_permalink((int) $seopress_get_the_id);
105
+ $response = wp_remote_get($post_url, $args);
106
+ }
107
  } else {
108
  $response = wp_remote_get(get_preview_post_link((int) $seopress_get_the_id, ['no_admin_bar' => 1]), $args);
109
  }
132
  //Get post content (used for Words counter)
133
  $seopress_get_the_content = apply_filters('the_content', get_post_field('post_content', $seopress_get_the_id));
134
 
135
+ //Cornerstone compatibility
136
+ if (is_plugin_active('cornerstone/cornerstone.php')) {
137
  $seopress_get_the_content = get_post_field('post_content', $seopress_get_the_id);
138
  }
139
 
143
  $seopress_get_the_content = $seopress_get_the_content . get_post_meta($seopress_get_the_id, 'mfn-page-items-seo', true);
144
  }
145
 
146
+ //Themify compatibility
147
+ if (defined('THEMIFY_DIR')) {
148
+
149
+ global $ThemifyBuilder;
150
+ $builder_data = $ThemifyBuilder->get_builder_data( $seopress_get_the_id );
151
+ $plain_text = ThemifyBuilder_Data_Manager::_get_all_builder_text_content( $builder_data );
152
+ $plain_text = do_shortcode( $plain_text );
153
+
154
+ if ($plain_text !='') {
155
+ $seopress_get_the_content = $plain_text;
156
+ }
157
+ }
158
+
159
  //Add WC product excerpt
160
  if ('product' == $seopress_get_post_type) {
161
  $seopress_get_the_content = $seopress_get_the_content . get_the_excerpt($seopress_get_the_id);
163
 
164
  $seopress_get_the_content = apply_filters('seopress_content_analysis_content', $seopress_get_the_content, $seopress_get_the_id);
165
 
166
+ //Bricks compatibility
167
+ if (defined('BRICKS_DB_EDITOR_MODE') && ('bricks' == $theme->template || 'Bricks' == $theme->parent_theme)) {
168
+ $page_sections = get_post_meta($seopress_get_the_id, '_bricks_page_content', true);
169
+ $editor_mode = get_post_meta( $seopress_get_the_id, BRICKS_DB_EDITOR_MODE, true );
170
+
171
+
172
+ if ( is_array( $page_sections ) && $editor_mode !== 'wordpress' ) {
173
+ $seopress_get_the_content = Bricks\Frontend::render_sections( $page_sections, $seopress_get_the_id, 'content', true );
174
+ }
175
+ }
176
+
177
  //Get Target Keywords
178
  if (isset($_GET['seopress_analysis_target_kw']) && ! empty($_GET['seopress_analysis_target_kw'])) {
179
  $data['target_kws'] = esc_html(strtolower(stripslashes_deep($_GET['seopress_analysis_target_kw'])));
586
  }
587
  add_action('wp_ajax_seopress_hide_notices', 'seopress_hide_notices');
588
 
589
+ require_once __DIR__ . '/ajax-migrate/smart-crawl.php';
590
+ require_once __DIR__ . '/ajax-migrate/seopressor.php';
591
+ require_once __DIR__ . '/ajax-migrate/platinum.php';
592
+ require_once __DIR__ . '/ajax-migrate/wpseo.php';
593
+ require_once __DIR__ . '/ajax-migrate/premium-seo-pack.php';
594
+ require_once __DIR__ . '/ajax-migrate/wp-meta-seo.php';
595
+ require_once __DIR__ . '/ajax-migrate/seo-ultimate.php';
596
+ require_once __DIR__ . '/ajax-migrate/squirrly.php';
597
+ require_once __DIR__ . '/ajax-migrate/seo-framework.php';
598
+ require_once __DIR__ . '/ajax-migrate/aio.php';
599
+ require_once __DIR__ . '/ajax-migrate/yoast.php';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
inc/admin/page-builders/elementor/assets/css/dark-mode.css ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ body .seopress-text-letter-counter .wrap-seopress-counters,
2
+ body .seopress-styles .wrap-seopress-counters {
3
+ background: #34383c;
4
+ }
5
+ body .seopress-text-letter-counter .sp-progress,
6
+ body .seopress-setup .sp-progress,
7
+ body .seopress-styles .sp-progress {
8
+ background: #34383c;
9
+ }
10
+ body .google-snippet-preview .wrap-snippet {
11
+ padding: 5px;
12
+ background: #fff;
13
+ width: 100%;
14
+ }
15
+ body .elementor-control-field.google-snippet-box .google-snippet-preview {
16
+ display: block;
17
+ width: 100%;
18
+ }
19
+ body .analysis-score p > span {
20
+ color: #fff;
21
+ }
22
+ body
23
+ .elementor-control-field.seopress-content-analyses
24
+ .gr-analysis-title
25
+ button {
26
+ background: #6d7882;
27
+ color: #fff;
28
+ }
29
+ body .elementor-control-field.seopress-content-analyses .gr-analysis-title {
30
+ border-top: 1px solid #3f4348;
31
+ }
32
+ body
33
+ .elementor-control-field.seopress-content-analyses
34
+ .gr-analysis-title
35
+ button:hover {
36
+ background: #34383c;
37
+ }
38
+ body .elementor-control-field.seopress-content-analyses h3,
39
+ body .elementor-control-field.seopress-content-analyses h4 {
40
+ color: #fff;
41
+ background: #3f4348;
42
+ }
43
+ body
44
+ .elementor-control-field.seopress-content-analyses
45
+ .gr-analysis-title
46
+ button:focus {
47
+ color: #fff;
48
+ }
inc/admin/page-builders/elementor/assets/css/social-preview.css CHANGED
@@ -7,14 +7,16 @@
7
  margin-top: -2px;
8
  }
9
 
10
- .elementor-control-field.facebook-snippet-box .facebook-snippet-text .snippet-meta {
 
 
11
  display: flex;
12
  overflow: hidden;
13
  max-height: 12px;
14
  }
15
 
16
- .elementor-control-field.facebook-snippet-box .fb-by,
17
- .elementor-control-field.facebook-snippet-box .snippet-fb-site-name,
18
  .elementor-control-field.facebook-snippet-box .snippet-fb-url {
19
  color: #606770;
20
  font-size: 10px;
@@ -53,7 +55,7 @@
53
  font-size: 10px;
54
  line-height: 14px;
55
  word-break: break-word;
56
- font-family: Helvetica,Arial,sans-serif;
57
  -webkit-box-orient: vertical;
58
  display: -webkit-box;
59
  text-overflow: ellipsis;
@@ -86,7 +88,7 @@
86
 
87
  .elementor-control-field.facebook-snippet-box img:after,
88
  .elementor-control-field.twitter-snippet-box img:after {
89
- content: '';
90
  position: absolute;
91
  width: 100%;
92
  height: 100%;
@@ -146,7 +148,7 @@
146
  color: #000;
147
  font-size: 10px;
148
  word-break: break-word;
149
- font-family: Helvetica,Arial,sans-serif;
150
  overflow: hidden;
151
  -webkit-box-orient: vertical;
152
  display: -webkit-box;
@@ -171,7 +173,7 @@
171
  }
172
 
173
  .elementor-control-field.google-snippet-box .google-snippet-preview {
174
- font-family: arial,sans-serif;
175
  word-break: break-all;
176
  }
177
 
@@ -180,19 +182,29 @@
180
  margin: 10px 0;
181
  }
182
 
183
- .elementor-control-field.google-snippet-box .google-snippet-preview.mobile-preview .wrap-snippet {
 
 
184
  margin: 0 0 10px 0;
185
- box-shadow: 0 1px 6px rgba(32,33,36,.28);
186
  border-radius: 8px;
187
  padding: 12px 16px;
 
188
  }
189
 
190
- .elementor-control-field.google-snippet-box .google-snippet-preview .wrap-snippet .wrap-m-icon-permalink,
191
- .elementor-control-field.google-snippet-box .google-snippet-preview.mobile-preview .snippet-permalink {
 
 
 
 
 
192
  display: none;
193
  }
194
 
195
- .elementor-control-field.google-snippet-box .google-snippet-preview .snippet-permalink {
 
 
196
  color: #006621;
197
  font-size: 14px;
198
  font-style: normal;
@@ -203,7 +215,9 @@
203
  white-space: nowrap;
204
  }
205
 
206
- .elementor-control-field.google-snippet-box .google-snippet-preview.mobile-preview .wrap-m-icon-permalink {
 
 
207
  overflow: hidden;
208
  text-overflow: ellipsis;
209
  white-space: nowrap;
@@ -211,19 +225,25 @@
211
  display: flex;
212
  }
213
 
214
- .elementor-control-field.google-snippet-box .google-snippet-preview.mobile-preview .snippet-favicon {
 
 
215
  margin-right: 12px;
216
  vertical-align: middle;
217
  }
218
 
219
-
220
- .elementor-control-field.google-snippet-box .google-snippet-preview.mobile-preview .snippet-favicon img {
 
 
221
  width: 16px;
222
  height: 16px;
223
  max-width: inherit;
224
  }
225
 
226
- .elementor-control-field.google-snippet-box .google-snippet-preview .snippet-permalink {
 
 
227
  color: #006621;
228
  font-size: 14px;
229
  font-style: normal;
@@ -234,26 +254,53 @@
234
  white-space: nowrap;
235
  }
236
 
237
- .elementor-control-field.google-snippet-box .google-snippet-preview.mobile-preview .wrap-m-icon-permalink .snippet-permalink {
 
 
 
238
  display: block;
239
  color: #3c4043;
240
  font-size: 12px;
241
  }
242
 
243
- .elementor-control-field.google-snippet-box .google-snippet-preview .snippet-title, .elementor-control-field.google-snippet-box .google-snippet-preview .snippet-title-custom, .elementor-control-field.google-snippet-box .google-snippet-preview .snippet-title-default {
 
 
 
 
 
 
 
 
244
  color: #1a0dab;
245
  font-size: 18px;
246
  font-weight: 400;
247
  line-height: 21.6px;
248
  }
249
 
250
- .elementor-control-field.google-snippet-box .google-snippet-preview.mobile-preview .snippet-title, .elementor-control-field.google-snippet-box .google-snippet-preview.mobile-preview .snippet-title-custom, .elementor-control-field.google-snippet-box .google-snippet-preview.mobile-preview .snippet-title-default {
 
 
 
 
 
 
 
 
251
  font-size: 16px;
252
  line-height: 20px;
253
  margin-bottom: 12px;
254
  }
255
 
256
- .elementor-control-field.google-snippet-box .google-snippet-preview .snippet-description, .elementor-control-field.google-snippet-box .google-snippet-preview .snippet-description-custom, .elementor-control-field.google-snippet-box .google-snippet-preview .snippet-description-default {
 
 
 
 
 
 
 
 
257
  color: #545454;
258
  font-size: 14px;
259
  font-weight: 400;
@@ -261,7 +308,15 @@
261
  display: inline;
262
  }
263
 
264
- .elementor-control-field.google-snippet-box .google-snippet-preview.mobile-preview .snippet-description, .elementor-control-field.google-snippet-box .google-snippet-preview.mobile-preview .snippet-description-custom, .elementor-control-field.google-snippet-box .google-snippet-preview.mobile-preview .snippet-description-default {
 
 
 
 
 
 
 
 
265
  color: #3c4043;
266
  font-size: 14px;
267
  line-height: 20px;
@@ -272,8 +327,7 @@
272
  align-items: center;
273
  }
274
 
275
-
276
- .elementor-control-field.google-snippet-box input.toggle+label {
277
  display: inline-block;
278
  position: relative;
279
  box-shadow: inset 0 0 0 1px #d5d5d5;
@@ -290,11 +344,11 @@
290
  position: relative;
291
  }
292
 
293
- .elementor-control-field.google-snippet-box input.toggle+label {
294
  margin: 0;
295
  }
296
 
297
- .elementor-control-field.google-snippet-box input.toggle+label {
298
  display: inline-block;
299
  position: relative;
300
  box-shadow: inset 0 0 0 1px #d5d5d5;
@@ -306,12 +360,14 @@
306
  cursor: pointer;
307
  }
308
 
309
- .elementor-control-field.google-snippet-box input.toggle[data-toggle='1']+label:before {
 
 
310
  width: 40px;
311
  background: #3197d3;
312
  }
313
 
314
- .elementor-control-field.google-snippet-box input.toggle+label:before {
315
  content: "";
316
  position: absolute;
317
  display: block;
@@ -320,13 +376,13 @@
320
  top: 0;
321
  left: 0;
322
  border-radius: 15px;
323
- background: rgba(19,191,17,0);
324
- -moz-transition: .25s ease-in-out;
325
- -webkit-transition: .25s ease-in-out;
326
- transition: .25s ease-in-out;
327
  }
328
 
329
- .elementor-control-field.google-snippet-box input.toggle+label:after {
330
  content: "";
331
  position: absolute;
332
  display: block;
@@ -336,22 +392,26 @@
336
  left: 0;
337
  border-radius: 15px;
338
  background: #fff;
339
- box-shadow: inset 0 0 0 1px rgba(0,0,0,.2), 0 2px 4px rgba(0,0,0,.2);
340
- -moz-transition: .25s ease-in-out;
341
- -webkit-transition: .25s ease-in-out;
342
- transition: .25s ease-in-out;
343
  }
344
 
345
- .elementor-control-field.google-snippet-box input.toggle[data-toggle='1']+label:after {
 
 
346
  left: 20px;
347
- box-shadow: inset 0 0 0 1px #3197d3, 0 2px 4px rgba(0,0,0,.2);
348
  }
349
 
350
- .notice, div.error, div.updated {
 
 
351
  background: #fff;
352
  border: 1px solid #ccd0d4;
353
  border-left-width: 4px;
354
- box-shadow: 0 1px 1px rgba(0,0,0,.04);
355
  margin: 5px 15px 2px;
356
  padding: 1px 12px;
357
  }
@@ -368,7 +428,8 @@
368
  width: 100%;
369
  }
370
 
371
- .notice-error, div.error {
 
372
  border-left-color: #dc3232;
373
  }
374
 
@@ -377,7 +438,7 @@
377
  width: 100%;
378
  }
379
 
380
- .facebook-snippet-box .notice span,
381
  .twitter-snippet-box .notice span {
382
  font-weight: 700;
383
- }
7
  margin-top: -2px;
8
  }
9
 
10
+ .elementor-control-field.facebook-snippet-box
11
+ .facebook-snippet-text
12
+ .snippet-meta {
13
  display: flex;
14
  overflow: hidden;
15
  max-height: 12px;
16
  }
17
 
18
+ .elementor-control-field.facebook-snippet-box .fb-by,
19
+ .elementor-control-field.facebook-snippet-box .snippet-fb-site-name,
20
  .elementor-control-field.facebook-snippet-box .snippet-fb-url {
21
  color: #606770;
22
  font-size: 10px;
55
  font-size: 10px;
56
  line-height: 14px;
57
  word-break: break-word;
58
+ font-family: Helvetica, Arial, sans-serif;
59
  -webkit-box-orient: vertical;
60
  display: -webkit-box;
61
  text-overflow: ellipsis;
88
 
89
  .elementor-control-field.facebook-snippet-box img:after,
90
  .elementor-control-field.twitter-snippet-box img:after {
91
+ content: "";
92
  position: absolute;
93
  width: 100%;
94
  height: 100%;
148
  color: #000;
149
  font-size: 10px;
150
  word-break: break-word;
151
+ font-family: Helvetica, Arial, sans-serif;
152
  overflow: hidden;
153
  -webkit-box-orient: vertical;
154
  display: -webkit-box;
173
  }
174
 
175
  .elementor-control-field.google-snippet-box .google-snippet-preview {
176
+ font-family: arial, sans-serif;
177
  word-break: break-all;
178
  }
179
 
182
  margin: 10px 0;
183
  }
184
 
185
+ .elementor-control-field.google-snippet-box
186
+ .google-snippet-preview.mobile-preview
187
+ .wrap-snippet {
188
  margin: 0 0 10px 0;
189
+ box-shadow: 0 1px 6px rgba(32, 33, 36, 0.28);
190
  border-radius: 8px;
191
  padding: 12px 16px;
192
+ background: #fff;
193
  }
194
 
195
+ .elementor-control-field.google-snippet-box
196
+ .google-snippet-preview
197
+ .wrap-snippet
198
+ .wrap-m-icon-permalink,
199
+ .elementor-control-field.google-snippet-box
200
+ .google-snippet-preview.mobile-preview
201
+ .snippet-permalink {
202
  display: none;
203
  }
204
 
205
+ .elementor-control-field.google-snippet-box
206
+ .google-snippet-preview
207
+ .snippet-permalink {
208
  color: #006621;
209
  font-size: 14px;
210
  font-style: normal;
215
  white-space: nowrap;
216
  }
217
 
218
+ .elementor-control-field.google-snippet-box
219
+ .google-snippet-preview.mobile-preview
220
+ .wrap-m-icon-permalink {
221
  overflow: hidden;
222
  text-overflow: ellipsis;
223
  white-space: nowrap;
225
  display: flex;
226
  }
227
 
228
+ .elementor-control-field.google-snippet-box
229
+ .google-snippet-preview.mobile-preview
230
+ .snippet-favicon {
231
  margin-right: 12px;
232
  vertical-align: middle;
233
  }
234
 
235
+ .elementor-control-field.google-snippet-box
236
+ .google-snippet-preview.mobile-preview
237
+ .snippet-favicon
238
+ img {
239
  width: 16px;
240
  height: 16px;
241
  max-width: inherit;
242
  }
243
 
244
+ .elementor-control-field.google-snippet-box
245
+ .google-snippet-preview
246
+ .snippet-permalink {
247
  color: #006621;
248
  font-size: 14px;
249
  font-style: normal;
254
  white-space: nowrap;
255
  }
256
 
257
+ .elementor-control-field.google-snippet-box
258
+ .google-snippet-preview.mobile-preview
259
+ .wrap-m-icon-permalink
260
+ .snippet-permalink {
261
  display: block;
262
  color: #3c4043;
263
  font-size: 12px;
264
  }
265
 
266
+ .elementor-control-field.google-snippet-box
267
+ .google-snippet-preview
268
+ .snippet-title,
269
+ .elementor-control-field.google-snippet-box
270
+ .google-snippet-preview
271
+ .snippet-title-custom,
272
+ .elementor-control-field.google-snippet-box
273
+ .google-snippet-preview
274
+ .snippet-title-default {
275
  color: #1a0dab;
276
  font-size: 18px;
277
  font-weight: 400;
278
  line-height: 21.6px;
279
  }
280
 
281
+ .elementor-control-field.google-snippet-box
282
+ .google-snippet-preview.mobile-preview
283
+ .snippet-title,
284
+ .elementor-control-field.google-snippet-box
285
+ .google-snippet-preview.mobile-preview
286
+ .snippet-title-custom,
287
+ .elementor-control-field.google-snippet-box
288
+ .google-snippet-preview.mobile-preview
289
+ .snippet-title-default {
290
  font-size: 16px;
291
  line-height: 20px;
292
  margin-bottom: 12px;
293
  }
294
 
295
+ .elementor-control-field.google-snippet-box
296
+ .google-snippet-preview
297
+ .snippet-description,
298
+ .elementor-control-field.google-snippet-box
299
+ .google-snippet-preview
300
+ .snippet-description-custom,
301
+ .elementor-control-field.google-snippet-box
302
+ .google-snippet-preview
303
+ .snippet-description-default {
304
  color: #545454;
305
  font-size: 14px;
306
  font-weight: 400;
308
  display: inline;
309
  }
310
 
311
+ .elementor-control-field.google-snippet-box
312
+ .google-snippet-preview.mobile-preview
313
+ .snippet-description,
314
+ .elementor-control-field.google-snippet-box
315
+ .google-snippet-preview.mobile-preview
316
+ .snippet-description-custom,
317
+ .elementor-control-field.google-snippet-box
318
+ .google-snippet-preview.mobile-preview
319
+ .snippet-description-default {
320
  color: #3c4043;
321
  font-size: 14px;
322
  line-height: 20px;
327
  align-items: center;
328
  }
329
 
330
+ .elementor-control-field.google-snippet-box input.toggle + label {
 
331
  display: inline-block;
332
  position: relative;
333
  box-shadow: inset 0 0 0 1px #d5d5d5;
344
  position: relative;
345
  }
346
 
347
+ .elementor-control-field.google-snippet-box input.toggle + label {
348
  margin: 0;
349
  }
350
 
351
+ .elementor-control-field.google-snippet-box input.toggle + label {
352
  display: inline-block;
353
  position: relative;
354
  box-shadow: inset 0 0 0 1px #d5d5d5;
360
  cursor: pointer;
361
  }
362
 
363
+ .elementor-control-field.google-snippet-box
364
+ input.toggle[data-toggle="1"]
365
+ + label:before {
366
  width: 40px;
367
  background: #3197d3;
368
  }
369
 
370
+ .elementor-control-field.google-snippet-box input.toggle + label:before {
371
  content: "";
372
  position: absolute;
373
  display: block;
376
  top: 0;
377
  left: 0;
378
  border-radius: 15px;
379
+ background: rgba(19, 191, 17, 0);
380
+ -moz-transition: 0.25s ease-in-out;
381
+ -webkit-transition: 0.25s ease-in-out;
382
+ transition: 0.25s ease-in-out;
383
  }
384
 
385
+ .elementor-control-field.google-snippet-box input.toggle + label:after {
386
  content: "";
387
  position: absolute;
388
  display: block;
392
  left: 0;
393
  border-radius: 15px;
394
  background: #fff;
395
+ box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2), 0 2px 4px rgba(0, 0, 0, 0.2);
396
+ -moz-transition: 0.25s ease-in-out;
397
+ -webkit-transition: 0.25s ease-in-out;
398
+ transition: 0.25s ease-in-out;
399
  }
400
 
401
+ .elementor-control-field.google-snippet-box
402
+ input.toggle[data-toggle="1"]
403
+ + label:after {
404
  left: 20px;
405
+ box-shadow: inset 0 0 0 1px #3197d3, 0 2px 4px rgba(0, 0, 0, 0.2);
406
  }
407
 
408
+ .notice,
409
+ div.error,
410
+ div.updated {
411
  background: #fff;
412
  border: 1px solid #ccd0d4;
413
  border-left-width: 4px;
414
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
415
  margin: 5px 15px 2px;
416
  padding: 1px 12px;
417
  }
428
  width: 100%;
429
  }
430
 
431
+ .notice-error,
432
+ div.error {
433
  border-left-color: #dc3232;
434
  }
435
 
438
  width: 100%;
439
  }
440
 
441
+ .facebook-snippet-box .notice span,
442
  .twitter-snippet-box .notice span {
443
  font-weight: 700;
444
+ }
inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php CHANGED
@@ -19,7 +19,7 @@ class Document_Settings_Section {
19
  add_action( 'seopress/page-builders/elementor/save_meta', [ $this, 'on_seopress_meta_save' ], 99 );
20
  add_action( 'elementor/editor/before_enqueue_scripts', [ $this, 'register_elements_assets'], 9999 );
21
  }
22
-
23
  public function register_elements_assets() {
24
  wp_register_script(
25
  'seopress-elementor-base-script',
@@ -29,8 +29,22 @@ class Document_Settings_Section {
29
  true
30
  );
31
 
32
- global $post;
33
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34
  $term = '';
35
  $origin = '';
36
  $post_type = '';
@@ -62,15 +76,15 @@ class Document_Settings_Section {
62
  'keywords' => $keywords,
63
  'is_elementor' => $is_elementor
64
  );
65
-
66
  wp_localize_script( 'seopress-elementor-base-script', 'seopressElementorBase', $seopress_real_preview );
67
  }
68
 
69
  /**
70
  * Add WP SeoPress section under document settings
71
- *
72
  * @param \Elementor\Core\Base\Document $document
73
- *
74
  * @return void
75
  */
76
  public function add_wp_seopress_section_to_document_settings( \Elementor\Core\Base\Document $document ) {
@@ -82,13 +96,13 @@ class Document_Settings_Section {
82
  $this->_add_redirection_section( $document, $post_id );
83
  $this->_add_content_analysis_section( $document, $post_id );
84
  }
85
-
86
  /**
87
  * Add title section
88
  *
89
  * @param \Elementor\Core\Base\Document $document
90
  * @param int $post_id
91
- *
92
  * @return void
93
  */
94
  private function _add_title_section( $document, $post_id ) {
@@ -107,7 +121,7 @@ class Document_Settings_Section {
107
 
108
  $desc = $s_desc ? $s_desc : $original_desc;
109
  $title = ! empty( $s_title ) ? $s_title : get_the_title( $post_id );
110
-
111
  $document->add_control(
112
  '_seopress_titles_title',
113
  [
@@ -178,7 +192,7 @@ class Document_Settings_Section {
178
  $robots_canonical = get_post_meta( $post_id, '_seopress_robots_canonical', true );
179
  $robots_primary_cat = get_post_meta($post_id,'_seopress_robots_primary_cat',true);
180
  $robots_breadcrumbs = get_post_meta($post_id,'_seopress_robots_breadcrumbs',true);
181
-
182
  $document->add_control(
183
  '_seopress_robots_index',
184
  [
@@ -211,7 +225,7 @@ class Document_Settings_Section {
211
  'default' => 'yes' === $robots_odp ? 'yes' : ''
212
  ]
213
  );
214
-
215
  $document->add_control(
216
  '_seopress_robots_imageindex',
217
  [
@@ -267,7 +281,7 @@ class Document_Settings_Section {
267
 
268
  if (!empty($cats)) {
269
  $options = [];
270
-
271
  foreach ($cats as $category) {
272
  $options[$category->term_id] = $category->name;
273
  }
@@ -283,7 +297,7 @@ class Document_Settings_Section {
283
  'type' => \Elementor\Controls_Manager::SELECT,
284
  'label_block' => true,
285
  'separator' => 'none',
286
- 'options' =>
287
  $options
288
  ,
289
  'default' => $robots_primary_cat ? (int) $robots_primary_cat : 'none'
@@ -666,7 +680,7 @@ class Document_Settings_Section {
666
  },
667
  ARRAY_FILTER_USE_KEY
668
  );
669
-
670
  if ( empty( $seopress_meta ) ) {
671
  return;
672
  }
@@ -681,7 +695,7 @@ class Document_Settings_Section {
681
 
682
  $page_settings = get_metadata( 'post', $post_id, \Elementor\Core\Settings\Page\Manager::META_KEY, true);
683
  $settings = array_merge( $page_settings, $settings );
684
-
685
  remove_action( 'seopress/page-builders/elementor/save_meta', [ $this, 'on_seopress_meta_save' ], 99 );
686
  $page_settings_manager = \Elementor\Core\Settings\Manager::get_settings_managers( 'page' );
687
  $page_settings_manager->ajax_before_save_settings( $settings, $post_id );
@@ -693,4 +707,4 @@ class Document_Settings_Section {
693
  public function get_allowed_meta_keys() {
694
  return seopress_get_meta_helper()->get_meta_fields();
695
  }
696
- }
19
  add_action( 'seopress/page-builders/elementor/save_meta', [ $this, 'on_seopress_meta_save' ], 99 );
20
  add_action( 'elementor/editor/before_enqueue_scripts', [ $this, 'register_elements_assets'], 9999 );
21
  }
22
+
23
  public function register_elements_assets() {
24
  wp_register_script(
25
  'seopress-elementor-base-script',
29
  true
30
  );
31
 
32
+ if (get_current_user_id()) {
33
+ if (get_user_meta(get_current_user_id(), 'elementor_preferences', true )) {
34
+
35
+ $settings = get_user_meta(get_current_user_id(), 'elementor_preferences', true );
36
+
37
+ if (!empty($settings) && $settings['ui_theme'] =='dark') {
38
+ wp_enqueue_style(
39
+ 'sp-el-dark-mode-style',
40
+ SEOPRESS_ELEMENTOR_ADDON_URL . 'assets/css/dark-mode.css'
41
+ );
42
+ }
43
+ }
44
+ }
45
+
46
+ global $post;
47
+
48
  $term = '';
49
  $origin = '';
50
  $post_type = '';
76
  'keywords' => $keywords,
77
  'is_elementor' => $is_elementor
78
  );
79
+
80
  wp_localize_script( 'seopress-elementor-base-script', 'seopressElementorBase', $seopress_real_preview );
81
  }
82
 
83
  /**
84
  * Add WP SeoPress section under document settings
85
+ *
86
  * @param \Elementor\Core\Base\Document $document
87
+ *
88
  * @return void
89
  */
90
  public function add_wp_seopress_section_to_document_settings( \Elementor\Core\Base\Document $document ) {
96
  $this->_add_redirection_section( $document, $post_id );
97
  $this->_add_content_analysis_section( $document, $post_id );
98
  }
99
+
100
  /**
101
  * Add title section
102
  *
103
  * @param \Elementor\Core\Base\Document $document
104
  * @param int $post_id
105
+ *
106
  * @return void
107
  */
108
  private function _add_title_section( $document, $post_id ) {
121
 
122
  $desc = $s_desc ? $s_desc : $original_desc;
123
  $title = ! empty( $s_title ) ? $s_title : get_the_title( $post_id );
124
+
125
  $document->add_control(
126
  '_seopress_titles_title',
127
  [
192
  $robots_canonical = get_post_meta( $post_id, '_seopress_robots_canonical', true );
193
  $robots_primary_cat = get_post_meta($post_id,'_seopress_robots_primary_cat',true);
194
  $robots_breadcrumbs = get_post_meta($post_id,'_seopress_robots_breadcrumbs',true);
195
+
196
  $document->add_control(
197
  '_seopress_robots_index',
198
  [
225
  'default' => 'yes' === $robots_odp ? 'yes' : ''
226
  ]
227
  );
228
+
229
  $document->add_control(
230
  '_seopress_robots_imageindex',
231
  [
281
 
282
  if (!empty($cats)) {
283
  $options = [];
284
+
285
  foreach ($cats as $category) {
286
  $options[$category->term_id] = $category->name;
287
  }
297
  'type' => \Elementor\Controls_Manager::SELECT,
298
  'label_block' => true,
299
  'separator' => 'none',
300
+ 'options' =>
301
  $options
302
  ,
303
  'default' => $robots_primary_cat ? (int) $robots_primary_cat : 'none'
680
  },
681
  ARRAY_FILTER_USE_KEY
682
  );
683
+
684
  if ( empty( $seopress_meta ) ) {
685
  return;
686
  }
695
 
696
  $page_settings = get_metadata( 'post', $post_id, \Elementor\Core\Settings\Page\Manager::META_KEY, true);
697
  $settings = array_merge( $page_settings, $settings );
698
+
699
  remove_action( 'seopress/page-builders/elementor/save_meta', [ $this, 'on_seopress_meta_save' ], 99 );
700
  $page_settings_manager = \Elementor\Core\Settings\Manager::get_settings_managers( 'page' );
701
  $page_settings_manager->ajax_before_save_settings( $settings, $post_id );
707
  public function get_allowed_meta_keys() {
708
  return seopress_get_meta_helper()->get_meta_fields();
709
  }
710
+ }
inc/admin/page-builders/elementor/inc/class-register-controls.php CHANGED
@@ -30,4 +30,4 @@ class Register_Controls {
30
  $controls_manager->register_control( 'seopress-google-suggestions', new \WPSeoPressElementorAddon\Controls\Google_Suggestions_Control() );
31
  }
32
  }
33
- }
30
  $controls_manager->register_control( 'seopress-google-suggestions', new \WPSeoPressElementorAddon\Controls\Google_Suggestions_Control() );
31
  }
32
  }
33
+ }
inc/admin/page-builders/gutenberg/inc/blocks/faq-block/src/register-block.php CHANGED
@@ -88,7 +88,7 @@ function seopress_block_faq_render_frontend($attributes)
88
  $titleCloseTag = '</div>';
89
  break;
90
  }
91
-
92
  switch ($attributes['listStyle']) {
93
  case 'ul':
94
  $listStyleTag = '<ul class="wpseopress-faqs">';
@@ -111,7 +111,7 @@ function seopress_block_faq_render_frontend($attributes)
111
  }
112
 
113
  $entities = [];
114
-
115
  ob_start(); ?>
116
  <?php echo $listStyleTag; ?>
117
  <?php
@@ -130,9 +130,11 @@ function seopress_block_faq_render_frontend($attributes)
130
  ];
131
  $entities[] = $entity;
132
 
133
- $image = wp_get_attachment_image_src($faq['image'], $attributes['imageSize']);
 
 
134
  $image_url = '';
135
- if ($image) {
136
  $image_url = $image[0];
137
  } ?>
138
  <?php echo $listItemStyle; ?>
@@ -161,7 +163,7 @@ function seopress_block_faq_render_frontend($attributes)
161
  "mainEntity": '. json_encode($entities) . '
162
  }
163
  </script>';
164
-
165
  echo apply_filters('seopress_schemas_faq_html', $schema);
166
  } ?>
167
  <?php return ob_get_clean();
88
  $titleCloseTag = '</div>';
89
  break;
90
  }
91
+
92
  switch ($attributes['listStyle']) {
93
  case 'ul':
94
  $listStyleTag = '<ul class="wpseopress-faqs">';
111
  }
112
 
113
  $entities = [];
114
+
115
  ob_start(); ?>
116
  <?php echo $listStyleTag; ?>
117
  <?php
130
  ];
131
  $entities[] = $entity;
132
 
133
+ if ( isset( $faq['image'] ) && ! empty( $faq['image'] ) ) {
134
+ $image = wp_get_attachment_image_src( $faq['image'], $attributes['imageSize'] );
135
+ }
136
  $image_url = '';
137
+ if ( isset( $image ) && ! empty( $image ) ) {
138
  $image_url = $image[0];
139
  } ?>
140
  <?php echo $listItemStyle; ?>
163
  "mainEntity": '. json_encode($entities) . '
164
  }
165
  </script>';
166
+
167
  echo apply_filters('seopress_schemas_faq_html', $schema);
168
  } ?>
169
  <?php return ob_get_clean();
inc/functions/options-advanced-admin.php CHANGED
@@ -422,6 +422,26 @@ if ('' != seopress_advanced_appearance_title_col_option()
422
  }
423
  }
424
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
425
  //Remove Genesis SEO Metaboxe
426
  function seopress_advanced_appearance_genesis_seo_metaboxe_hook_option() {
427
  $seopress_advanced_appearance_genesis_seo_metaboxe_hook_option = get_option('seopress_advanced_option_name');
422
  }
423
  }
424
 
425
+ //Remove Content Analysis Metaboxe
426
+ function seopress_advanced_appearance_ca_metaboxe_hook_option() {
427
+ $seopress_advanced_appearance_ca_metaboxe_hook_option = get_option('seopress_advanced_option_name');
428
+ if ( ! empty($seopress_advanced_appearance_ca_metaboxe_hook_option)) {
429
+ foreach ($seopress_advanced_appearance_ca_metaboxe_hook_option as $key => $seopress_advanced_appearance_ca_metaboxe_hook_value) {
430
+ $options[$key] = $seopress_advanced_appearance_ca_metaboxe_hook_value;
431
+ }
432
+ if (isset($seopress_advanced_appearance_ca_metaboxe_hook_option['seopress_advanced_appearance_ca_metaboxe'])) {
433
+ return $seopress_advanced_appearance_ca_metaboxe_hook_option['seopress_advanced_appearance_ca_metaboxe'];
434
+ }
435
+ }
436
+ }
437
+
438
+ if ('' != seopress_advanced_appearance_ca_metaboxe_hook_option()) {
439
+ function seopress_advanced_appearance_ca_metaboxe_hook() {
440
+ add_filter('seopress_metaboxe_content_analysis', '__return_false');
441
+ }
442
+ add_action('init', 'seopress_advanced_appearance_ca_metaboxe_hook', 999);
443
+ }
444
+
445
  //Remove Genesis SEO Metaboxe
446
  function seopress_advanced_appearance_genesis_seo_metaboxe_hook_option() {
447
  $seopress_advanced_appearance_genesis_seo_metaboxe_hook_option = get_option('seopress_advanced_option_name');
inc/functions/options-import-export.php CHANGED
@@ -30,6 +30,7 @@ function seopress_export_settings() {
30
  $settings['seopress_bot_option_name'] = get_option('seopress_bot_option_name');
31
  $settings['seopress_toggle'] = get_option('seopress_toggle');
32
  $settings['seopress_google_analytics_lock_option_name'] = get_option('seopress_google_analytics_lock_option_name');
 
33
 
34
  ignore_user_abort(true);
35
  nocache_headers();
@@ -105,6 +106,9 @@ function seopress_import_settings() {
105
  if (false !== $settings['seopress_google_analytics_lock_option_name']) {
106
  update_option('seopress_google_analytics_lock_option_name', $settings['seopress_google_analytics_lock_option_name']);
107
  }
 
 
 
108
 
109
  wp_safe_redirect(admin_url('admin.php?page=seopress-import-export&success=true'));
110
  exit;
30
  $settings['seopress_bot_option_name'] = get_option('seopress_bot_option_name');
31
  $settings['seopress_toggle'] = get_option('seopress_toggle');
32
  $settings['seopress_google_analytics_lock_option_name'] = get_option('seopress_google_analytics_lock_option_name');
33
+ $settings['seopress_tools_option_name'] = get_option('seopress_tools_option_name');
34
 
35
  ignore_user_abort(true);
36
  nocache_headers();
106
  if (false !== $settings['seopress_google_analytics_lock_option_name']) {
107
  update_option('seopress_google_analytics_lock_option_name', $settings['seopress_google_analytics_lock_option_name']);
108
  }
109
+ if (false !== $settings['seopress_tools_option_name']) {
110
+ update_option('seopress_tools_option_name', $settings['seopress_tools_option_name']);
111
+ }
112
 
113
  wp_safe_redirect(admin_url('admin.php?page=seopress-import-export&success=true'));
114
  exit;
inc/functions/options-social.php CHANGED
@@ -346,8 +346,9 @@ function seopress_social_facebook_og_locale_hook() {
346
  if ('1' == seopress_social_facebook_og_option()) {
347
  $seopress_social_og_locale = '<meta property="og:locale" content="' . get_locale() . '" />';
348
 
349
- //Polylang
350
  include_once ABSPATH . 'wp-admin/includes/plugin.php';
 
 
351
  if (is_plugin_active('polylang/polylang.php') || is_plugin_active('polylang-pro/polylang.php')) {
352
  //@credits Polylang
353
  if (did_action('pll_init') && function_exists('PLL')) {
@@ -369,6 +370,33 @@ function seopress_social_facebook_og_locale_hook() {
369
  }
370
  }
371
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
372
  //Hook on post OG locale - 'seopress_social_og_locale'
373
  if (has_filter('seopress_social_og_locale')) {
374
  $seopress_social_og_locale = apply_filters('seopress_social_og_locale', $seopress_social_og_locale);
@@ -1123,7 +1151,6 @@ function seopress_social_twitter_title_hook() {
1123
  $seopress_social_twitter_card_title .= '<meta name="twitter:title" content="' . seopress_social_fb_title_term_option() . '" />';
1124
  } elseif (function_exists('seopress_titles_the_title') && '' != seopress_titles_the_title()) {
1125
  $seopress_social_twitter_card_title .= '<meta name="twitter:title" content="' . esc_attr(seopress_titles_the_title()) . '" />';
1126
- $seopress_social_twitter_card_title .= "\n";
1127
  } else {
1128
  $seopress_social_twitter_card_title .= '<meta name="twitter:title" content="' . single_term_title('', false) . ' - ' . get_bloginfo('name') . '" />';
1129
  }
346
  if ('1' == seopress_social_facebook_og_option()) {
347
  $seopress_social_og_locale = '<meta property="og:locale" content="' . get_locale() . '" />';
348
 
 
349
  include_once ABSPATH . 'wp-admin/includes/plugin.php';
350
+
351
+ //Polylang
352
  if (is_plugin_active('polylang/polylang.php') || is_plugin_active('polylang-pro/polylang.php')) {
353
  //@credits Polylang
354
  if (did_action('pll_init') && function_exists('PLL')) {
370
  }
371
  }
372
 
373
+ //WPML
374
+ if (is_plugin_active('sitepress-multilingual-cms/sitepress.php')) {
375
+
376
+ if (get_post_type() && get_the_ID()) {
377
+ $trid = apply_filters( 'wpml_element_trid', NULL, get_the_id(), 'post_'.get_post_type() );
378
+
379
+ if (isset($trid)) {
380
+ $translations = apply_filters( 'wpml_get_element_translations', NULL, $trid, 'post_'.get_post_type() );
381
+
382
+ if (!empty($translations)) {
383
+ foreach($translations as $lang => $object) {
384
+ $elid = $object->element_id;
385
+
386
+ if (isset($elid)) {
387
+ $my_post_language_details = apply_filters( 'wpml_post_language_details', NULL, $elid ) ;
388
+
389
+ if (!empty($my_post_language_details['locale']) && $my_post_language_details['different_language'] === true) {
390
+ $seopress_social_og_locale .= "\n";
391
+ $seopress_social_og_locale .= '<meta property="og:locale:alternate" content="' . $my_post_language_details['locale'] . '" />';
392
+ }
393
+ }
394
+ }
395
+ }
396
+ }
397
+ }
398
+ }
399
+
400
  //Hook on post OG locale - 'seopress_social_og_locale'
401
  if (has_filter('seopress_social_og_locale')) {
402
  $seopress_social_og_locale = apply_filters('seopress_social_og_locale', $seopress_social_og_locale);
1151
  $seopress_social_twitter_card_title .= '<meta name="twitter:title" content="' . seopress_social_fb_title_term_option() . '" />';
1152
  } elseif (function_exists('seopress_titles_the_title') && '' != seopress_titles_the_title()) {
1153
  $seopress_social_twitter_card_title .= '<meta name="twitter:title" content="' . esc_attr(seopress_titles_the_title()) . '" />';
 
1154
  } else {
1155
  $seopress_social_twitter_card_title .= '<meta name="twitter:title" content="' . single_term_title('', false) . ' - ' . get_bloginfo('name') . '" />';
1156
  }
inc/functions/options-titles-metas.php CHANGED
@@ -64,7 +64,7 @@ function seopress_titles_single_titles_option() {
64
  //Tax archives Titles
65
  function seopress_titles_tax_titles_option() {
66
  $queried_object = get_queried_object();
67
- $seopress_get_current_tax = $queried_object->taxonomy;
68
 
69
  $seopress_titles_tax_titles_option = get_option('seopress_titles_option_name');
70
  if ( ! empty($seopress_titles_tax_titles_option)) {
@@ -401,6 +401,21 @@ function seopress_titles_the_title() {
401
  }
402
  }
403
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
404
  //Default
405
  $seopress_titles_title_template = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $seopress_titles_the_title);
406
 
@@ -413,6 +428,11 @@ function seopress_titles_the_title() {
413
  if ( ! empty($matches2) && ! empty($seopress_titles_ct_template_variables_array) && ! empty($seopress_titles_ct_template_replace_array)) {
414
  $seopress_titles_title_template = str_replace($seopress_titles_ct_template_variables_array, $seopress_titles_ct_template_replace_array, $seopress_titles_title_template);
415
  }
 
 
 
 
 
416
  } else { //DEFAULT GLOBAL
417
  $seopress_titles_single_titles_option = esc_attr(seopress_titles_single_titles_option());
418
 
@@ -450,6 +470,21 @@ function seopress_titles_the_title() {
450
  }
451
  }
452
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
453
  //Default
454
  $seopress_titles_title_template = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $seopress_titles_single_titles_option);
455
 
@@ -462,6 +497,11 @@ function seopress_titles_the_title() {
462
  if ( ! empty($matches2) && ! empty($seopress_titles_ct_template_variables_array) && ! empty($seopress_titles_ct_template_replace_array)) {
463
  $seopress_titles_title_template = str_replace($seopress_titles_ct_template_variables_array, $seopress_titles_ct_template_replace_array, $seopress_titles_title_template);
464
  }
 
 
 
 
 
465
  }
466
  } elseif (is_post_type_archive() && seopress_titles_archive_titles_option()) { //IS POST TYPE ARCHIVE
467
  $seopress_titles_archive_titles_option = esc_attr(seopress_titles_archive_titles_option());
@@ -479,7 +519,30 @@ function seopress_titles_the_title() {
479
  } elseif (is_author() && seopress_titles_archives_author_title_option()) { //IS AUTHOR
480
  $seopress_titles_archives_author_title_option = esc_attr(seopress_titles_archives_author_title_option());
481
 
482
- $seopress_titles_title_template = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $seopress_titles_archives_author_title_option);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
483
  } elseif (is_date() && seopress_titles_archives_date_title_option()) { //IS DATE
484
  $seopress_titles_archives_date_title_option = esc_attr(seopress_titles_archives_date_title_option());
485
 
@@ -605,6 +668,21 @@ function seopress_titles_the_description_content() {
605
  }
606
  }
607
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
608
  //Default
609
  $seopress_titles_description_template = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $seopress_titles_the_description);
610
 
@@ -617,6 +695,11 @@ function seopress_titles_the_description_content() {
617
  if ( ! empty($matches2) && ! empty($seopress_titles_ct_template_variables_array) && ! empty($seopress_titles_ct_template_replace_array)) {
618
  $seopress_titles_description_template = str_replace($seopress_titles_ct_template_variables_array, $seopress_titles_ct_template_replace_array, $seopress_titles_description_template);
619
  }
 
 
 
 
 
620
  } elseif ('' != seopress_titles_single_desc_option()) { //IS GLOBAL
621
  $seopress_titles_the_description = esc_attr(seopress_titles_single_desc_option());
622
 
@@ -654,6 +737,21 @@ function seopress_titles_the_description_content() {
654
  }
655
  }
656
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
657
  //Default
658
  $seopress_titles_description_template = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $seopress_titles_the_description);
659
 
@@ -666,6 +764,11 @@ function seopress_titles_the_description_content() {
666
  if ( ! empty($matches2) && ! empty($seopress_titles_ct_template_variables_array) && ! empty($seopress_titles_ct_template_replace_array)) {
667
  $seopress_titles_description_template = str_replace($seopress_titles_ct_template_variables_array, $seopress_titles_ct_template_replace_array, $seopress_titles_description_template);
668
  }
 
 
 
 
 
669
  } else {
670
  setup_postdata($post);
671
  if ('' != $seopress_get_the_excerpt || '' != get_the_content()) { //DEFAULT EXCERPT OR THE CONTENT
@@ -688,9 +791,32 @@ function seopress_titles_the_description_content() {
688
  $seopress_titles_description_template = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $seopress_titles_the_description);
689
  }
690
  } elseif (is_author() && seopress_titles_archives_author_desc_option()) { //IS AUTHOR
691
- $seopress_titles_the_description = esc_attr(seopress_titles_archives_author_desc_option());
692
 
693
- $seopress_titles_description_template = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $seopress_titles_the_description);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
694
  } elseif (is_date() && seopress_titles_archives_date_desc_option()) { //IS DATE
695
  $seopress_titles_the_description = esc_attr(seopress_titles_archives_date_desc_option());
696
 
@@ -760,10 +886,10 @@ function seopress_titles_archive_cpt_noindex_option() {
760
  //Tax archive noindex
761
  function seopress_titles_tax_noindex_option() {
762
  $queried_object = get_queried_object();
763
- $seopress_get_current_tax = $queried_object->taxonomy;
764
 
765
- if ('yes' == get_term_meta(get_queried_object()->{'term_id'}, '_seopress_robots_index', true)) {
766
- return get_term_meta(get_queried_object()->{'term_id'}, '_seopress_robots_index', true);
767
  } else {
768
  $seopress_titles_tax_noindex_option = get_option('seopress_titles_option_name');
769
  if ( ! empty($seopress_titles_tax_noindex_option)) {
@@ -1402,8 +1528,11 @@ function seopress_titles_noimageindex_bypass() {
1402
  } elseif (is_singular() && seopress_titles_noimageindex_post_option()) {
1403
  return seopress_titles_noimageindex_post_option();
1404
  } elseif (is_tax() || is_category() || is_tag()) {
1405
- if ('yes' == get_term_meta(get_queried_object()->{'term_id'}, '_seopress_robots_imageindex', true)) {
1406
- return get_term_meta(get_queried_object()->{'term_id'}, '_seopress_robots_imageindex', true);
 
 
 
1407
  }
1408
  }
1409
  }
@@ -1468,9 +1597,13 @@ function seopress_titles_canonical_post_option() {
1468
  }
1469
 
1470
  function seopress_titles_canonical_term_option() {
1471
- $_seopress_robots_canonical = get_term_meta(get_queried_object()->{'term_id'}, '_seopress_robots_canonical', true);
1472
- if ('' != $_seopress_robots_canonical) {
1473
- return $_seopress_robots_canonical;
 
 
 
 
1474
  }
1475
  }
1476
 
@@ -1517,6 +1650,8 @@ if (function_exists('seopress_titles_noindex_bypass') && '1' != seopress_titles_
1517
  }
1518
  if (is_search()) {
1519
  $seopress_titles_canonical = '<link rel="canonical" href="' . htmlspecialchars(urldecode(get_home_url() . '/search/' . get_search_query())) . '" />';
 
 
1520
  } elseif (is_paged()) {
1521
  $seopress_titles_canonical = '<link rel="canonical" href="' . htmlspecialchars(urldecode($current_url)) . '" />';
1522
  } elseif (is_singular()) {
64
  //Tax archives Titles
65
  function seopress_titles_tax_titles_option() {
66
  $queried_object = get_queried_object();
67
+ $seopress_get_current_tax = null !== $queried_object ? $queried_object->taxonomy : '';
68
 
69
  $seopress_titles_tax_titles_option = get_option('seopress_titles_option_name');
70
  if ( ! empty($seopress_titles_tax_titles_option)) {
401
  }
402
  }
403
 
404
+ preg_match_all('/%%_ucf_(.*?)%%/', $seopress_titles_the_title, $matches3); //user meta
405
+
406
+ if ( ! empty($matches3)) {
407
+ $seopress_titles_ucf_template_variables_array = [];
408
+ $seopress_titles_ucf_template_replace_array = [];
409
+
410
+ foreach ($matches3['0'] as $key => $value) {
411
+ $seopress_titles_ucf_template_variables_array[] = $value;
412
+ }
413
+
414
+ foreach ($matches3['1'] as $key => $value) {
415
+ $seopress_titles_ucf_template_replace_array[] = esc_attr(get_user_meta(get_current_user_id(), $value, true));
416
+ }
417
+ }
418
+
419
  //Default
420
  $seopress_titles_title_template = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $seopress_titles_the_title);
421
 
428
  if ( ! empty($matches2) && ! empty($seopress_titles_ct_template_variables_array) && ! empty($seopress_titles_ct_template_replace_array)) {
429
  $seopress_titles_title_template = str_replace($seopress_titles_ct_template_variables_array, $seopress_titles_ct_template_replace_array, $seopress_titles_title_template);
430
  }
431
+
432
+ //User meta
433
+ if ( ! empty($matches3) && ! empty($seopress_titles_ucf_template_variables_array) && ! empty($seopress_titles_ucf_template_replace_array)) {
434
+ $seopress_titles_title_template = str_replace($seopress_titles_ucf_template_variables_array, $seopress_titles_ucf_template_replace_array, $seopress_titles_title_template);
435
+ }
436
  } else { //DEFAULT GLOBAL
437
  $seopress_titles_single_titles_option = esc_attr(seopress_titles_single_titles_option());
438
 
470
  }
471
  }
472
 
473
+ preg_match_all('/%%_ucf_(.*?)%%/', $seopress_titles_single_titles_option, $matches3); //user meta
474
+
475
+ if ( ! empty($matches3)) {
476
+ $seopress_titles_ucf_template_variables_array = [];
477
+ $seopress_titles_ucf_template_replace_array = [];
478
+
479
+ foreach ($matches3['0'] as $key => $value) {
480
+ $seopress_titles_ucf_template_variables_array[] = $value;
481
+ }
482
+
483
+ foreach ($matches3['1'] as $key => $value) {
484
+ $seopress_titles_ucf_template_replace_array[] = esc_attr(get_user_meta(get_current_user_id(), $value, true));
485
+ }
486
+ }
487
+
488
  //Default
489
  $seopress_titles_title_template = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $seopress_titles_single_titles_option);
490
 
497
  if ( ! empty($matches2) && ! empty($seopress_titles_ct_template_variables_array) && ! empty($seopress_titles_ct_template_replace_array)) {
498
  $seopress_titles_title_template = str_replace($seopress_titles_ct_template_variables_array, $seopress_titles_ct_template_replace_array, $seopress_titles_title_template);
499
  }
500
+
501
+ //User meta
502
+ if ( ! empty($matches3) && ! empty($seopress_titles_ucf_template_variables_array) && ! empty($seopress_titles_ucf_template_replace_array)) {
503
+ $seopress_titles_title_template = str_replace($seopress_titles_ucf_template_variables_array, $seopress_titles_ucf_template_replace_array, $seopress_titles_title_template);
504
+ }
505
  }
506
  } elseif (is_post_type_archive() && seopress_titles_archive_titles_option()) { //IS POST TYPE ARCHIVE
507
  $seopress_titles_archive_titles_option = esc_attr(seopress_titles_archive_titles_option());
519
  } elseif (is_author() && seopress_titles_archives_author_title_option()) { //IS AUTHOR
520
  $seopress_titles_archives_author_title_option = esc_attr(seopress_titles_archives_author_title_option());
521
 
522
+ preg_match_all('/%%_ucf_(.*?)%%/', $seopress_titles_archives_author_title_option, $matches); //custom fields
523
+
524
+ if ( ! empty($matches)) {
525
+ $seopress_titles_cf_template_variables_array = [];
526
+ $seopress_titles_cf_template_replace_array = [];
527
+
528
+ foreach ($matches['0'] as $key => $value) {
529
+ $seopress_titles_cf_template_variables_array[] = $value;
530
+ }
531
+
532
+ foreach ($matches['1'] as $key => $value) {
533
+ $seopress_titles_cf_template_replace_array[] = esc_attr(get_user_meta(get_current_user_id(), $value, true));
534
+ }
535
+ }
536
+
537
+ //Default
538
+ $seopress_titles_title_template = esc_attr(seopress_titles_archives_author_title_option());
539
+
540
+ //User meta
541
+ if ( ! empty($matches) && ! empty($seopress_titles_cf_template_variables_array) && ! empty($seopress_titles_cf_template_replace_array)) {
542
+ $seopress_titles_title_template = str_replace($seopress_titles_cf_template_variables_array, $seopress_titles_cf_template_replace_array, $seopress_titles_title_template);
543
+ }
544
+
545
+ $seopress_titles_title_template = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $seopress_titles_title_template);
546
  } elseif (is_date() && seopress_titles_archives_date_title_option()) { //IS DATE
547
  $seopress_titles_archives_date_title_option = esc_attr(seopress_titles_archives_date_title_option());
548
 
668
  }
669
  }
670
 
671
+ preg_match_all('/%%_ucf_(.*?)%%/', $seopress_titles_the_description, $matches3); //user meta
672
+
673
+ if ( ! empty($matches3)) {
674
+ $seopress_titles_ucf_template_variables_array = [];
675
+ $seopress_titles_ucf_template_replace_array = [];
676
+
677
+ foreach ($matches3['0'] as $key => $value) {
678
+ $seopress_titles_ucf_template_variables_array[] = $value;
679
+ }
680
+
681
+ foreach ($matches3['1'] as $key => $value) {
682
+ $seopress_titles_ucf_template_replace_array[] = esc_attr(get_user_meta(get_current_user_id(), $value, true));
683
+ }
684
+ }
685
+
686
  //Default
687
  $seopress_titles_description_template = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $seopress_titles_the_description);
688
 
695
  if ( ! empty($matches2) && ! empty($seopress_titles_ct_template_variables_array) && ! empty($seopress_titles_ct_template_replace_array)) {
696
  $seopress_titles_description_template = str_replace($seopress_titles_ct_template_variables_array, $seopress_titles_ct_template_replace_array, $seopress_titles_description_template);
697
  }
698
+
699
+ //User meta
700
+ if ( ! empty($matches3) && ! empty($seopress_titles_ucf_template_variables_array) && ! empty($seopress_titles_ucf_template_replace_array)) {
701
+ $seopress_titles_description_template = str_replace($seopress_titles_ucf_template_variables_array, $seopress_titles_ucf_template_replace_array, $seopress_titles_description_template);
702
+ }
703
  } elseif ('' != seopress_titles_single_desc_option()) { //IS GLOBAL
704
  $seopress_titles_the_description = esc_attr(seopress_titles_single_desc_option());
705
 
737
  }
738
  }
739
 
740
+ preg_match_all('/%%_ucf_(.*?)%%/', $seopress_titles_the_description, $matches3); //user meta
741
+
742
+ if ( ! empty($matches3)) {
743
+ $seopress_titles_ucf_template_variables_array = [];
744
+ $seopress_titles_ucf_template_replace_array = [];
745
+
746
+ foreach ($matches3['0'] as $key => $value) {
747
+ $seopress_titles_ucf_template_variables_array[] = $value;
748
+ }
749
+
750
+ foreach ($matches3['1'] as $key => $value) {
751
+ $seopress_titles_ucf_template_replace_array[] = esc_attr(get_user_meta(get_current_user_id(), $value, true));
752
+ }
753
+ }
754
+
755
  //Default
756
  $seopress_titles_description_template = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $seopress_titles_the_description);
757
 
764
  if ( ! empty($matches2) && ! empty($seopress_titles_ct_template_variables_array) && ! empty($seopress_titles_ct_template_replace_array)) {
765
  $seopress_titles_description_template = str_replace($seopress_titles_ct_template_variables_array, $seopress_titles_ct_template_replace_array, $seopress_titles_description_template);
766
  }
767
+
768
+ //User meta
769
+ if ( ! empty($matches3) && ! empty($seopress_titles_ucf_template_variables_array) && ! empty($seopress_titles_ucf_template_replace_array)) {
770
+ $seopress_titles_description_template = str_replace($seopress_titles_ucf_template_variables_array, $seopress_titles_ucf_template_replace_array, $seopress_titles_description_template);
771
+ }
772
  } else {
773
  setup_postdata($post);
774
  if ('' != $seopress_get_the_excerpt || '' != get_the_content()) { //DEFAULT EXCERPT OR THE CONTENT
791
  $seopress_titles_description_template = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $seopress_titles_the_description);
792
  }
793
  } elseif (is_author() && seopress_titles_archives_author_desc_option()) { //IS AUTHOR
794
+ $seopress_titles_archives_author_desc_option = esc_attr(seopress_titles_archives_author_desc_option());
795
 
796
+ preg_match_all('/%%_ucf_(.*?)%%/', $seopress_titles_archives_author_desc_option, $matches); //custom fields
797
+
798
+ if ( ! empty($matches)) {
799
+ $seopress_titles_cf_template_variables_array = [];
800
+ $seopress_titles_cf_template_replace_array = [];
801
+
802
+ foreach ($matches['0'] as $key => $value) {
803
+ $seopress_titles_cf_template_variables_array[] = $value;
804
+ }
805
+
806
+ foreach ($matches['1'] as $key => $value) {
807
+ $seopress_titles_cf_template_replace_array[] = esc_attr(get_user_meta(get_current_user_id(), $value, true));
808
+ }
809
+ }
810
+
811
+ //Default
812
+ $seopress_titles_description_template = esc_attr(seopress_titles_archives_author_desc_option());
813
+
814
+ //User meta
815
+ if ( ! empty($matches) && ! empty($seopress_titles_cf_template_variables_array) && ! empty($seopress_titles_cf_template_replace_array)) {
816
+ $seopress_titles_description_template = str_replace($seopress_titles_cf_template_variables_array, $seopress_titles_cf_template_replace_array, $seopress_titles_description_template);
817
+ }
818
+
819
+ $seopress_titles_description_template = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $seopress_titles_description_template);
820
  } elseif (is_date() && seopress_titles_archives_date_desc_option()) { //IS DATE
821
  $seopress_titles_the_description = esc_attr(seopress_titles_archives_date_desc_option());
822
 
886
  //Tax archive noindex
887
  function seopress_titles_tax_noindex_option() {
888
  $queried_object = get_queried_object();
889
+ $seopress_get_current_tax = null !== $queried_object ? $queried_object->taxonomy : '';
890
 
891
+ if (null !== $queried_object && 'yes' == get_term_meta($queried_object->term_id, '_seopress_robots_index', true)) {
892
+ return get_term_meta($queried_object->term_id, '_seopress_robots_index', true);
893
  } else {
894
  $seopress_titles_tax_noindex_option = get_option('seopress_titles_option_name');
895
  if ( ! empty($seopress_titles_tax_noindex_option)) {
1528
  } elseif (is_singular() && seopress_titles_noimageindex_post_option()) {
1529
  return seopress_titles_noimageindex_post_option();
1530
  } elseif (is_tax() || is_category() || is_tag()) {
1531
+ $queried_object = get_queried_object();
1532
+ if (null != $queried_object) {
1533
+ if ('yes' == get_term_meta($queried_object->term_id, '_seopress_robots_imageindex', true)) {
1534
+ return get_term_meta($queried_object->term_id, '_seopress_robots_imageindex', true);
1535
+ }
1536
  }
1537
  }
1538
  }
1597
  }
1598
 
1599
  function seopress_titles_canonical_term_option() {
1600
+ $queried_object = get_queried_object();
1601
+ $termId = $queried_object !== null ? $queried_object->term_id : '';
1602
+ if(!empty($termId)){
1603
+ $_seopress_robots_canonical = get_term_meta($termId, '_seopress_robots_canonical', true);
1604
+ if ('' != $_seopress_robots_canonical) {
1605
+ return $_seopress_robots_canonical;
1606
+ }
1607
  }
1608
  }
1609
 
1650
  }
1651
  if (is_search()) {
1652
  $seopress_titles_canonical = '<link rel="canonical" href="' . htmlspecialchars(urldecode(get_home_url() . '/search/' . get_search_query())) . '" />';
1653
+ } elseif (is_paged() && is_singular()) {//Paginated pages
1654
+ $seopress_titles_canonical = '<link rel="canonical" href="' . htmlspecialchars(urldecode(get_permalink())) . '" />';
1655
  } elseif (is_paged()) {
1656
  $seopress_titles_canonical = '<link rel="canonical" href="' . htmlspecialchars(urldecode($current_url)) . '" />';
1657
  } elseif (is_singular()) {
inc/functions/options.php CHANGED
@@ -651,10 +651,17 @@ if ('1' == seopress_get_toggle_option('advanced')) {
651
  function seopress_remove_category_base($termlink, $term, $taxonomy) {
652
  if ('category' == $taxonomy) {
653
  $category_base = get_option('category_base');
 
 
 
 
 
654
  if ('' == $category_base) {
655
  $category_base = 'category';
656
  }
657
 
 
 
658
  if ('/' == substr($category_base, 0, 1)) {
659
  $category_base = substr($category_base, 1);
660
  }
@@ -679,6 +686,12 @@ if ('1' == seopress_get_toggle_option('advanced')) {
679
 
680
  $category_base = get_option('category_base');
681
 
 
 
 
 
 
 
682
  if ('' != $category_base) {
683
  if (preg_match('/\/' . $category_base . '\//', $current_url)) {
684
  $new_url = str_replace('/' . $category_base, '', $current_url);
651
  function seopress_remove_category_base($termlink, $term, $taxonomy) {
652
  if ('category' == $taxonomy) {
653
  $category_base = get_option('category_base');
654
+
655
+ if (class_exists('Sitepress') && defined('ICL_LANGUAGE_CODE')) {
656
+ $category_base = apply_filters( 'wpml_translate_single_string', 'category', 'WordPress', 'URL category tax slug', ICL_LANGUAGE_CODE );
657
+ }
658
+
659
  if ('' == $category_base) {
660
  $category_base = 'category';
661
  }
662
 
663
+ $category_base = apply_filters('seopress_remove_category_base', $category_base );
664
+
665
  if ('/' == substr($category_base, 0, 1)) {
666
  $category_base = substr($category_base, 1);
667
  }
686
 
687
  $category_base = get_option('category_base');
688
 
689
+ if (class_exists('Sitepress') && defined('ICL_LANGUAGE_CODE')) {
690
+ $category_base = apply_filters( 'wpml_translate_single_string', 'category', 'WordPress', 'URL category tax slug', ICL_LANGUAGE_CODE );
691
+ }
692
+
693
+ $category_base = apply_filters('seopress_remove_category_base', $category_base );
694
+
695
  if ('' != $category_base) {
696
  if (preg_match('/\/' . $category_base . '\//', $current_url)) {
697
  $new_url = str_replace('/' . $category_base, '', $current_url);
inc/functions/variables/dynamic-variables.php CHANGED
@@ -10,10 +10,10 @@ global $wp_query;
10
  $seopress_titles_title_template ='';
11
  $seopress_titles_description_template ='';
12
  $seopress_paged ='1';
13
- $seopress_context_paged = '';
14
  $the_author_meta ='';
15
- $sep = '';
16
- $seopress_get_post_title = '';
17
  $seopress_excerpt ='';
18
  $seopress_content ='';
19
  $post_thumbnail_url ='';
@@ -25,7 +25,11 @@ $woo_single_cat_html ='';
25
  $woo_single_tag_html ='';
26
  $woo_single_price ='';
27
  $woo_single_price_exc_tax ='';
28
- $woo_single_sku = '';
 
 
 
 
29
  $author_bio ='';
30
  $target_kw ='';
31
 
@@ -73,7 +77,11 @@ if (isset($wp_query->max_num_pages)) {
73
 
74
  if (is_singular() && isset($post->post_author)) {
75
  $the_author_meta = esc_attr(get_the_author_meta('display_name', $post->post_author));
76
- $author_bio = esc_attr(stripslashes_deep(wp_filter_nohtml_kses(wp_strip_all_tags(strip_shortcodes(get_the_author_meta('description', $post->post_author))))));
 
 
 
 
77
  }
78
 
79
  if (is_singular() && get_post_meta( $post->ID, '_seopress_analysis_target_kw', true )) {
@@ -85,7 +93,11 @@ if (is_author() && is_int(get_queried_object_id())) {
85
 
86
  if (isset($user_info)) {
87
  $the_author_meta = esc_attr($user_info->display_name);
88
- $author_bio = esc_attr(stripslashes_deep(wp_filter_nohtml_kses(wp_strip_all_tags(strip_shortcodes($user_info->description)))));
 
 
 
 
89
  }
90
  }
91
 
@@ -243,6 +255,10 @@ $seopress_titles_template_variables_array = [
243
  '%%currentyear%%',
244
  '%%currentdate%%',
245
  '%%currenttime%%',
 
 
 
 
246
  '%%author_bio%%',
247
  '%%currentmonth_num%%',
248
  '%%target_keyword%%'
@@ -296,6 +312,10 @@ $seopress_titles_template_replace_array = [
296
  date('Y'),
297
  date_i18n(get_option('date_format')),
298
  current_time(get_option('time_format')),
 
 
 
 
299
  $author_bio,
300
  date_i18n('n'),
301
  $target_kw
@@ -323,6 +343,10 @@ $variables = [
323
  'woo_single_price' => $woo_single_price,
324
  'woo_single_price_exc_tax' => $woo_single_price_exc_tax,
325
  'woo_single_sku' => $woo_single_sku,
 
 
 
 
326
  'author_bio' => $author_bio,
327
  'seopress_get_the_excerpt' => $seopress_get_the_excerpt,
328
  'seopress_titles_template_variables_array' => $seopress_titles_template_variables_array,
10
  $seopress_titles_title_template ='';
11
  $seopress_titles_description_template ='';
12
  $seopress_paged ='1';
13
+ $seopress_context_paged ='';
14
  $the_author_meta ='';
15
+ $sep ='';
16
+ $seopress_get_post_title ='';
17
  $seopress_excerpt ='';
18
  $seopress_content ='';
19
  $post_thumbnail_url ='';
25
  $woo_single_tag_html ='';
26
  $woo_single_price ='';
27
  $woo_single_price_exc_tax ='';
28
+ $woo_single_sku ='';
29
+ $author_first_name ='';
30
+ $author_last_name ='';
31
+ $author_website ='';
32
+ $author_nickname ='';
33
  $author_bio ='';
34
  $target_kw ='';
35
 
77
 
78
  if (is_singular() && isset($post->post_author)) {
79
  $the_author_meta = esc_attr(get_the_author_meta('display_name', $post->post_author));
80
+ $author_first_name = esc_attr(get_the_author_meta('first_name', $post->post_author));
81
+ $author_last_name = esc_attr(get_the_author_meta('last_name', $post->post_author));
82
+ $author_website = esc_attr(get_the_author_meta('url', $post->post_author));
83
+ $author_nickname = esc_attr(get_the_author_meta('nickname', $post->post_author));
84
+ $author_bio = esc_attr(get_the_author_meta('description', $post->post_author));
85
  }
86
 
87
  if (is_singular() && get_post_meta( $post->ID, '_seopress_analysis_target_kw', true )) {
93
 
94
  if (isset($user_info)) {
95
  $the_author_meta = esc_attr($user_info->display_name);
96
+ $author_first_name = esc_attr($user_info->first_name);
97
+ $author_last_name = esc_attr($user_info->last_name);
98
+ $author_website = esc_attr($user_info->url);
99
+ $author_nickname = esc_attr($user_info->nickname);
100
+ $author_bio = esc_attr($user_info->description);
101
  }
102
  }
103
 
255
  '%%currentyear%%',
256
  '%%currentdate%%',
257
  '%%currenttime%%',
258
+ '%%author_first_name%%',
259
+ '%%author_last_name%%',
260
+ '%%author_website%%',
261
+ '%%author_nickname%%',
262
  '%%author_bio%%',
263
  '%%currentmonth_num%%',
264
  '%%target_keyword%%'
312
  date('Y'),
313
  date_i18n(get_option('date_format')),
314
  current_time(get_option('time_format')),
315
+ $author_first_name,
316
+ $author_last_name,
317
+ $author_website,
318
+ $author_nickname,
319
  $author_bio,
320
  date_i18n('n'),
321
  $target_kw
343
  'woo_single_price' => $woo_single_price,
344
  'woo_single_price_exc_tax' => $woo_single_price_exc_tax,
345
  'woo_single_sku' => $woo_single_sku,
346
+ 'author_first_name' => $author_first_name,
347
+ 'author_last_name' => $author_last_name,
348
+ 'author_website' => $author_website,
349
+ 'author_nickname' => $author_nickname,
350
  'author_bio' => $author_bio,
351
  'seopress_get_the_excerpt' => $seopress_get_the_excerpt,
352
  'seopress_titles_template_variables_array' => $seopress_titles_template_variables_array,
languages/wp-seopress.pot CHANGED
@@ -3,14 +3,14 @@ msgid ""
3
  msgstr ""
4
  "Project-Id-Version: SEOPress\n"
5
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/wp-cloudy\n"
6
- "POT-Creation-Date: 2021-02-12 10:54+0100\n"
7
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
8
  "Last-Translator: \n"
9
  "Language-Team: Benjamin DENIS <contact@seopress.org>\n"
10
  "MIME-Version: 1.0\n"
11
  "Content-Type: text/plain; charset=UTF-8\n"
12
  "Content-Transfer-Encoding: 8bit\n"
13
- "X-Generator: Poedit 2.4.2\n"
14
  "X-Poedit-KeywordsList: __;_e;_x;esc_attr_e;esc_attr__;esc_html__;esc_html_e\n"
15
  "X-Poedit-Basepath: ..\n"
16
  "X-Poedit-SourceCharset: UTF-8\n"
@@ -19,27 +19,27 @@ msgstr ""
19
  "X-Poedit-SearchPath-0: .\n"
20
 
21
  #: inc/admin/admin-dyn-variables-helper.php:6
22
- #: inc/admin/admin-metaboxes-form.php:136 inc/admin/admin.php:51
23
- #: inc/admin/admin.php:3016 inc/admin/admin.php:3119 inc/admin/admin.php:3243
24
- #: inc/admin/admin.php:3371 inc/admin/admin.php:3496 inc/admin/admin.php:3575
25
- #: inc/admin/admin.php:3640 inc/admin/admin.php:3705 inc/admin/admin.php:3749
26
  #: inc/admin/page-builders/elementor/inc/controls/class-text-letter-counter-control.php:67
27
  msgid "Site Title"
28
  msgstr ""
29
 
30
- #: inc/admin/admin-dyn-variables-helper.php:7 inc/admin/admin.php:52
31
- #: inc/admin/admin.php:3018 inc/admin/admin.php:3027
32
  msgid "Tagline"
33
  msgstr ""
34
 
35
  #: inc/admin/admin-dyn-variables-helper.php:8
36
- #: inc/admin/admin-metaboxes-form.php:134 inc/admin/admin.php:3115
37
- #: inc/admin/admin.php:3241 inc/admin/admin.php:4223
38
  #: inc/admin/page-builders/elementor/inc/controls/class-text-letter-counter-control.php:66
39
  msgid "Post Title"
40
  msgstr ""
41
 
42
- #: inc/admin/admin-dyn-variables-helper.php:9 inc/admin/admin.php:54
43
  msgid "Post excerpt"
44
  msgstr ""
45
 
@@ -47,7 +47,7 @@ msgstr ""
47
  msgid "Post content / product description"
48
  msgstr ""
49
 
50
- #: inc/admin/admin-dyn-variables-helper.php:11 inc/admin/admin.php:56
51
  msgid "Post thumbnail URL"
52
  msgstr ""
53
 
@@ -55,7 +55,7 @@ msgstr ""
55
  msgid "Post URL"
56
  msgstr ""
57
 
58
- #: inc/admin/admin-dyn-variables-helper.php:13 inc/admin/admin.php:58
59
  msgid "Post date"
60
  msgstr ""
61
 
@@ -63,48 +63,47 @@ msgstr ""
63
  msgid "Post modified date"
64
  msgstr ""
65
 
66
- #: inc/admin/admin-dyn-variables-helper.php:15 inc/admin/admin.php:60
67
- #: inc/admin/admin.php:3573
68
  msgid "Post author"
69
  msgstr ""
70
 
71
- #: inc/admin/admin-dyn-variables-helper.php:16 inc/admin/admin.php:61
72
  msgid "Post category"
73
  msgstr ""
74
 
75
- #: inc/admin/admin-dyn-variables-helper.php:17 inc/admin/admin.php:62
76
  msgid "Post tag"
77
  msgstr ""
78
 
79
- #: inc/admin/admin-dyn-variables-helper.php:18 inc/admin/admin.php:63
80
  msgid "Category title"
81
  msgstr ""
82
 
83
- #: inc/admin/admin-dyn-variables-helper.php:19 inc/admin/admin.php:64
84
  msgid "Category description"
85
  msgstr ""
86
 
87
- #: inc/admin/admin-dyn-variables-helper.php:20 inc/admin/admin.php:65
88
  msgid "Tag title"
89
  msgstr ""
90
 
91
- #: inc/admin/admin-dyn-variables-helper.php:21 inc/admin/admin.php:66
92
  msgid "Tag description"
93
  msgstr ""
94
 
95
- #: inc/admin/admin-dyn-variables-helper.php:22 inc/admin/admin.php:67
96
  msgid "Term title"
97
  msgstr ""
98
 
99
- #: inc/admin/admin-dyn-variables-helper.php:23 inc/admin/admin.php:68
100
  msgid "Term description"
101
  msgstr ""
102
 
103
- #: inc/admin/admin-dyn-variables-helper.php:24 inc/admin/admin.php:69
104
  msgid "Search keywords"
105
  msgstr ""
106
 
107
- #: inc/admin/admin-dyn-variables-helper.php:25 inc/admin/admin.php:70
108
  msgid "Current number page"
109
  msgstr ""
110
 
@@ -112,11 +111,11 @@ msgstr ""
112
  msgid "Page number with context"
113
  msgstr ""
114
 
115
- #: inc/admin/admin-dyn-variables-helper.php:27 inc/admin/admin.php:72
116
  msgid "Plural Post Type Archive name"
117
  msgstr ""
118
 
119
- #: inc/admin/admin-dyn-variables-helper.php:28 inc/admin/admin.php:73
120
  msgid "Archive title"
121
  msgstr ""
122
 
@@ -124,15 +123,15 @@ msgstr ""
124
  msgid "Archive date"
125
  msgstr ""
126
 
127
- #: inc/admin/admin-dyn-variables-helper.php:30 inc/admin/admin.php:75
128
  msgid "Day Archive date"
129
  msgstr ""
130
 
131
- #: inc/admin/admin-dyn-variables-helper.php:31 inc/admin/admin.php:76
132
  msgid "Month Archive title"
133
  msgstr ""
134
 
135
- #: inc/admin/admin-dyn-variables-helper.php:32 inc/admin/admin.php:77
136
  msgid "Year Archive title"
137
  msgstr ""
138
 
@@ -144,35 +143,35 @@ msgstr ""
144
  msgid "Custom term taxonomy from post, page or post type"
145
  msgstr ""
146
 
147
- #: inc/admin/admin-dyn-variables-helper.php:35 inc/admin/admin.php:80
148
  msgid "Single product category"
149
  msgstr ""
150
 
151
- #: inc/admin/admin-dyn-variables-helper.php:36 inc/admin/admin.php:81
152
  msgid "Single product tag"
153
  msgstr ""
154
 
155
- #: inc/admin/admin-dyn-variables-helper.php:37 inc/admin/admin.php:82
156
  msgid "Single product short description"
157
  msgstr ""
158
 
159
- #: inc/admin/admin-dyn-variables-helper.php:38 inc/admin/admin.php:83
160
  msgid "Single product price"
161
  msgstr ""
162
 
163
- #: inc/admin/admin-dyn-variables-helper.php:39 inc/admin/admin.php:84
164
  msgid "Single product price taxes excluded"
165
  msgstr ""
166
 
167
- #: inc/admin/admin-dyn-variables-helper.php:40 inc/admin/admin.php:85
168
  msgid "Single SKU product"
169
  msgstr ""
170
 
171
- #: inc/admin/admin-dyn-variables-helper.php:41 inc/admin/admin.php:86
172
  msgid "Current day"
173
  msgstr ""
174
 
175
- #: inc/admin/admin-dyn-variables-helper.php:42 inc/admin/admin.php:87
176
  msgid "Current month"
177
  msgstr ""
178
 
@@ -180,26 +179,50 @@ msgstr ""
180
  msgid "Current month in 3 letters"
181
  msgstr ""
182
 
183
- #: inc/admin/admin-dyn-variables-helper.php:44 inc/admin/admin.php:89
184
  msgid "Current year"
185
  msgstr ""
186
 
187
- #: inc/admin/admin-dyn-variables-helper.php:45 inc/admin/admin.php:90
188
  msgid "Current date"
189
  msgstr ""
190
 
191
- #: inc/admin/admin-dyn-variables-helper.php:46 inc/admin/admin.php:91
192
  msgid "Current time"
193
  msgstr ""
194
 
195
  #: inc/admin/admin-dyn-variables-helper.php:47
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
196
  msgid "Author biography"
197
  msgstr ""
198
 
199
- #: inc/admin/admin-dyn-variables-helper.php:48 inc/admin/admin.php:93
 
 
 
 
200
  msgid "Current month in digital format"
201
  msgstr ""
202
 
 
 
 
 
203
  #: inc/admin/admin-features-list.php:15
204
  msgid "Titles & metas"
205
  msgstr ""
@@ -230,8 +253,8 @@ msgstr ""
230
  #: inc/admin/admin-features-list.php:233 inc/admin/admin-features-list.php:252
231
  #: inc/admin/admin-features-list.php:271 inc/admin/admin-features-list.php:290
232
  #: inc/admin/admin-features-list.php:338 inc/admin/admin-features-list.php:356
233
- #: inc/admin/admin.php:147 inc/admin/admin.php:153 inc/admin/admin.php:176
234
- #: inc/admin/admin.php:182 inc/admin/admin.php:205 inc/admin/admin.php:211
235
  msgid "Read our guide"
236
  msgstr ""
237
 
@@ -239,7 +262,7 @@ msgstr ""
239
  msgid "Guide to manage your titles and meta descriptions - new window"
240
  msgstr ""
241
 
242
- #: inc/admin/admin-features-list.php:31 inc/admin/admin.php:38
243
  msgid "XML / Image / Video / HTML Sitemap"
244
  msgstr ""
245
 
@@ -252,7 +275,7 @@ msgid "Guide to enable your XML Sitemaps - new window"
252
  msgstr ""
253
 
254
  #: inc/admin/admin-features-list.php:47 inc/admin/admin-header.php:57
255
- #: inc/admin/admin.php:39 inc/admin/adminbar.php:137
256
  msgid "Social Networks"
257
  msgstr ""
258
 
@@ -265,7 +288,7 @@ msgid "Guide to enable Google Knowledge Graph - new window"
265
  msgstr ""
266
 
267
  #: inc/admin/admin-features-list.php:63 inc/admin/admin-header.php:63
268
- #: inc/admin/admin.php:40 inc/admin/adminbar.php:143
269
  msgid "Analytics"
270
  msgstr ""
271
 
@@ -278,8 +301,8 @@ msgid "Guide to getting started with Google Analytics - new window"
278
  msgstr ""
279
 
280
  #: inc/admin/admin-features-list.php:79 inc/admin/admin-header.php:69
281
- #: inc/admin/admin-metaboxes-form.php:68 inc/admin/admin.php:41
282
- #: inc/admin/admin.php:268 inc/admin/admin.php:591 inc/admin/adminbar.php:149
283
  msgid "Advanced"
284
  msgstr ""
285
 
@@ -289,7 +312,7 @@ msgstr ""
289
 
290
  #: inc/admin/admin-features-list.php:90 inc/admin/admin-header.php:25
291
  #: inc/admin/admin-header.php:77 inc/admin/adminbar.php:157
292
- #: src/Actions/Admin/ManageColumn.php:97
293
  msgid "Insights"
294
  msgstr ""
295
 
@@ -413,7 +436,7 @@ msgid "Create / manage your schemas"
413
  msgstr ""
414
 
415
  #: inc/admin/admin-features-list.php:260 inc/admin/admin-header.php:142
416
- #: inc/admin/admin.php:633 inc/admin/adminbar.php:200
417
  msgid "Redirections"
418
  msgstr ""
419
 
@@ -474,7 +497,7 @@ msgid "Configure default WordPress RSS."
474
  msgstr ""
475
 
476
  #: inc/admin/admin-features-list.php:330 inc/admin/admin-header.php:187
477
- #: inc/admin/admin.php:42 inc/admin/adminbar.php:164
478
  msgid "Tools"
479
  msgstr ""
480
 
@@ -487,7 +510,7 @@ msgid "Guide to Export/Import/Reset settings - new window"
487
  msgstr ""
488
 
489
  #: inc/admin/admin-features-list.php:348 inc/admin/admin-header.php:180
490
- #: inc/admin/admin-notifications-center.php:874 inc/admin/adminbar.php:179
491
  msgid "License"
492
  msgstr ""
493
 
@@ -539,7 +562,7 @@ msgstr ""
539
  msgid "SEOPress"
540
  msgstr ""
541
 
542
- #: inc/admin/admin-header.php:31 inc/admin/admin-notifications-center.php:904
543
  #: inc/admin/adminbar.php:185
544
  msgid "PRO"
545
  msgstr ""
@@ -548,12 +571,12 @@ msgstr ""
548
  msgid "FREE"
549
  msgstr ""
550
 
551
- #: inc/admin/admin-header.php:45 inc/admin/admin.php:37
552
  #: inc/admin/adminbar.php:125
553
  msgid "Titles & Metas"
554
  msgstr ""
555
 
556
- #: inc/admin/admin-header.php:51 inc/admin/admin.php:38
557
  #: inc/admin/adminbar.php:131
558
  msgid "XML / HTML Sitemap"
559
  msgstr ""
@@ -574,11 +597,11 @@ msgstr ""
574
  msgid "Send feedback"
575
  msgstr ""
576
 
577
- #: inc/admin/admin-header.php:219 seopress.php:1282
578
  msgid "Join our Facebook Community group"
579
  msgstr ""
580
 
581
- #: inc/admin/admin-header.php:223 seopress.php:1306
582
  msgid "Follow us on Twitter"
583
  msgstr ""
584
 
@@ -594,136 +617,135 @@ msgstr ""
594
  msgid "Support"
595
  msgstr ""
596
 
597
- #: inc/admin/admin-metaboxes-content-analysis-form.php:6
598
  msgid "Enter a few keywords for analysis to help you write optimized content."
599
  msgstr ""
600
 
601
- #: inc/admin/admin-metaboxes-content-analysis-form.php:9
602
  msgid "Did you know?"
603
  msgstr ""
604
 
605
- #: inc/admin/admin-metaboxes-content-analysis-form.php:9
606
  msgid ""
607
  "Writing content for your users is the most important thing! If it doesn‘t "
608
  "feel natural, your visitors will leave your site, Google will know it and "
609
  "your ranking will be affected."
610
  msgstr ""
611
 
612
- #: inc/admin/admin-metaboxes-content-analysis-form.php:13
613
- #: inc/admin/admin-metaboxes-content-analysis-form.php:14
614
- #: inc/admin/admin-metaboxes-content-analysis-form.php:16
615
- #: inc/admin/admin.php:681 inc/admin/admin.php:717
616
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:556
617
- #: inc/functions/options-advanced-admin.php:812
618
  msgid "Target keywords"
619
  msgstr ""
620
 
621
- #: inc/admin/admin-metaboxes-content-analysis-form.php:14
622
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:558
623
  msgid ""
624
  "Separate target keywords with commas. Do not use spaces after the commas, "
625
  "unless you want to include them"
626
  msgstr ""
627
 
628
- #: inc/admin/admin-metaboxes-content-analysis-form.php:16
629
  msgid "Enter your target keywords"
630
  msgstr ""
631
 
632
- #: inc/admin/admin-metaboxes-content-analysis-form.php:19
633
  msgid "Analyze my content"
634
  msgstr ""
635
 
636
- #: inc/admin/admin-metaboxes-content-analysis-form.php:21
637
  #: inc/admin/page-builders/elementor/inc/controls/class-content-analysis-control.php:43
638
  msgid "Refresh analysis"
639
  msgstr ""
640
 
641
- #: inc/admin/admin-metaboxes-content-analysis-form.php:25
642
  msgid "Track with Insights"
643
  msgstr ""
644
 
645
- #: inc/admin/admin-metaboxes-content-analysis-form.php:30
646
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:582
647
  msgid ""
648
  "To get the most accurate analysis, save your post first. We analyze all of "
649
  "your source code as a search engine would."
650
  msgstr ""
651
 
652
- #: inc/admin/admin-metaboxes-content-analysis-form.php:35
653
- #: inc/admin/admin-metaboxes-content-analysis-form.php:36
654
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:569
655
- #: inc/admin/page-builders/elementor/inc/controls/class-google-suggestions-control.php:49
656
  #: inc/admin/page-builders/elementor/inc/controls/class-google-suggestions-control.php:50
 
657
  msgid "Google suggestions"
658
  msgstr ""
659
 
660
- #: inc/admin/admin-metaboxes-content-analysis-form.php:36
661
- #: inc/admin/page-builders/elementor/inc/controls/class-google-suggestions-control.php:50
662
  msgid ""
663
  "Enter a keyword, or a phrase, to find the top 10 Google suggestions "
664
  "instantly. This is useful if you want to work with the long tail technique."
665
  msgstr ""
666
 
667
- #: inc/admin/admin-metaboxes-content-analysis-form.php:38
668
- #: inc/admin/page-builders/elementor/inc/controls/class-google-suggestions-control.php:51
669
  msgid "Get suggestions from Google"
670
  msgstr ""
671
 
672
- #: inc/admin/admin-metaboxes-content-analysis-form.php:40
673
- #: inc/admin/page-builders/elementor/inc/controls/class-google-suggestions-control.php:52
674
  msgid "Get suggestions!"
675
  msgstr ""
676
 
677
- #: inc/admin/admin-metaboxes-form.php:58 inc/admin/admin-metaboxes.php:172
678
- #: inc/admin/admin-metaboxes.php:175 inc/admin/admin.php:30
679
  #: inc/admin/adminbar.php:44
680
  #: inc/admin/page-builders/gutenberg/gutenberg-addon.php:36
681
- #: inc/functions/options-advanced-admin.php:794
682
  msgid "SEO"
683
  msgstr ""
684
 
685
- #: inc/admin/admin-metaboxes-form.php:67
686
  msgid "Titles settings"
687
  msgstr ""
688
 
689
- #: inc/admin/admin-metaboxes-form.php:69
690
  msgid "Social"
691
  msgstr ""
692
 
693
- #: inc/admin/admin-metaboxes-form.php:72
694
  msgid "Redirection"
695
  msgstr ""
696
 
697
- #: inc/admin/admin-metaboxes-form.php:78
698
  msgid "Google News"
699
  msgstr ""
700
 
701
- #: inc/admin/admin-metaboxes-form.php:85
702
  msgid "Video Sitemap"
703
  msgstr ""
704
 
705
- #: inc/admin/admin-metaboxes-form.php:108
706
  msgid ""
707
  "This is your <strong>Shop page</strong>. Go to <strong>SEO > Titles & Metas "
708
  "> Archives > Products</strong> "
709
  msgstr ""
710
 
711
- #: inc/admin/admin-metaboxes-form.php:108
712
  msgid "to edit your title and meta description"
713
  msgstr ""
714
 
715
- #: inc/admin/admin-metaboxes-form.php:115
716
- #: inc/admin/admin-metaboxes-form.php:118
717
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:114
718
  msgid "Title"
719
  msgstr ""
720
 
721
- #: inc/admin/admin-metaboxes-form.php:116 inc/admin/admin.php:657
722
- #: inc/admin/admin.php:693 src/Helpers/ContentAnalysis.php:48
723
  msgid "Meta title"
724
  msgstr ""
725
 
726
- #: inc/admin/admin-metaboxes-form.php:116
727
  msgid ""
728
  "Titles are critical to give users a quick insight into the content of a "
729
  "result and why it’s relevant to their query. It's often the primary piece of "
@@ -731,53 +753,56 @@ msgid ""
731
  "use high-quality titles on your web pages."
732
  msgstr ""
733
 
734
- #: inc/admin/admin-metaboxes-form.php:118
735
  msgid "Enter your title"
736
  msgstr ""
737
 
738
- #: inc/admin/admin-metaboxes-form.php:125
739
  #: inc/admin/page-builders/elementor/inc/controls/class-text-letter-counter-control.php:55
740
  msgid " / 568 pixels - "
741
  msgstr ""
742
 
743
- #: inc/admin/admin-metaboxes-form.php:127
744
- #: inc/admin/admin-metaboxes-form.php:157
745
  #: inc/admin/page-builders/elementor/inc/controls/class-text-letter-counter-control.php:61
746
  msgid " (maximum recommended limit)"
747
  msgstr ""
748
 
749
- #: inc/admin/admin-metaboxes-form.php:132 inc/admin/admin.php:3366
750
  msgid "Term Title"
751
  msgstr ""
752
 
753
  #. ID
754
- #: inc/admin/admin-metaboxes-form.php:137 inc/admin/admin-wizard.php:500
755
- #: inc/admin/admin.php:1117 inc/admin/admin.php:3004 inc/admin/admin.php:3017
756
- #: inc/admin/admin.php:3117 inc/admin/admin.php:3242 inc/admin/admin.php:3369
757
- #: inc/admin/admin.php:3494 inc/admin/admin.php:3574 inc/admin/admin.php:3639
758
- #: inc/admin/admin.php:3704 inc/admin/admin.php:3750
759
  #: inc/admin/page-builders/elementor/inc/controls/class-text-letter-counter-control.php:68
760
  msgid "Separator"
761
  msgstr ""
762
 
763
  #. ID
764
- #: inc/admin/admin-metaboxes-form.php:145
765
- #: inc/admin/admin-metaboxes-form.php:146
766
- #: inc/admin/admin-metaboxes-form.php:148 inc/admin/admin-wizard.php:299
767
- #: inc/admin/admin-wizard.php:319 inc/admin/admin-wizard.php:336
768
- #: inc/admin/admin-wizard.php:355 inc/admin/admin-wizard.php:374
769
- #: inc/admin/admin-wizard.php:392 inc/admin/admin-wizard.php:409
770
- #: inc/admin/admin-wizard.php:425 inc/admin/admin-wizard.php:444
771
- #: inc/admin/admin.php:660 inc/admin/admin.php:696 inc/admin/admin.php:796
772
- #: inc/admin/admin.php:818 inc/admin/admin.php:837 inc/admin/admin.php:858
773
- #: inc/admin/admin.php:879 inc/admin/admin.php:899 inc/admin/admin.php:918
774
- #: inc/admin/admin.php:936 inc/admin/admin.php:956 inc/admin/admin.php:1133
775
- #: inc/admin/admin.php:3024 inc/functions/options-advanced-admin.php:804
 
 
 
776
  #: src/Helpers/ContentAnalysis.php:53
777
  msgid "Meta description"
778
  msgstr ""
779
 
780
- #: inc/admin/admin-metaboxes-form.php:146
781
  msgid ""
782
  "A meta description tag should generally inform and interest users with a "
783
  "short, relevant summary of what a particular page is about. <br>They are "
@@ -787,34 +812,34 @@ msgid ""
787
  "device width."
788
  msgstr ""
789
 
790
- #: inc/admin/admin-metaboxes-form.php:148
791
  msgid "Enter your meta description"
792
  msgstr ""
793
 
794
- #: inc/admin/admin-metaboxes-form.php:155
795
  #: inc/admin/page-builders/elementor/inc/controls/class-text-letter-counter-control.php:57
796
  msgid " / 940 pixels - "
797
  msgstr ""
798
 
799
- #: inc/admin/admin-metaboxes-form.php:161
800
  msgid "Category / term description"
801
  msgstr ""
802
 
803
- #: inc/admin/admin-metaboxes-form.php:163
804
  #: inc/admin/page-builders/elementor/inc/controls/class-text-letter-counter-control.php:70
805
  msgid "Post Excerpt"
806
  msgstr ""
807
 
808
- #: inc/admin/admin-metaboxes-form.php:174
809
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:138
810
  msgid "Google Snippet Preview"
811
  msgstr ""
812
 
813
- #: inc/admin/admin-metaboxes-form.php:175
814
  msgid "Snippet Preview"
815
  msgstr ""
816
 
817
- #: inc/admin/admin-metaboxes-form.php:175
818
  msgid ""
819
  "The Google preview is a simulation. <br>There is no reliable preview because "
820
  "it depends on the screen resolution, the device used, the expression sought, "
@@ -823,141 +848,144 @@ msgid ""
823
  "what the crawlers will see."
824
  msgstr ""
825
 
826
- #: inc/admin/admin-metaboxes-form.php:177
827
  msgid ""
828
  "This is what your page will look like in Google search results. You have to "
829
  "publish your post to get the Google Snippet Preview."
830
  msgstr ""
831
 
832
- #: inc/admin/admin-metaboxes-form.php:182
833
- #: inc/admin/page-builders/elementor/inc/controls/class-social-preview-control.php:91
834
  msgid "Mobile Preview"
835
  msgstr ""
836
 
837
- #: inc/admin/admin-metaboxes-form.php:226
838
  msgid "Meta robots settings"
839
  msgstr ""
840
 
841
- #: inc/admin/admin-metaboxes-form.php:230
842
- #: inc/functions/options-advanced-admin.php:829
843
  msgid ""
844
  "Do not display this page in search engine results / XML - HTML sitemaps "
845
  "<strong>(noindex)</strong>"
846
  msgstr ""
847
 
848
- #: inc/admin/admin-metaboxes-form.php:231
849
  msgid "\"noindex\" robots meta tag"
850
  msgstr ""
851
 
852
- #: inc/admin/admin-metaboxes-form.php:231
853
  msgid ""
854
  "By checking this option, you will add a meta robots tag with the value "
855
  "\"noindex\". <br>Search engines will not index this URL in the search "
856
  "results."
857
  msgstr ""
858
 
859
- #: inc/admin/admin-metaboxes-form.php:237
860
- #: inc/functions/options-advanced-admin.php:837
861
  msgid "Do not follow links for this page <strong>(nofollow)</strong>"
862
  msgstr ""
863
 
864
- #: inc/admin/admin-metaboxes-form.php:238
865
  msgid "\"nofollow\" robots meta tag"
866
  msgstr ""
867
 
868
- #: inc/admin/admin-metaboxes-form.php:238
869
  msgid ""
870
  "By checking this option, you will add a meta robots tag with the value "
871
  "\"nofollow\". <br>Search engines will not follow links from this URL."
872
  msgstr ""
873
 
874
- #: inc/admin/admin-metaboxes-form.php:244
875
  msgid ""
876
  "Do not use Open Directory project metadata for titles or excerpts for this "
877
  "page <strong>(noodp)</strong>"
878
  msgstr ""
879
 
880
- #: inc/admin/admin-metaboxes-form.php:245
881
  msgid "\"noodp\" robots meta tag"
882
  msgstr ""
883
 
884
- #: inc/admin/admin-metaboxes-form.php:245
885
  msgid ""
886
  "By checking this option, you will add a meta robots tag with the value "
887
  "\"noodp\". <br>Note that Google and Yahoo have stopped considering this tag "
888
  "since the closing of DMOZ directory."
889
  msgstr ""
890
 
891
- #: inc/admin/admin-metaboxes-form.php:251
892
  msgid "Do not index images for this page <strong>(noimageindex)</strong>"
893
  msgstr ""
894
 
895
- #: inc/admin/admin-metaboxes-form.php:252
896
  msgid "\"noimageindex\" robots meta tag"
897
  msgstr ""
898
 
899
- #: inc/admin/admin-metaboxes-form.php:252
900
  msgid ""
901
  "By checking this option, you will add a meta robots tag with the value "
902
  "\"noimageindex\". <br> Note that your images can always be indexed if they "
903
  "are linked from other pages."
904
  msgstr ""
905
 
906
- #: inc/admin/admin-metaboxes-form.php:258
907
  msgid ""
908
  "Do not display a \"Cached\" link in the Google search results "
909
  "<strong>(noarchive)</strong>"
910
  msgstr ""
911
 
912
- #: inc/admin/admin-metaboxes-form.php:259
913
  msgid "\"noarchive\" robots meta tag"
914
  msgstr ""
915
 
916
- #: inc/admin/admin-metaboxes-form.php:259
917
  msgid ""
918
  "By checking this option, you will add a meta robots tag with the value "
919
  "\"noarchive\"."
920
  msgstr ""
921
 
922
- #: inc/admin/admin-metaboxes-form.php:265
923
  msgid ""
924
  "Do not display a description in search results for this page "
925
  "<strong>(nosnippet)</strong>"
926
  msgstr ""
927
 
928
- #: inc/admin/admin-metaboxes-form.php:266
929
  msgid "\"nosnippet\" robots meta tag"
930
  msgstr ""
931
 
932
- #: inc/admin/admin-metaboxes-form.php:266
933
  msgid ""
934
  "By checking this option, you will add a meta robots tag with the value "
935
  "\"nosnippet\"."
936
  msgstr ""
937
 
938
  #. translators: %s: link to plugin settings page
939
- #: inc/admin/admin-metaboxes-form.php:272
940
  #, php-format
941
  msgid ""
942
  "You cannot uncheck a parameter? This is normal, and it‘s most likely defined "
943
  "in the <a href=\"%s\">global settings of the plugin.</a>"
944
  msgstr ""
945
 
946
- #: inc/admin/admin-metaboxes-form.php:275
947
- #: inc/admin/admin-metaboxes-form.php:276
948
- #: inc/admin/admin-metaboxes-form.php:279 inc/admin/admin-wizard.php:303
949
- #: inc/admin/admin-wizard.php:340 inc/admin/admin-wizard.php:359
950
- #: inc/admin/admin-wizard.php:378 inc/admin/admin-wizard.php:428
951
- #: inc/admin/admin-wizard.php:448 inc/admin/admin.php:678
952
- #: inc/admin/admin.php:714 inc/admin/admin.php:800 inc/admin/admin.php:841
953
- #: inc/admin/admin.php:862 inc/admin/admin.php:883 inc/admin/admin.php:939
954
- #: inc/admin/admin.php:960
955
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:251
 
 
 
956
  #: src/Helpers/ContentAnalysis.php:13
957
  msgid "Canonical URL"
958
  msgstr ""
959
 
960
- #: inc/admin/admin-metaboxes-form.php:276
961
  msgid ""
962
  "A canonical URL is the URL of the page that Google thinks is most "
963
  "representative from a set of duplicate pages on your site. <br>For example, "
@@ -969,481 +997,481 @@ msgid ""
969
  "\t\t\t\t\t\t\tThe canonical can be in a different domain than a duplicate."
970
  msgstr ""
971
 
972
- #: inc/admin/admin-metaboxes-form.php:279
973
  msgid "Default value: "
974
  msgstr ""
975
 
976
- #: inc/admin/admin-metaboxes-form.php:286
977
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:281
978
  msgid "Select a primary category"
979
  msgstr ""
980
 
981
- #: inc/admin/admin-metaboxes-form.php:287
982
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:282
983
  msgid ""
984
  "Set the category that gets used in the %category% permalink and in our "
985
  "breadcrumbs if you have multiple categories."
986
  msgstr ""
987
 
988
- #: inc/admin/admin-metaboxes-form.php:297 inc/admin/admin-wizard.php:517
989
- #: inc/admin/admin.php:4274
990
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:274
991
  msgid "None (will disable this feature)"
992
  msgstr ""
993
 
994
- #: inc/admin/admin-metaboxes-form.php:308
995
- #: inc/admin/admin-metaboxes-form.php:312
996
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:299
997
  msgid "Custom breadcrumbs"
998
  msgstr ""
999
 
1000
- #: inc/admin/admin-metaboxes-form.php:309
1001
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:300
1002
  msgid "Enter a custom value, useful if your title is too long"
1003
  msgstr ""
1004
 
1005
- #: inc/admin/admin-metaboxes-form.php:312
1006
  #, php-format
1007
  msgid "Current breadcrumbs: %s"
1008
  msgstr ""
1009
 
1010
- #: inc/admin/admin-metaboxes-form.php:322
1011
  msgid "Ask Facebook to update its cache"
1012
  msgstr ""
1013
 
1014
- #: inc/admin/admin-metaboxes-form.php:323
1015
  msgid ""
1016
  "<span class=\"label\">Did you know?</span> LinkedIn, Instagram and Pinterest "
1017
  "use the same social metadata as Facebook. Twitter does the same if no "
1018
  "Twitter cards tags are defined below."
1019
  msgstr ""
1020
 
1021
- #: inc/admin/admin-metaboxes-form.php:325
1022
- #: inc/admin/admin-metaboxes-form.php:326
1023
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:362
1024
  msgid "Facebook Title"
1025
  msgstr ""
1026
 
1027
- #: inc/admin/admin-metaboxes-form.php:326
1028
  msgid "Enter your Facebook title"
1029
  msgstr ""
1030
 
1031
- #: inc/admin/admin-metaboxes-form.php:329
1032
- #: inc/admin/admin-metaboxes-form.php:330
1033
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:373
1034
  msgid "Facebook description"
1035
  msgstr ""
1036
 
1037
- #: inc/admin/admin-metaboxes-form.php:330
1038
  msgid "Enter your Facebook description"
1039
  msgstr ""
1040
 
1041
- #: inc/admin/admin-metaboxes-form.php:333
1042
- #: inc/admin/admin-metaboxes-form.php:334
1043
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:384
1044
  msgid "Facebook Thumbnail"
1045
  msgstr ""
1046
 
1047
- #: inc/admin/admin-metaboxes-form.php:334
1048
- #: inc/admin/admin-metaboxes-form.php:397 inc/admin/admin.php:4511
1049
- #: inc/admin/admin.php:4564 inc/admin/admin.php:4659
1050
  msgid "Select your default thumbnail"
1051
  msgstr ""
1052
 
1053
- #: inc/admin/admin-metaboxes-form.php:335 inc/admin/admin.php:4515
1054
  msgid ""
1055
  "Minimum size: 200x200px, ideal ratio 1.91:1, 8Mb max. (eg: 1640x856px or "
1056
  "3280x1712px for retina screens)"
1057
  msgstr ""
1058
 
1059
- #: inc/admin/admin-metaboxes-form.php:336
1060
- #: inc/admin/admin-metaboxes-form.php:399
1061
- #: inc/admin/admin-metaboxes-form.php:584 inc/admin/admin.php:4310
1062
- #: inc/admin/admin.php:4513 inc/admin/admin.php:4566 inc/admin/admin.php:4661
1063
  msgid "Upload an Image"
1064
  msgstr ""
1065
 
1066
- #: inc/admin/admin-metaboxes-form.php:341
1067
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:397
1068
  msgid "Facebook Preview"
1069
  msgstr ""
1070
 
1071
- #: inc/admin/admin-metaboxes-form.php:343
1072
  msgid ""
1073
  "This is what your post will look like in Facebook. You have to publish your "
1074
  "post to get the Facebook Preview."
1075
  msgstr ""
1076
 
1077
- #: inc/admin/admin-metaboxes-form.php:345
1078
  msgid ""
1079
  "The Social Networks feature is disabled. Still seing informations from the "
1080
  "FB Preview? You probably have social tags added by your theme or a plugin."
1081
  msgstr ""
1082
 
1083
- #: inc/admin/admin-metaboxes-form.php:348
1084
- #: inc/admin/page-builders/elementor/inc/controls/class-social-preview-control.php:42
1085
  msgid "File type not supported by Facebook. Please choose another image."
1086
  msgstr ""
1087
 
1088
- #: inc/admin/admin-metaboxes-form.php:349
1089
- #: inc/admin/page-builders/elementor/inc/controls/class-social-preview-control.php:43
1090
  msgid ""
1091
  "Minimun size for Facebook is <strong>200x200px</strong>. Please choose "
1092
  "another image."
1093
  msgstr ""
1094
 
1095
- #: inc/admin/admin-metaboxes-form.php:350
1096
- #: inc/admin/admin-metaboxes-form.php:413
1097
- #: inc/admin/page-builders/elementor/inc/controls/class-social-preview-control.php:44
1098
- #: inc/admin/page-builders/elementor/inc/controls/class-social-preview-control.php:68
1099
  msgid "File error. Please choose another image."
1100
  msgstr ""
1101
 
1102
- #: inc/admin/admin-metaboxes-form.php:351
1103
- #: inc/admin/admin-metaboxes-form.php:414
1104
- #: inc/admin/page-builders/elementor/inc/controls/class-social-preview-control.php:45
1105
- #: inc/admin/page-builders/elementor/inc/controls/class-social-preview-control.php:69
1106
  msgid "Your image ratio is: "
1107
  msgstr ""
1108
 
1109
- #: inc/admin/admin-metaboxes-form.php:351
1110
  msgid "The closer to 1.91 the better."
1111
  msgstr ""
1112
 
1113
- #: inc/admin/admin-metaboxes-form.php:352
1114
- #: inc/admin/admin-metaboxes-form.php:415
1115
- #: inc/admin/page-builders/elementor/inc/controls/class-social-preview-control.php:46
1116
- #: inc/admin/page-builders/elementor/inc/controls/class-social-preview-control.php:70
1117
  msgid "File URL is not valid."
1118
  msgstr ""
1119
 
1120
- #: inc/admin/admin-metaboxes-form.php:361
1121
  msgid "By&nbsp;"
1122
  msgstr ""
1123
 
1124
- #: inc/admin/admin-metaboxes-form.php:386
1125
  msgid "Preview your Twitter card using the official validator"
1126
  msgstr ""
1127
 
1128
  #. twitter:title
1129
- #: inc/admin/admin-metaboxes-form.php:388
1130
- #: inc/admin/admin-metaboxes-form.php:389
1131
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:411
1132
- #: src/Services/ContentAnalysis/GetContent.php:511
1133
  msgid "Twitter Title"
1134
  msgstr ""
1135
 
1136
- #: inc/admin/admin-metaboxes-form.php:389
1137
  msgid "Enter your Twitter title"
1138
  msgstr ""
1139
 
1140
- #: inc/admin/admin-metaboxes-form.php:392
1141
- #: inc/admin/admin-metaboxes-form.php:393
1142
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:422
1143
  msgid "Twitter description"
1144
  msgstr ""
1145
 
1146
- #: inc/admin/admin-metaboxes-form.php:393
1147
  msgid "Enter your Twitter description"
1148
  msgstr ""
1149
 
1150
- #: inc/admin/admin-metaboxes-form.php:396
1151
- #: inc/admin/admin-metaboxes-form.php:399
1152
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:433
1153
  msgid "Twitter Thumbnail"
1154
  msgstr ""
1155
 
1156
- #: inc/admin/admin-metaboxes-form.php:398 inc/admin/admin.php:4663
1157
  msgid ""
1158
  "Minimum size: 144x144px (300x157px with large card enabled), ideal ratio 1:1 "
1159
  "(2:1 with large card), 5Mb max."
1160
  msgstr ""
1161
 
1162
- #: inc/admin/admin-metaboxes-form.php:404
1163
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:446
1164
  msgid "Twitter Preview"
1165
  msgstr ""
1166
 
1167
- #: inc/admin/admin-metaboxes-form.php:406
1168
  msgid ""
1169
  "This is what your post will look like in Twitter. You have to publish your "
1170
  "post to get the Twitter Preview."
1171
  msgstr ""
1172
 
1173
- #: inc/admin/admin-metaboxes-form.php:408
1174
  msgid ""
1175
  "The Social Networks feature is disabled. Still seing informations from the "
1176
  "Twitter Preview? You probably have social tags added by your theme or a "
1177
  "plugin."
1178
  msgstr ""
1179
 
1180
- #: inc/admin/admin-metaboxes-form.php:411
1181
- #: inc/admin/page-builders/elementor/inc/controls/class-social-preview-control.php:66
1182
  msgid "File type not supported by Twitter. Please choose another image."
1183
  msgstr ""
1184
 
1185
- #: inc/admin/admin-metaboxes-form.php:412
1186
- #: inc/admin/page-builders/elementor/inc/controls/class-social-preview-control.php:67
1187
  msgid ""
1188
  "Minimun size for Twitter is <strong>144x144px</strong>. Please choose "
1189
  "another image."
1190
  msgstr ""
1191
 
1192
- #: inc/admin/admin-metaboxes-form.php:414
1193
  msgid "The closer to 1 the better (with large card, 2 is better)."
1194
  msgstr ""
1195
 
1196
- #: inc/admin/admin-metaboxes-form.php:450
1197
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:484
1198
  msgid "Enable redirection?"
1199
  msgstr ""
1200
 
1201
- #: inc/admin/admin-metaboxes-form.php:454
1202
- #: inc/admin/admin-metaboxes-form.php:462
1203
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:495
1204
  msgid "URL redirection"
1205
  msgstr ""
1206
 
1207
- #: inc/admin/admin-metaboxes-form.php:456
1208
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:500
1209
  msgid "301 Moved Permanently"
1210
  msgstr ""
1211
 
1212
- #: inc/admin/admin-metaboxes-form.php:457
1213
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:501
1214
  msgid "302 Found / Moved Temporarily"
1215
  msgstr ""
1216
 
1217
- #: inc/admin/admin-metaboxes-form.php:458
1218
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:502
1219
  msgid "307 Moved Temporarily"
1220
  msgstr ""
1221
 
1222
- #: inc/admin/admin-metaboxes-form.php:459
1223
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:503
1224
  msgid "410 Gone"
1225
  msgstr ""
1226
 
1227
- #: inc/admin/admin-metaboxes-form.php:460
1228
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:504
1229
  msgid "451 Unavailable For Legal Reasons"
1230
  msgstr ""
1231
 
1232
- #: inc/admin/admin-metaboxes-form.php:462
1233
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:513
1234
  msgid "Enter your new URL in absolute (eg: https://www.example.com/)"
1235
  msgstr ""
1236
 
1237
- #: inc/admin/admin-metaboxes-form.php:467
1238
  msgid "Query parameters"
1239
  msgstr ""
1240
 
1241
- #: inc/admin/admin-metaboxes-form.php:469
1242
  msgid "Exactly match all parameters"
1243
  msgstr ""
1244
 
1245
- #: inc/admin/admin-metaboxes-form.php:470
1246
  msgid "Exclude all parameters"
1247
  msgstr ""
1248
 
1249
- #: inc/admin/admin-metaboxes-form.php:471
1250
  msgid "Exclude all parameters and pass them to the redirection"
1251
  msgstr ""
1252
 
1253
- #: inc/admin/admin-metaboxes-form.php:480
1254
- #: inc/admin/admin-metaboxes-form.php:482
1255
- #: inc/admin/admin-metaboxes-form.php:485
1256
- #: inc/admin/admin-metaboxes-form.php:487
1257
  msgid "Test your URL"
1258
  msgstr ""
1259
 
1260
- #: inc/admin/admin-metaboxes-form.php:499
1261
  msgid "Need help with your redirections? Read our guide."
1262
  msgstr ""
1263
 
1264
- #: inc/admin/admin-metaboxes-form.php:513
1265
  msgid "Exclude this post from Google News Sitemap?"
1266
  msgstr ""
1267
 
1268
- #: inc/admin/admin-metaboxes-form.php:538
1269
  msgid "Exclude this post from Video Sitemap?"
1270
  msgstr ""
1271
 
1272
- #: inc/admin/admin-metaboxes-form.php:540
1273
  msgid ""
1274
  "If your post is set to noindex, it will be automatically excluded from the "
1275
  "sitemap."
1276
  msgstr ""
1277
 
1278
- #: inc/admin/admin-metaboxes-form.php:558
1279
  msgid "Video "
1280
  msgstr ""
1281
 
1282
- #: inc/admin/admin-metaboxes-form.php:562
1283
  msgid "Video URL (required)"
1284
  msgstr ""
1285
 
1286
- #: inc/admin/admin-metaboxes-form.php:563
1287
  msgid "Enter your video URL"
1288
  msgstr ""
1289
 
1290
- #: inc/admin/admin-metaboxes-form.php:563
1291
  msgid "Video URL"
1292
  msgstr ""
1293
 
1294
- #: inc/admin/admin-metaboxes-form.php:568
1295
  msgid ""
1296
  "NOT an external video (eg: video hosting on YouTube, Vimeo, Wistia...)? "
1297
  "Check this if your video is hosting on this server."
1298
  msgstr ""
1299
 
1300
- #: inc/admin/admin-metaboxes-form.php:572
1301
  msgid "Video Title (required)"
1302
  msgstr ""
1303
 
1304
- #: inc/admin/admin-metaboxes-form.php:573
1305
  msgid "Enter your video title"
1306
  msgstr ""
1307
 
1308
- #: inc/admin/admin-metaboxes-form.php:573
1309
  msgid "Video title"
1310
  msgstr ""
1311
 
1312
- #: inc/admin/admin-metaboxes-form.php:574
1313
  msgid "Default: title tag, if not available, post title."
1314
  msgstr ""
1315
 
1316
- #: inc/admin/admin-metaboxes-form.php:577
1317
  msgid "Video Description (required)"
1318
  msgstr ""
1319
 
1320
- #: inc/admin/admin-metaboxes-form.php:578
1321
  msgid "Enter your video description"
1322
  msgstr ""
1323
 
1324
- #: inc/admin/admin-metaboxes-form.php:578
1325
  msgid "Video description"
1326
  msgstr ""
1327
 
1328
- #: inc/admin/admin-metaboxes-form.php:579
1329
  msgid ""
1330
  "2048 characters max.; default: meta description. If not available, use the "
1331
  "beginning of the post content."
1332
  msgstr ""
1333
 
1334
- #: inc/admin/admin-metaboxes-form.php:582
1335
  msgid "Video Thumbnail (required)"
1336
  msgstr ""
1337
 
1338
- #: inc/admin/admin-metaboxes-form.php:583
1339
  msgid "Select your video thumbnail"
1340
  msgstr ""
1341
 
1342
- #: inc/admin/admin-metaboxes-form.php:584
1343
  msgid "Video Thumbnail"
1344
  msgstr ""
1345
 
1346
- #: inc/admin/admin-metaboxes-form.php:585
1347
  msgid ""
1348
  "Minimum size: 160x90px (1920x1080 max), JPG, PNG or GIF formats. Default: "
1349
  "your post featured image."
1350
  msgstr ""
1351
 
1352
- #: inc/admin/admin-metaboxes-form.php:588
1353
  msgid "Video Duration (recommended)"
1354
  msgstr ""
1355
 
1356
- #: inc/admin/admin-metaboxes-form.php:589
1357
  msgid "Duration in seconds"
1358
  msgstr ""
1359
 
1360
- #: inc/admin/admin-metaboxes-form.php:589
1361
  msgid "Video duration"
1362
  msgstr ""
1363
 
1364
- #: inc/admin/admin-metaboxes-form.php:590
1365
  msgid ""
1366
  "The duration of the video in seconds. Value must be between 0 and 28800 (8 "
1367
  "hours)."
1368
  msgstr ""
1369
 
1370
- #: inc/admin/admin-metaboxes-form.php:593
1371
  msgid "Video Rating"
1372
  msgstr ""
1373
 
1374
- #: inc/admin/admin-metaboxes-form.php:594
1375
  msgid "Video rating"
1376
  msgstr ""
1377
 
1378
- #: inc/admin/admin-metaboxes-form.php:595
1379
  msgid "Allowed values are float numbers in the range 0.0 to 5.0."
1380
  msgstr ""
1381
 
1382
- #: inc/admin/admin-metaboxes-form.php:598
1383
- #: inc/admin/admin-metaboxes-form.php:599
1384
  msgid "View count"
1385
  msgstr ""
1386
 
1387
- #: inc/admin/admin-metaboxes-form.php:599
1388
  msgid "Number of views"
1389
  msgstr ""
1390
 
1391
- #: inc/admin/admin-metaboxes-form.php:602
1392
- #: inc/admin/admin-metaboxes-form.php:603
1393
  msgid "Video tags"
1394
  msgstr ""
1395
 
1396
- #: inc/admin/admin-metaboxes-form.php:603
1397
  msgid "Enter your video tags"
1398
  msgstr ""
1399
 
1400
- #: inc/admin/admin-metaboxes-form.php:604
1401
  msgid ""
1402
  "32 tags max., separate tags with commas. Default: target keywords + post "
1403
  "tags if available."
1404
  msgstr ""
1405
 
1406
- #: inc/admin/admin-metaboxes-form.php:607
1407
- #: inc/admin/admin-metaboxes-form.php:608
1408
  msgid "Video categories"
1409
  msgstr ""
1410
 
1411
- #: inc/admin/admin-metaboxes-form.php:608
1412
  msgid "Enter your video categories"
1413
  msgstr ""
1414
 
1415
- #: inc/admin/admin-metaboxes-form.php:609
1416
  msgid ""
1417
  "256 characters max., usually a video will belong to a single category, "
1418
  "separate categories with commas. Default: first post category if available."
1419
  msgstr ""
1420
 
1421
- #: inc/admin/admin-metaboxes-form.php:614
1422
  msgid "NOT family friendly?"
1423
  msgstr ""
1424
 
1425
- #: inc/admin/admin-metaboxes-form.php:616
1426
  msgid "The video will be available only to users with SafeSearch turned off."
1427
  msgstr ""
1428
 
1429
- #: inc/admin/admin-metaboxes-form.php:618
1430
  msgid "Remove video"
1431
  msgstr ""
1432
 
1433
- #: inc/admin/admin-metaboxes-form.php:625
1434
  msgid "Add video"
1435
  msgstr ""
1436
 
1437
  #. @deprecated 4.4.0
1438
  #. @deprecated 4.4.0
1439
- #: inc/admin/admin-metaboxes.php:215 inc/admin/admin-metaboxes.php:464
1440
- #: inc/admin/admin-term-metaboxes.php:208
1441
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:58
1442
  #: inc/admin/page-builders/elementor/inc/controls/class-content-analysis-control.php:34
1443
  msgid "Analysis in progress..."
1444
  msgstr ""
1445
 
1446
- #: inc/admin/admin-metaboxes.php:445
1447
  #: src/Services/ContentAnalysis/RenderContentAnalysis.php:19
1448
  msgid "Content analysis"
1449
  msgstr ""
@@ -1490,67 +1518,69 @@ msgid ""
1490
  "Track your keywords positions and backlinks directly on your WordPress site."
1491
  msgstr ""
1492
 
1493
- #: inc/admin/admin-notifications-center.php:167
1494
  msgid "We noticed that some SEO DIVI options are enabled!"
1495
  msgstr ""
1496
 
1497
- #: inc/admin/admin-notifications-center.php:168
1498
  msgid ""
1499
  "To avoid any SEO conflicts, please disable every SEO options from "
1500
  "<strong>DIVI theme options page, SEO tab</strong>."
1501
  msgstr ""
1502
 
1503
- #: inc/admin/admin-notifications-center.php:170
1504
- #: inc/admin/admin-notifications-center.php:190
1505
- #: inc/admin/admin-notifications-center.php:208
1506
- #: inc/admin/admin-notifications-center.php:238
1507
- #: inc/admin/admin-notifications-center.php:270
1508
- #: inc/admin/admin-notifications-center.php:305
1509
- #: inc/admin/admin-notifications-center.php:434
1510
- #: inc/admin/admin-notifications-center.php:485
1511
- #: inc/admin/admin-notifications-center.php:528
1512
- #: inc/admin/admin-notifications-center.php:547
1513
- #: inc/admin/admin-notifications-center.php:564
1514
- #: inc/admin/admin-notifications-center.php:720
1515
- #: inc/admin/admin-notifications-center.php:798
1516
- #: inc/admin/admin-notifications-center.php:837
1517
- #: inc/admin/admin-notifications-center.php:855
1518
  msgid "High impact"
1519
  msgstr ""
1520
 
1521
- #: inc/admin/admin-notifications-center.php:174
1522
- #: inc/admin/admin-notifications-center.php:194
1523
- #: inc/admin/admin-notifications-center.php:212
1524
- #: inc/admin/admin-notifications-center.php:243
1525
- #: inc/admin/admin-notifications-center.php:438
1526
- #: inc/admin/admin-notifications-center.php:532
1527
- #: inc/admin/admin-notifications-center.php:551
1528
- #: inc/admin/admin-notifications-center.php:568
1529
- #: inc/admin/admin-notifications-center.php:598
1530
- #: inc/admin/admin-notifications-center.php:663
1531
- #: inc/admin/admin-notifications-center.php:755
1532
- #: inc/admin/admin-notifications-center.php:773
1533
- #: inc/admin/admin-notifications-center.php:859
1534
- #: inc/admin/admin-notifications-center.php:878
 
 
1535
  msgid "Fix this!"
1536
  msgstr ""
1537
 
1538
- #: inc/admin/admin-notifications-center.php:187
1539
  msgid "Your permalinks doesn't have a trailingslash"
1540
  msgstr ""
1541
 
1542
- #: inc/admin/admin-notifications-center.php:188
1543
  msgid ""
1544
  "To avoid any SEO issues, we recommend you to activate the \"<strong>Disable "
1545
  "trailing slash for metas</strong>\" option from our <strong>Advanced "
1546
  "settings page</strong>. Do not forget to clear your cache if necessary."
1547
  msgstr ""
1548
 
1549
- #: inc/admin/admin-notifications-center.php:205
1550
  msgid "Your permalinks have a trailingslash"
1551
  msgstr ""
1552
 
1553
- #: inc/admin/admin-notifications-center.php:206
1554
  msgid ""
1555
  "To avoid any SEO issues, we recommend you to de-activate the "
1556
  "\"<strong>Disable trailing slash for metas</strong>\" option from our "
@@ -1558,144 +1588,142 @@ msgid ""
1558
  "if necessary."
1559
  msgstr ""
1560
 
1561
- #: inc/admin/admin-notifications-center.php:235
1562
  msgid ""
1563
  "TagDiv Composer plugin doesn't use <strong>add_theme_support('title-tag');</"
1564
  "strong>"
1565
  msgstr ""
1566
 
1567
- #: inc/admin/admin-notifications-center.php:236
1568
  msgid ""
1569
  "Fix this compatibility issue to allow SEOPress generates the correct meta "
1570
  "titles."
1571
  msgstr ""
1572
 
1573
- #: inc/admin/admin-notifications-center.php:267
1574
  msgid "Your theme doesn't use <strong>add_theme_support('title-tag');</strong>"
1575
  msgstr ""
1576
 
1577
- #: inc/admin/admin-notifications-center.php:268
1578
  msgid ""
1579
  "This error indicates that your theme uses a deprecated function to generate "
1580
  "the title tag of your pages. SEOPress will not be able to generate your "
1581
  "custom title tags if this error is not fixed."
1582
  msgstr ""
1583
 
1584
- #: inc/admin/admin-notifications-center.php:275
1585
- #: inc/admin/admin-notifications-center.php:359
1586
- #: inc/admin/admin-notifications-center.php:400
1587
- #: inc/admin/admin-notifications-center.php:464
1588
- #: inc/admin/admin-notifications-center.php:490 inc/admin/admin.php:5069
1589
- #: inc/admin/admin.php:5120 inc/admin/admin.php:5147 inc/admin/admin.php:5170
1590
- #: inc/admin/admin.php:5193 inc/admin/admin.php:5216
1591
  msgid "Learn more"
1592
  msgstr ""
1593
 
1594
  #. translators: %s name of a SEO plugin (eg: Yoast SEO)
1595
- #: inc/admin/admin-notifications-center.php:302
1596
  #, php-format
1597
  msgid "We noticed that you use <strong>%s</strong> plugin."
1598
  msgstr ""
1599
 
1600
- #: inc/admin/admin-notifications-center.php:303
1601
  msgid ""
1602
  "Do you want to migrate all your metadata to SEOPress? Do not use multiple "
1603
  "SEO plugins at once to avoid conflicts!"
1604
  msgstr ""
1605
 
1606
- #: inc/admin/admin-notifications-center.php:309
1607
  msgid "Migrate!"
1608
  msgstr ""
1609
 
1610
- #: inc/admin/admin-notifications-center.php:322
1611
  msgid "You have enabled 404 cleaning BUT the scheduled task is not running."
1612
  msgstr ""
1613
 
1614
- #: inc/admin/admin-notifications-center.php:323
1615
  msgid ""
1616
  "To solve this, please disable and re-enable SEOPress PRO. No data will be "
1617
  "lost."
1618
  msgstr ""
1619
 
1620
  #. translators: %s name of a page builder plugin (eg: Oxygen)
1621
- #: inc/admin/admin-notifications-center.php:351
1622
  #, php-format
1623
  msgid "Generate automatic meta description for <strong>%s</strong> plugin."
1624
  msgstr ""
1625
 
1626
- #: inc/admin/admin-notifications-center.php:352
1627
  msgid ""
1628
  "Your page builder is using shortcodes to save its data. To automatically "
1629
- "generate your meta description based on your post content, you will have to "
1630
- "add some hooks to your functions.php."
1631
  msgstr ""
1632
 
1633
- #: inc/admin/admin-notifications-center.php:354
1634
- #: inc/admin/admin-notifications-center.php:395
1635
- #: inc/admin/admin-notifications-center.php:594
1636
- #: inc/admin/admin-notifications-center.php:659
1637
- #: inc/admin/admin-notifications-center.php:751
1638
- #: inc/admin/admin-notifications-center.php:769
1639
  msgid "Medium impact"
1640
  msgstr ""
1641
 
1642
  #. translators: %s name of a WP theme (eg: Enfold)
1643
- #: inc/admin/admin-notifications-center.php:392
1644
  #, php-format
1645
  msgid "Generate automatic meta description for <strong>%s</strong> theme."
1646
  msgstr ""
1647
 
1648
- #: inc/admin/admin-notifications-center.php:393
1649
  msgid ""
1650
  "Your theme is using shortcodes to save its data. To automatically generate "
1651
- "your meta description based on your post content, you will have to add some "
1652
- "hooks to your functions.php."
1653
  msgstr ""
1654
 
1655
- #: inc/admin/admin-notifications-center.php:431
1656
  msgid "Enfold theme is not correctly setup for SEO!"
1657
  msgstr ""
1658
 
1659
- #: inc/admin/admin-notifications-center.php:432
1660
  msgid ""
1661
  "You must disable \"Meta tag robots\" option from Enfold settings (SEO "
1662
  "Support tab) to avoid any SEO issues."
1663
  msgstr ""
1664
 
1665
- #: inc/admin/admin-notifications-center.php:463
1666
  msgid "Your site doesn't use an SSL certificate!"
1667
  msgstr ""
1668
 
1669
- #: inc/admin/admin-notifications-center.php:464
1670
  msgid ""
1671
  "Https is considered by Google as a positive signal for the ranking of your "
1672
  "site. It also reassures your visitors for data security, and improves trust."
1673
  msgstr ""
1674
 
1675
- #: inc/admin/admin-notifications-center.php:466
1676
  msgid "Low impact"
1677
  msgstr ""
1678
 
1679
- #: inc/admin/admin-notifications-center.php:470
1680
  msgid "Buy an SSL!"
1681
  msgstr ""
1682
 
1683
- #: inc/admin/admin-notifications-center.php:482
1684
  msgid "PHP module \"DOM\" is missing on your server."
1685
  msgstr ""
1686
 
1687
- #: inc/admin/admin-notifications-center.php:483
1688
  msgid ""
1689
  "This PHP module, installed by default with PHP, is required by many plugins "
1690
  "including SEOPress. Please contact your host as soon as possible to solve "
1691
  "this."
1692
  msgstr ""
1693
 
1694
- #: inc/admin/admin-notifications-center.php:525
1695
  msgid "Your site is not visible to Search Engines!"
1696
  msgstr ""
1697
 
1698
- #: inc/admin/admin-notifications-center.php:526
1699
  msgid ""
1700
  "You have activated the blocking of the indexing of your site. If your site "
1701
  "is under development, this is probably normal. Otherwise, check your "
@@ -1703,24 +1731,24 @@ msgid ""
1703
  "not concerned."
1704
  msgstr ""
1705
 
1706
- #: inc/admin/admin-notifications-center.php:544
1707
  msgid "Your site title is empty!"
1708
  msgstr ""
1709
 
1710
- #: inc/admin/admin-notifications-center.php:545
1711
  msgid ""
1712
  "Your Site Title is used by WordPress, your theme and your plugins including "
1713
  "SEOPress. It is an essential component in the generation of title tags, but "
1714
  "not only. Enter one!"
1715
  msgstr ""
1716
 
1717
- #: inc/admin/admin-notifications-center.php:561 inc/admin/admin.php:2839
1718
  msgid ""
1719
  "Your permalinks are not SEO Friendly! Enable pretty permalinks to fix this."
1720
  msgstr ""
1721
 
1722
- #: inc/admin/admin-notifications-center.php:562
1723
- #: inc/admin/admin-notifications-center.php:592
1724
  msgid ""
1725
  "Why is this important? Showing only the summary of each article "
1726
  "significantly reduces the theft of your content by third party sites. Not to "
@@ -1728,45 +1756,45 @@ msgid ""
1728
  "conversions..."
1729
  msgstr ""
1730
 
1731
- #: inc/admin/admin-notifications-center.php:591
1732
  msgid "Your RSS feed shows full text!"
1733
  msgstr ""
1734
 
1735
- #: inc/admin/admin-notifications-center.php:656
1736
  msgid ""
1737
  "You have activated Google Analytics tracking without adding identifiers!"
1738
  msgstr ""
1739
 
1740
- #: inc/admin/admin-notifications-center.php:657
1741
  msgid ""
1742
  "Google Analytics will not track your visitors until you finish the "
1743
  "configuration."
1744
  msgstr ""
1745
 
1746
- #: inc/admin/admin-notifications-center.php:687
1747
  msgid "You like SEOPress? Please help us by rating us 5 stars!"
1748
  msgstr ""
1749
 
1750
- #: inc/admin/admin-notifications-center.php:688
1751
  msgid ""
1752
  "Support the development and improvement of the plugin by taking 15 seconds "
1753
  "of your time to leave us a user review on the official WordPress plugins "
1754
  "repository. Thank you!"
1755
  msgstr ""
1756
 
1757
- #: inc/admin/admin-notifications-center.php:690
1758
  msgid "Information"
1759
  msgstr ""
1760
 
1761
- #: inc/admin/admin-notifications-center.php:694
1762
  msgid "Rate us!"
1763
  msgstr ""
1764
 
1765
- #: inc/admin/admin-notifications-center.php:717
1766
  msgid "Break comments into pages is ON!"
1767
  msgstr ""
1768
 
1769
- #: inc/admin/admin-notifications-center.php:718
1770
  msgid ""
1771
  "Enabling this option will create duplicate content for each article beyond x "
1772
  "comments. This can have a disastrous effect by creating a large number of "
@@ -1774,15 +1802,15 @@ msgid ""
1774
  "ranking in search results."
1775
  msgstr ""
1776
 
1777
- #: inc/admin/admin-notifications-center.php:724
1778
  msgid "Disable this!"
1779
  msgstr ""
1780
 
1781
- #: inc/admin/admin-notifications-center.php:748
1782
  msgid "Display more posts per page on homepage and archives"
1783
  msgstr ""
1784
 
1785
- #: inc/admin/admin-notifications-center.php:749
1786
  msgid ""
1787
  "To reduce the number pages search engines have to crawl to find all your "
1788
  "articles, it is recommended displaying more posts per page. This should not "
@@ -1790,73 +1818,73 @@ msgid ""
1790
  "than clicking on next page links."
1791
  msgstr ""
1792
 
1793
- #: inc/admin/admin-notifications-center.php:766
1794
  msgid "You don't have an XML Sitemap!"
1795
  msgstr ""
1796
 
1797
- #: inc/admin/admin-notifications-center.php:767
1798
  msgid ""
1799
  "XML Sitemaps are useful to facilitate the crawling of your content by search "
1800
  "engine robots. Indirectly, this can benefit your ranking by reducing the "
1801
  "crawl bugdet."
1802
  msgstr ""
1803
 
1804
- #: inc/admin/admin-notifications-center.php:795
1805
  msgid "Do you have a Google My Business page? It's free!"
1806
  msgstr ""
1807
 
1808
- #: inc/admin/admin-notifications-center.php:796
1809
  msgid ""
1810
  "Local Business websites should have a My Business page to improve visibility "
1811
  "in search results. Click on the cross on the right to delete this "
1812
  "notification if you are not concerned."
1813
  msgstr ""
1814
 
1815
- #: inc/admin/admin-notifications-center.php:802
1816
  msgid "Create your page now!"
1817
  msgstr ""
1818
 
1819
- #: inc/admin/admin-notifications-center.php:834
1820
  msgid "Add your site to Google. It's free!"
1821
  msgstr ""
1822
 
1823
- #: inc/admin/admin-notifications-center.php:835
1824
  msgid ""
1825
  "Is your brand new site online? So reference it as quickly as possible on "
1826
  "Google to get your first visitors via Google Search Console. Already the "
1827
  "case? Click on the cross on the right to remove this alert."
1828
  msgstr ""
1829
 
1830
- #: inc/admin/admin-notifications-center.php:841
1831
  msgid "Add your site to Search Console!"
1832
  msgstr ""
1833
 
1834
- #: inc/admin/admin-notifications-center.php:852
1835
  msgid "Structured data types is not correctly enabled"
1836
  msgstr ""
1837
 
1838
- #: inc/admin/admin-notifications-center.php:853
1839
  msgid ""
1840
  "Please enable <strong>Structured Data Types metabox for your posts, pages "
1841
  "and custom post types</strong> option in order to use automatic and manual "
1842
  "schemas. (SEO > PRO > Structured Data Types (schema.org)"
1843
  msgstr ""
1844
 
1845
- #: inc/admin/admin-notifications-center.php:871
1846
  msgid "You have to enter your licence key to get updates and support"
1847
  msgstr ""
1848
 
1849
- #: inc/admin/admin-notifications-center.php:872
1850
  msgid ""
1851
  "Please activate the SEOPress PRO license key to automatically receive "
1852
  "updates to guarantee you the best user experience possible."
1853
  msgstr ""
1854
 
1855
- #: inc/admin/admin-notifications-center.php:901
1856
  msgid "Take your SEO to the next level with SEOPress PRO!"
1857
  msgstr ""
1858
 
1859
- #: inc/admin/admin-notifications-center.php:902
1860
  msgid ""
1861
  "The PRO version of SEOPress allows you to easily manage your structured data "
1862
  "(schemas), add a breadcrumb optimized for SEO and accessibility, improve SEO "
@@ -1864,1180 +1892,1006 @@ msgid ""
1864
  "of your metadata and so much more."
1865
  msgstr ""
1866
 
1867
- #: inc/admin/admin-notifications-center.php:909
1868
  msgid "Upgrade now!"
1869
  msgstr ""
1870
 
1871
- #: inc/admin/admin-notifications-center.php:928
1872
  msgid "Check websites setup on your server"
1873
  msgstr ""
1874
 
1875
  #. Init
1876
- #: inc/admin/admin-notifications-center.php:936
1877
  msgid "Not found"
1878
  msgstr ""
1879
 
1880
- #: inc/admin/admin-notifications-center.php:941
1881
  msgid "No scrape."
1882
  msgstr ""
1883
 
1884
- #: inc/admin/admin-notifications-center.php:946
1885
  msgid "No domain found."
1886
  msgstr ""
1887
 
1888
- #: inc/admin/admin-notifications-center.php:956
1889
  msgid "Server IP Address: "
1890
  msgstr ""
1891
 
1892
- #: inc/admin/admin-notifications-center.php:958
1893
  msgid "Last scrape: "
1894
  msgstr ""
1895
 
1896
- #: inc/admin/admin-notifications-center.php:959
1897
  msgid "Number of websites on your server: "
1898
  msgstr ""
1899
 
1900
- #: inc/admin/admin-notifications-center.php:972
1901
  msgid "Get list"
1902
  msgstr ""
1903
 
1904
- #: inc/admin/admin-notifications-center.php:983
1905
  msgid "Our blog: SEO news, how-to, tips and tricks..."
1906
  msgstr ""
1907
 
1908
- #: inc/admin/admin-notifications-center.php:984
1909
  msgid "Upload a list of links to disavow to Google"
1910
  msgstr ""
1911
 
1912
- #: inc/admin/admin-notifications-center.php:987
1913
  msgid ""
1914
  "Image SEO plugin to optimize your image ALT texts and names for Search "
1915
  "Engines."
1916
  msgstr ""
1917
 
1918
- #: inc/admin/admin-notifications-center.php:991
1919
  msgid "Dareboost: Test, analyze and optimize your website"
1920
  msgstr ""
1921
 
1922
- #: inc/admin/admin-notifications-center.php:992
1923
  msgid "Google Campaign URL Builder tool"
1924
  msgstr ""
1925
 
1926
- #: inc/admin/admin-wizard.php:101 seopress.php:280
1927
  msgid "Migration completed!"
1928
  msgstr ""
1929
 
1930
- #: inc/admin/admin-wizard.php:102 seopress.php:281
1931
  msgid "Export completed!"
1932
  msgstr ""
1933
 
1934
- #: inc/admin/admin-wizard.php:117
1935
  msgid "Import SEO settings"
1936
  msgstr ""
1937
 
1938
- #: inc/admin/admin-wizard.php:122 inc/admin/admin-wizard.php:496
1939
  msgid "Your site"
1940
  msgstr ""
1941
 
1942
- #: inc/admin/admin-wizard.php:127 inc/admin/admin-wizard.php:602
1943
  msgid "Indexing"
1944
  msgstr ""
1945
 
1946
- #: inc/admin/admin-wizard.php:132 inc/admin/admin-wizard.php:767
1947
  msgid "Advanced options"
1948
  msgstr ""
1949
 
1950
- #: inc/admin/admin-wizard.php:137
1951
  msgid "Ready!"
1952
  msgstr ""
1953
 
1954
- #: inc/admin/admin-wizard.php:197
1955
  msgid "SEOPress &rsaquo; Setup Wizard"
1956
  msgstr ""
1957
 
1958
- #: inc/admin/admin-wizard.php:213
1959
  msgid "Not right now"
1960
  msgstr ""
1961
 
1962
- #: inc/admin/admin-wizard.php:215
1963
  msgid "Skip this step"
1964
  msgstr ""
1965
 
1966
- #: inc/admin/admin-wizard.php:271
1967
  msgid "Welcome!"
1968
  msgstr ""
1969
 
1970
- #: inc/admin/admin-wizard.php:272
1971
  msgid ""
1972
  "The following wizard will help you configure SEOPress and get you started "
1973
  "quickly."
1974
  msgstr ""
1975
 
1976
- #: inc/admin/admin-wizard.php:273
1977
  msgid ""
1978
  "The first step is to import your previous settings from other plugins to "
1979
  "keep your SEO."
1980
  msgstr ""
1981
 
1982
- #: inc/admin/admin-wizard.php:274
1983
  msgid "No data to migrate? Click \"Next step\" button!"
1984
  msgstr ""
1985
 
1986
- #: inc/admin/admin-wizard.php:276 inc/admin/admin.php:774
1987
  msgid "Import posts and terms metadata from"
1988
  msgstr ""
1989
 
1990
- #: inc/admin/admin-wizard.php:278 inc/admin/admin.php:776
1991
  msgid "Select an option"
1992
  msgstr ""
1993
 
1994
- #: inc/admin/admin-wizard.php:279 inc/admin/admin.php:777
1995
  msgid "Yoast SEO"
1996
  msgstr ""
1997
 
1998
- #: inc/admin/admin-wizard.php:280 inc/admin/admin.php:778
1999
  msgid "All In One SEO"
2000
  msgstr ""
2001
 
2002
- #: inc/admin/admin-wizard.php:281 inc/admin/admin.php:779
2003
  msgid "The SEO Framework"
2004
  msgstr ""
2005
 
2006
- #: inc/admin/admin-wizard.php:282 inc/admin/admin.php:780
2007
  msgid "Rank Math"
2008
  msgstr ""
2009
 
2010
- #: inc/admin/admin-wizard.php:283 inc/admin/admin.php:781
2011
  msgid "Squirrly SEO"
2012
  msgstr ""
2013
 
2014
- #: inc/admin/admin-wizard.php:284 inc/admin/admin.php:782
2015
  msgid "SEO Ultimate"
2016
  msgstr ""
2017
 
2018
- #: inc/admin/admin-wizard.php:285 inc/admin/admin.php:783
2019
  msgid "WP Meta SEO"
2020
  msgstr ""
2021
 
2022
- #: inc/admin/admin-wizard.php:286 inc/admin/admin.php:784
2023
  msgid "Premium SEO Pack"
2024
  msgstr ""
2025
 
2026
- #: inc/admin/admin-wizard.php:287 inc/admin/admin.php:785
2027
  msgid "wpSEO"
2028
  msgstr ""
2029
 
2030
- #: inc/admin/admin-wizard.php:295 inc/admin/admin.php:792
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2031
  msgid "Import posts and terms metadata from Yoast"
2032
  msgstr ""
2033
 
2034
- #: inc/admin/admin-wizard.php:296 inc/admin/admin-wizard.php:316
2035
- #: inc/admin/admin-wizard.php:333 inc/admin/admin-wizard.php:352
2036
- #: inc/admin/admin-wizard.php:371 inc/admin/admin-wizard.php:389
2037
- #: inc/admin/admin-wizard.php:406 inc/admin/admin-wizard.php:422
2038
- #: inc/admin/admin-wizard.php:441 inc/admin/admin.php:793
2039
- #: inc/admin/admin.php:815 inc/admin/admin.php:834 inc/admin/admin.php:855
2040
- #: inc/admin/admin.php:876 inc/admin/admin.php:896 inc/admin/admin.php:915
2041
- #: inc/admin/admin.php:933 inc/admin/admin.php:953
 
 
2042
  msgid "By clicking Migrate, we'll import:"
2043
  msgstr ""
2044
 
2045
- #: inc/admin/admin-wizard.php:298 inc/admin/admin-wizard.php:318
2046
- #: inc/admin/admin-wizard.php:335 inc/admin/admin-wizard.php:354
2047
- #: inc/admin/admin-wizard.php:373 inc/admin/admin-wizard.php:391
2048
- #: inc/admin/admin-wizard.php:408 inc/admin/admin-wizard.php:424
2049
- #: inc/admin/admin-wizard.php:443 inc/admin/admin.php:795
2050
- #: inc/admin/admin.php:817 inc/admin/admin.php:836 inc/admin/admin.php:857
2051
- #: inc/admin/admin.php:878 inc/admin/admin.php:898 inc/admin/admin.php:917
2052
- #: inc/admin/admin.php:935 inc/admin/admin.php:955
 
 
2053
  msgid "Title tags"
2054
  msgstr ""
2055
 
2056
- #: inc/admin/admin-wizard.php:300 inc/admin/admin-wizard.php:320
2057
- #: inc/admin/admin-wizard.php:337 inc/admin/admin-wizard.php:356
2058
- #: inc/admin/admin-wizard.php:375 inc/admin/admin-wizard.php:393
2059
- #: inc/admin/admin-wizard.php:410 inc/admin/admin-wizard.php:426
2060
- #: inc/admin/admin-wizard.php:445 inc/admin/admin.php:797
2061
- #: inc/admin/admin.php:819 inc/admin/admin.php:838 inc/admin/admin.php:859
2062
- #: inc/admin/admin.php:880 inc/admin/admin.php:900 inc/admin/admin.php:919
2063
- #: inc/admin/admin.php:937 inc/admin/admin.php:957
 
 
2064
  msgid "Facebook Open Graph tags (title, description and image thumbnail)"
2065
  msgstr ""
2066
 
2067
- #: inc/admin/admin-wizard.php:301 inc/admin/admin-wizard.php:338
2068
- #: inc/admin/admin-wizard.php:357 inc/admin/admin-wizard.php:376
2069
- #: inc/admin/admin-wizard.php:394 inc/admin/admin-wizard.php:411
2070
- #: inc/admin/admin-wizard.php:446 inc/admin/admin.php:798
2071
- #: inc/admin/admin.php:839 inc/admin/admin.php:860 inc/admin/admin.php:881
2072
- #: inc/admin/admin.php:901 inc/admin/admin.php:920 inc/admin/admin.php:958
 
 
 
 
2073
  msgid "Twitter tags (title, description and image thumbnail)"
2074
  msgstr ""
2075
 
2076
- #: inc/admin/admin-wizard.php:302 inc/admin/admin.php:799
 
2077
  msgid "Meta Robots (noindex, nofollow...)"
2078
  msgstr ""
2079
 
2080
- #: inc/admin/admin-wizard.php:304 inc/admin/admin-wizard.php:360
2081
- #: inc/admin/admin-wizard.php:429 inc/admin/admin.php:801
2082
- #: inc/admin/admin.php:863 inc/admin/admin.php:940
 
2083
  msgid "Focus keywords"
2084
  msgstr ""
2085
 
2086
- #: inc/admin/admin-wizard.php:305 inc/admin/admin.php:675
2087
- #: inc/admin/admin.php:711 inc/admin/admin.php:802
 
2088
  msgid "Primary category"
2089
  msgstr ""
2090
 
2091
- #: inc/admin/admin-wizard.php:307 inc/admin/admin.php:804
2092
  msgid ""
2093
  "<strong>WARNING:</strong> Migration will delete / update all SEOPress posts "
2094
  "and terms metadata. Some dynamic variables will not be interpreted. We do "
2095
  "NOT delete any Yoast data."
2096
  msgstr ""
2097
 
2098
- #: inc/admin/admin-wizard.php:308 inc/admin/admin-wizard.php:325
2099
- #: inc/admin/admin-wizard.php:344 inc/admin/admin-wizard.php:363
2100
- #: inc/admin/admin-wizard.php:381 inc/admin/admin-wizard.php:398
2101
- #: inc/admin/admin-wizard.php:414 inc/admin/admin-wizard.php:432
2102
- #: inc/admin/admin-wizard.php:453 inc/admin/admin.php:805
2103
- #: inc/admin/admin.php:824 inc/admin/admin.php:845 inc/admin/admin.php:866
2104
- #: inc/admin/admin.php:886 inc/admin/admin.php:905 inc/admin/admin.php:923
2105
- #: inc/admin/admin.php:943 inc/admin/admin.php:965
 
 
2106
  msgid "Migrate now"
2107
  msgstr ""
2108
 
2109
- #: inc/admin/admin-wizard.php:315 inc/admin/admin.php:814
2110
- msgid "Import posts and terms metadata from All In One SEO"
2111
  msgstr ""
2112
 
2113
- #: inc/admin/admin-wizard.php:321 inc/admin/admin.php:820
2114
- msgid "Twitter image thumbnail"
2115
- msgstr ""
2116
-
2117
- #: inc/admin/admin-wizard.php:322 inc/admin/admin-wizard.php:427
2118
- #: inc/admin/admin-wizard.php:447 inc/admin/admin.php:821
2119
- #: inc/admin/admin.php:938 inc/admin/admin.php:959
2120
- msgid "Meta Robots (noindex, nofollow)"
2121
- msgstr ""
2122
-
2123
- #: inc/admin/admin-wizard.php:324 inc/admin/admin.php:823
2124
  msgid ""
2125
  "<strong>WARNING:</strong> Migration will update/delete all SEOPress posts "
2126
  "and terms metadata. Some dynamic variables will not be interpreted. We do "
2127
  "NOT delete any AIO data."
2128
  msgstr ""
2129
 
2130
- #: inc/admin/admin-wizard.php:332 inc/admin/admin.php:833
2131
  msgid "Import posts and terms metadata from The SEO Framework"
2132
  msgstr ""
2133
 
2134
- #: inc/admin/admin-wizard.php:339 inc/admin/admin.php:840
2135
  msgid "Meta Robots (noindex, nofollow, noarchive)"
2136
  msgstr ""
2137
 
2138
- #: inc/admin/admin-wizard.php:341 inc/admin/admin-wizard.php:449
2139
- #: inc/admin/admin.php:842 inc/admin/admin.php:961
2140
- #: src/Actions/Admin/ManageColumn.php:70
 
 
2141
  msgid "Redirect URL"
2142
  msgstr ""
2143
 
2144
- #: inc/admin/admin-wizard.php:343 inc/admin/admin.php:844
2145
  msgid ""
2146
  "<strong>WARNING:</strong> Migration will update / delete all SEOPress posts "
2147
  "and terms metadata. Some dynamic variables will not be interpreted. We do "
2148
  "NOT delete any SEO Framework data."
2149
  msgstr ""
2150
 
2151
- #: inc/admin/admin-wizard.php:351 inc/admin/admin.php:854
2152
  msgid "Import posts and terms metadata from Rank Math"
2153
  msgstr ""
2154
 
2155
- #: inc/admin/admin-wizard.php:358 inc/admin/admin.php:861
2156
  msgid "Meta Robots (noindex, nofollow, noarchive, noimageindex)"
2157
  msgstr ""
2158
 
2159
- #: inc/admin/admin-wizard.php:362 inc/admin/admin.php:865
2160
  msgid ""
2161
  "<strong>WARNING:</strong> Migration will update / delete all SEOPress posts "
2162
  "and terms metadata. Some dynamic variables will not be interpreted. We do "
2163
  "NOT delete any Rank Math data."
2164
  msgstr ""
2165
 
2166
- #: inc/admin/admin-wizard.php:370 inc/admin/admin.php:875
2167
  msgid "Import posts metadata from Squirrly SEO"
2168
  msgstr ""
2169
 
2170
- #: inc/admin/admin-wizard.php:377 inc/admin/admin-wizard.php:395
2171
  #: inc/admin/admin.php:882 inc/admin/admin.php:902
2172
  msgid "Meta Robots (noindex or nofollow)"
2173
  msgstr ""
2174
 
2175
- #: inc/admin/admin-wizard.php:380
2176
  msgid ""
2177
  "<strong>WARNING:</strong> Migration will update / delete all SEOPress posts "
2178
  "metadata. Some dynamic variables will not be interpreted. We do NOT delete "
2179
  "any Squirrly SEO data."
2180
  msgstr ""
2181
 
2182
- #: inc/admin/admin-wizard.php:388 inc/admin/admin.php:895
2183
  msgid "Import posts metadata from SEO Ultimate"
2184
  msgstr ""
2185
 
2186
- #: inc/admin/admin-wizard.php:397 inc/admin/admin.php:904
2187
  msgid ""
2188
  "<strong>WARNING:</strong> Migration will update / delete all SEOPress posts "
2189
  "metadata. Some dynamic variables will not be interpreted. We do NOT delete "
2190
  "any SEO Ultimate data."
2191
  msgstr ""
2192
 
2193
- #: inc/admin/admin-wizard.php:405 inc/admin/admin.php:914
2194
  msgid "Import posts and terms metadata from WP Meta SEO"
2195
  msgstr ""
2196
 
2197
- #: inc/admin/admin-wizard.php:413 inc/admin/admin.php:922
2198
  msgid ""
2199
  "<strong>WARNING:</strong> Migration will update / delete all SEOPress posts "
2200
  "metadata. Some dynamic variables will not be interpreted. We do NOT delete "
2201
  "any WP Meta SEO data."
2202
  msgstr ""
2203
 
2204
- #: inc/admin/admin-wizard.php:421 inc/admin/admin.php:932
2205
  msgid "Import posts and terms metadata from Premium SEO Pack"
2206
  msgstr ""
2207
 
2208
- #: inc/admin/admin-wizard.php:431 inc/admin/admin.php:942
 
 
 
 
 
2209
  msgid ""
2210
  "<strong>WARNING:</strong> Migration will update / delete all SEOPress posts "
2211
  "metadata. Some dynamic variables will not be interpreted. We do NOT delete "
2212
  "any Premium SEO Pack data."
2213
  msgstr ""
2214
 
2215
- #: inc/admin/admin-wizard.php:440 inc/admin/admin.php:952
2216
  msgid "Import posts and terms metadata from wpSEO"
2217
  msgstr ""
2218
 
2219
- #: inc/admin/admin-wizard.php:450 inc/admin/admin.php:962
2220
  msgid "Main keyword"
2221
  msgstr ""
2222
 
2223
- #: inc/admin/admin-wizard.php:452 inc/admin/admin.php:964
2224
  msgid ""
2225
  "<strong>WARNING:</strong> Migration will update / delete all SEOPress posts "
2226
  "metadata. Some dynamic variables will not be interpreted. We do NOT delete "
2227
  "any wpSEO data."
2228
  msgstr ""
2229
 
2230
- #: inc/admin/admin-wizard.php:461 inc/admin/admin-wizard.php:965
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2231
  msgid "Next step"
2232
  msgstr ""
2233
 
2234
- #: inc/admin/admin-wizard.php:498
2235
  msgid ""
2236
  "To build title tags and knowledge graph for Google, you need to fill out the "
2237
  "fields below to configure the general settings. "
2238
  msgstr ""
2239
 
2240
- #: inc/admin/admin-wizard.php:501
2241
  msgid "eg: |"
2242
  msgstr ""
2243
 
2244
- #: inc/admin/admin-wizard.php:504
2245
  #, php-format
2246
  msgid ""
2247
  "This separator will be used by the dynamic variable <strong>%%sep%%</strong> "
2248
  "in your title and meta description templates."
2249
  msgstr ""
2250
 
2251
- #: inc/admin/admin-wizard.php:507
2252
  msgid "Home site title"
2253
  msgstr ""
2254
 
2255
- #: inc/admin/admin-wizard.php:508
2256
  msgid "eg: My super website"
2257
  msgstr ""
2258
 
2259
  #. ID
2260
- #: inc/admin/admin-wizard.php:510 inc/admin/admin.php:1556
2261
  msgid "Person or organization"
2262
  msgstr ""
2263
 
2264
- #: inc/admin/admin-wizard.php:512
2265
  msgid "Choose a knowledge type"
2266
  msgstr ""
2267
 
2268
- #: inc/admin/admin-wizard.php:522 inc/admin/admin.php:4279
2269
  msgid "Person"
2270
  msgstr ""
2271
 
2272
- #: inc/admin/admin-wizard.php:527 inc/admin/admin.php:4284
2273
  msgid "Organization"
2274
  msgstr ""
2275
 
2276
  #. ID
2277
- #: inc/admin/admin-wizard.php:530 inc/admin/admin.php:1564
2278
- #: inc/admin/admin.php:4296
2279
  msgid "Your name/organization"
2280
  msgstr ""
2281
 
2282
- #: inc/admin/admin-wizard.php:531
2283
  msgid "eg: My Company Name"
2284
  msgstr ""
2285
 
2286
  #. ID
2287
- #: inc/admin/admin-wizard.php:533 inc/admin/admin.php:1572
2288
- #: inc/admin/admin.php:4308
2289
  msgid "Your photo/organization logo"
2290
  msgstr ""
2291
 
2292
- #: inc/admin/admin-wizard.php:534
2293
  msgid "eg: https://www.example.com/logo.png"
2294
  msgstr ""
2295
 
2296
- #: inc/admin/admin-wizard.php:536
2297
  msgid "Facebook page URL"
2298
  msgstr ""
2299
 
2300
- #: inc/admin/admin-wizard.php:537 inc/admin/admin.php:4438
2301
  msgid "eg: https://facebook.com/my-page-url"
2302
  msgstr ""
2303
 
2304
  #. ID
2305
- #: inc/admin/admin-wizard.php:539 inc/admin/admin.php:1621
2306
  msgid "Twitter Username"
2307
  msgstr ""
2308
 
2309
- #: inc/admin/admin-wizard.php:540 inc/admin/admin.php:4447
2310
  msgid "eg: @my_twitter_account"
2311
  msgstr ""
2312
 
2313
  #. ID
2314
- #: inc/admin/admin-wizard.php:542 inc/admin/admin.php:1629
2315
- #: inc/admin/admin.php:4456
2316
  msgid "Pinterest URL"
2317
  msgstr ""
2318
 
2319
- #: inc/admin/admin-wizard.php:543 inc/admin/admin.php:4456
2320
  msgid "eg: https://pinterest.com/my-page-url/"
2321
  msgstr ""
2322
 
2323
  #. ID
2324
- #: inc/admin/admin-wizard.php:545 inc/admin/admin.php:1637
2325
- #: inc/admin/admin.php:4465
2326
  msgid "Instagram URL"
2327
  msgstr ""
2328
 
2329
- #: inc/admin/admin-wizard.php:546 inc/admin/admin.php:4465
2330
  msgid "eg: https://www.instagram.com/my-page-url/"
2331
  msgstr ""
2332
 
2333
  #. ID
2334
- #: inc/admin/admin-wizard.php:548 inc/admin/admin.php:1645
2335
- #: inc/admin/admin.php:4474
2336
  msgid "YouTube URL"
2337
  msgstr ""
2338
 
2339
- #: inc/admin/admin-wizard.php:549 inc/admin/admin.php:4474
2340
  msgid "eg: https://www.youtube.com/my-channel-url"
2341
  msgstr ""
2342
 
2343
  #. ID
2344
- #: inc/admin/admin-wizard.php:551 inc/admin/admin.php:1653
2345
- #: inc/admin/admin.php:4483
2346
  msgid "LinkedIn URL"
2347
  msgstr ""
2348
 
2349
- #: inc/admin/admin-wizard.php:552 inc/admin/admin.php:4483
2350
  msgid "eg: http://linkedin.com/company/my-company-url/"
2351
  msgstr ""
2352
 
2353
- #: inc/admin/admin-wizard.php:555 inc/admin/admin-wizard.php:699
2354
- #: inc/admin/admin-wizard.php:877
2355
  msgid "Continue"
2356
  msgstr ""
2357
 
2358
- #: inc/admin/admin-wizard.php:603
2359
  msgid "Specify to the search engines what you want to be indexed or not."
2360
  msgstr ""
2361
 
2362
- #: inc/admin/admin-wizard.php:604
2363
  msgid "Avoid indexing duplicate or poor quality content."
2364
  msgstr ""
2365
 
2366
- #: inc/admin/admin-wizard.php:605
2367
  msgid "Default: index"
2368
  msgstr ""
2369
 
2370
- #: inc/admin/admin-wizard.php:610
2371
  msgid "For which single post types, should indexing be disabled?"
2372
  msgstr ""
2373
 
2374
- #: inc/admin/admin-wizard.php:629
2375
  msgid ""
2376
  "Do not display this single post type in search engine "
2377
  "results <strong>(noindex)</strong>"
2378
  msgstr ""
2379
 
2380
- #: inc/admin/admin-wizard.php:640
2381
  msgid "For which post type archives, should indexing be disabled?"
2382
  msgstr ""
2383
 
2384
- #: inc/admin/admin-wizard.php:659
2385
  msgid ""
2386
  "Do not display this post type archive in search engine "
2387
  "results <strong>(noindex)</strong>"
2388
  msgstr ""
2389
 
2390
- #: inc/admin/admin-wizard.php:671
2391
  msgid "For which taxonomy archives, should indexing be disabled?"
2392
  msgstr ""
2393
 
2394
- #: inc/admin/admin-wizard.php:690
2395
  msgid ""
2396
  "Do not display this taxonomy archive in search engine "
2397
  "results <strong>(noindex)</strong>"
2398
  msgstr ""
2399
 
2400
- #: inc/admin/admin-wizard.php:777 inc/admin/admin.php:3602
2401
  msgid ""
2402
  "Do not display author archives in search engine results <strong>(noindex)</"
2403
  "strong>"
2404
  msgstr ""
2405
 
2406
- #: inc/admin/admin-wizard.php:781
2407
  msgid ""
2408
  "You only have one author on your site? Check this option to avoid duplicate "
2409
  "content."
2410
  msgstr ""
2411
 
2412
- #: inc/admin/admin-wizard.php:790 inc/admin/admin.php:5678
2413
  msgid ""
2414
  "Redirect attachment pages to their file URL (https://www.example.com/my-"
2415
  "image-file.jpg)"
2416
  msgstr ""
2417
 
2418
- #: inc/admin/admin-wizard.php:794
2419
  msgid ""
2420
  "By default, SEOPress redirects your Attachment pages to the parent post. "
2421
  "Optimize this by redirecting the user directly to the URL of the media file."
2422
  msgstr ""
2423
 
2424
- #: inc/admin/admin-wizard.php:803 inc/admin/admin.php:5832
2425
  msgid "Remove /category/ in your permalinks"
2426
  msgstr ""
2427
 
2428
- #: inc/admin/admin-wizard.php:807
2429
  msgid "Shorten your URLs by removing /category/ and improve your SEO."
2430
  msgstr ""
2431
 
2432
- #: inc/admin/admin-wizard.php:812
2433
  msgid "Choose which SEO columns to display in post types list:"
2434
  msgstr ""
2435
 
2436
  #. ID
2437
- #: inc/admin/admin-wizard.php:822 inc/admin/admin.php:2539
2438
  msgid "Show Title tag column in post types"
2439
  msgstr ""
2440
 
2441
  #. ID
2442
- #: inc/admin/admin-wizard.php:832 inc/admin/admin.php:2547
2443
  msgid "Show Meta description column in post types"
2444
  msgstr ""
2445
 
2446
  #. ID
2447
- #: inc/admin/admin-wizard.php:842 inc/admin/admin.php:2587
2448
  msgid "Show noindex column in post types"
2449
  msgstr ""
2450
 
2451
- #: inc/admin/admin-wizard.php:846
2452
  msgid "Quickly know if a content is in noindex."
2453
  msgstr ""
2454
 
2455
  #. ID
2456
- #: inc/admin/admin-wizard.php:855 inc/admin/admin.php:2595
2457
  msgid "Show nofollow column in post types"
2458
  msgstr ""
2459
 
2460
- #: inc/admin/admin-wizard.php:859
2461
  msgid "Quickly know if a content is in nofollow."
2462
  msgstr ""
2463
 
2464
  #. ID
2465
- #: inc/admin/admin-wizard.php:868 inc/admin/admin.php:2638
2466
  msgid "Show content analysis score column in post types"
2467
  msgstr ""
2468
 
2469
- #: inc/admin/admin-wizard.php:872
2470
  msgid "Quickly know if a content is optimized for search engines."
2471
  msgstr ""
2472
 
2473
  #. Flush permalinks
2474
- #: inc/admin/admin-wizard.php:927
2475
  msgid "Your site is now ready for search engines!"
2476
  msgstr ""
2477
 
2478
- #: inc/admin/admin-wizard.php:933 inc/functions/options-advanced-admin.php:19
2479
  msgid "Welcome to SEOPress PRO!"
2480
  msgstr ""
2481
 
2482
- #: inc/admin/admin-wizard.php:936 inc/functions/options-advanced-admin.php:20
2483
  msgid ""
2484
  "Please activate your license to receive automatic updates and get premium "
2485
  "support."
2486
  msgstr ""
2487
 
2488
- #: inc/admin/admin-wizard.php:941 inc/functions/options-advanced-admin.php:21
2489
  msgid "Activate License"
2490
  msgstr ""
2491
 
2492
- #: inc/admin/admin-wizard.php:948
2493
  msgid "Go PRO with SEOPress PRO!"
2494
  msgstr ""
2495
 
2496
- #: inc/admin/admin-wizard.php:951
2497
  msgid ""
2498
  "When you upgrade to the PRO version, you get a lot of additional features, "
2499
  "like automatic and manual schemas, Video Sitemap, WooCommerce enhancements, "
2500
  "Analytics statistics in your Dashboard, breadcrumbs, redirections, and more."
2501
  msgstr ""
2502
 
2503
- #: inc/admin/admin-wizard.php:956
2504
  msgid "Buy SEOPress PRO - $39 / unlimited sites"
2505
  msgstr ""
2506
 
2507
- #: inc/admin/admin-wizard.php:966
2508
  msgid "Create your XML sitemaps"
2509
  msgstr ""
2510
 
2511
- #: inc/admin/admin-wizard.php:967
2512
  msgid "Build custom XML sitemaps to improve Google's crawling of your site."
2513
  msgstr ""
2514
 
2515
- #: inc/admin/admin-wizard.php:972
2516
  msgid "Configure your XML sitemaps"
2517
  msgstr ""
2518
 
2519
- #: inc/admin/admin-wizard.php:980
2520
  msgid "You can also:"
2521
  msgstr ""
2522
 
2523
- #: inc/admin/admin-wizard.php:985
2524
  msgid "Visit Dashboard"
2525
  msgstr ""
2526
 
2527
- #: inc/admin/admin-wizard.php:988
2528
  msgid "Review Settings"
2529
  msgstr ""
2530
 
2531
- #: inc/admin/admin-wizard.php:991
2532
  msgid "Knowledge base"
2533
  msgstr ""
2534
 
2535
- #: inc/admin/admin.php:35
2536
  msgid "SEOPress Option Page"
2537
  msgstr ""
2538
 
2539
- #: inc/admin/admin.php:36
2540
  msgid "Dashboard"
2541
  msgstr ""
2542
 
2543
- #: inc/admin/admin.php:50
2544
- #, php-format
2545
- msgid "%%sep%%"
2546
- msgstr ""
2547
-
2548
- #: inc/admin/admin.php:50
2549
- msgid "Separator (eg: - )"
2550
- msgstr ""
2551
-
2552
- #: inc/admin/admin.php:51
2553
- #, php-format
2554
- msgid "%%sitetitle%% (alias: %%sitename%%)"
2555
- msgstr ""
2556
-
2557
- #: inc/admin/admin.php:52
2558
- #, php-format
2559
- msgid "%%tagline%% (alias %%sitedesc%%)"
2560
- msgstr ""
2561
-
2562
- #: inc/admin/admin.php:53
2563
- #, php-format
2564
- msgid "%%post_title%% (alias %%title%%)"
2565
- msgstr ""
2566
-
2567
- #: inc/admin/admin.php:53
2568
- msgid "Post Title (post, page, custom post type)"
2569
- msgstr ""
2570
-
2571
- #: inc/admin/admin.php:54
2572
- #, php-format
2573
- msgid "%%post_excerpt%% (alias %%excerpt%%)"
2574
- msgstr ""
2575
-
2576
- #: inc/admin/admin.php:55
2577
- #, php-format
2578
- msgid "%%post_content%%"
2579
- msgstr ""
2580
-
2581
- #: inc/admin/admin.php:55
2582
- msgid "Post content / product long description"
2583
- msgstr ""
2584
-
2585
- #: inc/admin/admin.php:56
2586
- #, php-format
2587
- msgid "%%post_thumbnail_url%%"
2588
- msgstr ""
2589
-
2590
- #: inc/admin/admin.php:57
2591
- #, php-format
2592
- msgid "%%post_url%%"
2593
- msgstr ""
2594
-
2595
- #: inc/admin/admin.php:57
2596
- msgid "Post URL (permalink)"
2597
- msgstr ""
2598
-
2599
- #: inc/admin/admin.php:58
2600
- #, php-format
2601
- msgid "%%post_date%% (alias %%date%%)"
2602
- msgstr ""
2603
-
2604
- #: inc/admin/admin.php:59
2605
- #, php-format
2606
- msgid "%%post_modified_date%%"
2607
- msgstr ""
2608
-
2609
- #: inc/admin/admin.php:59
2610
- msgid "Last modified post date"
2611
- msgstr ""
2612
-
2613
- #: inc/admin/admin.php:60
2614
- #, php-format
2615
- msgid "%%post_author%%"
2616
- msgstr ""
2617
-
2618
- #: inc/admin/admin.php:61
2619
- #, php-format
2620
- msgid "%%post_category%%"
2621
- msgstr ""
2622
-
2623
- #: inc/admin/admin.php:62
2624
- #, php-format
2625
- msgid "%%post_tag%%"
2626
- msgstr ""
2627
-
2628
- #: inc/admin/admin.php:63
2629
- #, php-format
2630
- msgid "%%_category_title%%"
2631
- msgstr ""
2632
-
2633
- #: inc/admin/admin.php:64
2634
- #, php-format
2635
- msgid "%%_category_description%%"
2636
- msgstr ""
2637
-
2638
- #: inc/admin/admin.php:65
2639
- #, php-format
2640
- msgid "%%tag_title%%"
2641
- msgstr ""
2642
-
2643
- #: inc/admin/admin.php:66
2644
- #, php-format
2645
- msgid "%%tag_description%%"
2646
- msgstr ""
2647
-
2648
- #: inc/admin/admin.php:67
2649
- #, php-format
2650
- msgid "%%term_title%%"
2651
- msgstr ""
2652
-
2653
- #: inc/admin/admin.php:68
2654
- #, php-format
2655
- msgid "%%term_description%%"
2656
- msgstr ""
2657
-
2658
- #: inc/admin/admin.php:69
2659
- #, php-format
2660
- msgid "%%search_keywords%%"
2661
- msgstr ""
2662
-
2663
- #: inc/admin/admin.php:70
2664
- #, php-format
2665
- msgid "%%current_pagination%%"
2666
- msgstr ""
2667
-
2668
- #: inc/admin/admin.php:71
2669
- #, php-format
2670
- msgid "%%page%%"
2671
- msgstr ""
2672
-
2673
- #: inc/admin/admin.php:71
2674
- msgid "Current page number with context (i.e. page 1 of 3)"
2675
- msgstr ""
2676
-
2677
- #: inc/admin/admin.php:72
2678
- #, php-format
2679
- msgid "%%cpt_plural%%"
2680
- msgstr ""
2681
-
2682
- #: inc/admin/admin.php:73
2683
- #, php-format
2684
- msgid "%%archive_title%%"
2685
- msgstr ""
2686
-
2687
- #: inc/admin/admin.php:74
2688
- #, php-format
2689
- msgid "%%archive_date%%"
2690
- msgstr ""
2691
-
2692
- #: inc/admin/admin.php:74
2693
- msgid "Date Archive"
2694
- msgstr ""
2695
-
2696
- #: inc/admin/admin.php:75
2697
- #, php-format
2698
- msgid "%%archive_date_day%%"
2699
- msgstr ""
2700
-
2701
- #: inc/admin/admin.php:76
2702
- #, php-format
2703
- msgid "%%archive_date_month%%"
2704
- msgstr ""
2705
-
2706
- #: inc/admin/admin.php:77
2707
- #, php-format
2708
- msgid "%%archive_date_year%%"
2709
- msgstr ""
2710
-
2711
- #: inc/admin/admin.php:78
2712
- #, php-format
2713
- msgid "%%_cf_your_custom_field_name%%"
2714
- msgstr ""
2715
-
2716
- #: inc/admin/admin.php:78
2717
- msgid ""
2718
- "Custom fields from post, page or post type (replace <span style=\"color:red;"
2719
- "margin:0\">your_custom_field_name</span> with your custom field name)"
2720
- msgstr ""
2721
-
2722
  #: inc/admin/admin.php:79
2723
- #, php-format
2724
- msgid "%%_ct_your_custom_taxonomy_slug%%"
2725
- msgstr ""
2726
-
2727
- #: inc/admin/admin.php:79
2728
- msgid ""
2729
- "Custom term taxonomy from post, page or post type (replace <span style="
2730
- "\"color:red;margin:0\">your_custom_taxonomy_slug</span> with your custom "
2731
- "taxonomy slug)"
2732
- msgstr ""
2733
-
2734
- #: inc/admin/admin.php:80
2735
- #, php-format
2736
- msgid "%%wc_single_cat%%"
2737
- msgstr ""
2738
-
2739
- #: inc/admin/admin.php:81
2740
- #, php-format
2741
- msgid "%%wc_single_tag%%"
2742
- msgstr ""
2743
-
2744
- #: inc/admin/admin.php:82
2745
- #, php-format
2746
- msgid "%%wc_single_short_desc%%"
2747
- msgstr ""
2748
-
2749
- #: inc/admin/admin.php:83
2750
- #, php-format
2751
- msgid "%%wc_single_price%%"
2752
- msgstr ""
2753
-
2754
- #: inc/admin/admin.php:84
2755
- #, php-format
2756
- msgid "%%wc_single_price_exc_tax%%"
2757
- msgstr ""
2758
-
2759
- #: inc/admin/admin.php:85
2760
- #, php-format
2761
- msgid "%%wc_sku%%"
2762
- msgstr ""
2763
-
2764
- #: inc/admin/admin.php:86
2765
- #, php-format
2766
- msgid "%%currentday%%"
2767
- msgstr ""
2768
-
2769
- #: inc/admin/admin.php:87
2770
- #, php-format
2771
- msgid "%%currentmonth%%"
2772
- msgstr ""
2773
-
2774
- #: inc/admin/admin.php:88
2775
- #, php-format
2776
- msgid "%%currentmonth_short%%"
2777
- msgstr ""
2778
-
2779
- #: inc/admin/admin.php:88
2780
- msgid "Current month in 3 letters, eg: \"Jan\" for \"January\""
2781
- msgstr ""
2782
-
2783
- #: inc/admin/admin.php:89
2784
- #, php-format
2785
- msgid "%%currentyear%%"
2786
- msgstr ""
2787
-
2788
- #: inc/admin/admin.php:90
2789
- #, php-format
2790
- msgid "%%currentdate%%"
2791
- msgstr ""
2792
-
2793
- #: inc/admin/admin.php:91
2794
- #, php-format
2795
- msgid "%%currenttime%%"
2796
- msgstr ""
2797
-
2798
- #: inc/admin/admin.php:92
2799
- #, php-format
2800
- msgid "%%author_bio%%"
2801
- msgstr ""
2802
-
2803
- #: inc/admin/admin.php:92
2804
- msgid "Author biography (description), meta desc only"
2805
- msgstr ""
2806
-
2807
- #: inc/admin/admin.php:93
2808
- #, php-format
2809
- msgid "%%currentmonth_num%%"
2810
- msgstr ""
2811
-
2812
- #: inc/admin/admin.php:101
2813
  msgid "Templates variables"
2814
  msgstr ""
2815
 
2816
- #: inc/admin/admin.php:107
2817
  msgid "Edit your meta robots"
2818
  msgstr ""
2819
 
2820
- #: inc/admin/admin.php:114 inc/admin/admin.php:122
2821
  msgid "Browse our guides"
2822
  msgstr ""
2823
 
2824
- #: inc/admin/admin.php:115 inc/admin/admin.php:123
2825
  msgid "Read our FAQ"
2826
  msgstr ""
2827
 
2828
- #: inc/admin/admin.php:116 inc/admin/admin.php:124
2829
  msgid "Check our website"
2830
  msgstr ""
2831
 
2832
- #: inc/admin/admin.php:135
2833
  msgid ""
2834
  "Watch our video to learn how to enable XML sitemaps to improve crawling and "
2835
  "them to Google Search Console."
2836
  msgstr ""
2837
 
2838
- #: inc/admin/admin.php:140 inc/admin/admin.php:169 inc/admin/admin.php:198
2839
  msgid "How-to"
2840
  msgstr ""
2841
 
2842
- #: inc/admin/admin.php:164
2843
  msgid ""
2844
  "Watch our video to learn how to edit your Open Graph and Twitters Cards tags "
2845
  "to improve social sharing."
2846
  msgstr ""
2847
 
2848
- #: inc/admin/admin.php:193
2849
  msgid ""
2850
  "Watch our video to learn how to connect your WordPress site with Google "
2851
  "Analytics and get statistics right in your dashboard (PRO only)."
2852
  msgstr ""
2853
 
2854
- #: inc/admin/admin.php:228 inc/admin/admin.php:306 inc/admin/admin.php:378
2855
- #: inc/admin/admin.php:452 inc/admin/admin.php:555
2856
- msgid "Your settings has been saved."
2857
  msgstr ""
2858
 
2859
- #: inc/admin/admin.php:247 inc/admin/admin.php:251 inc/admin/admin.php:324
2860
- #: inc/admin/admin.php:328 inc/admin/admin.php:397 inc/admin/admin.php:401
2861
- #: inc/admin/admin.php:472 inc/admin/admin.php:476 inc/admin/admin.php:574
2862
- #: inc/admin/admin.php:578
2863
  msgid "Click to disable this feature"
2864
  msgstr ""
2865
 
2866
- #: inc/admin/admin.php:248 inc/admin/admin.php:250 inc/admin/admin.php:325
2867
- #: inc/admin/admin.php:327 inc/admin/admin.php:398 inc/admin/admin.php:400
2868
- #: inc/admin/admin.php:473 inc/admin/admin.php:475 inc/admin/admin.php:575
2869
- #: inc/admin/admin.php:577
2870
  msgid "Click to enable this feature"
2871
  msgstr ""
2872
 
2873
- #: inc/admin/admin.php:264
2874
  msgid "Home"
2875
  msgstr ""
2876
 
2877
- #: inc/admin/admin.php:265
2878
  msgid "Single Post Types"
2879
  msgstr ""
2880
 
2881
- #: inc/admin/admin.php:266
2882
  msgid "Archives"
2883
  msgstr ""
2884
 
2885
- #: inc/admin/admin.php:267 inc/admin/admin.php:343
2886
  msgid "Taxonomies"
2887
  msgstr ""
2888
 
2889
- #: inc/admin/admin.php:341 inc/admin/admin.php:490 inc/admin/admin.php:501
2890
  msgid "General"
2891
  msgstr ""
2892
 
2893
- #: inc/admin/admin.php:342
2894
  msgid "Post Types"
2895
  msgstr ""
2896
 
2897
- #: inc/admin/admin.php:344
2898
  msgid "HTML Sitemap"
2899
  msgstr ""
2900
 
2901
- #: inc/admin/admin.php:414
2902
  msgid "Knowledge Graph"
2903
  msgstr ""
2904
 
2905
- #: inc/admin/admin.php:415
2906
  msgid "Your social accounts"
2907
  msgstr ""
2908
 
2909
- #: inc/admin/admin.php:416
2910
  msgid "Facebook (Open Graph)"
2911
  msgstr ""
2912
 
2913
- #: inc/admin/admin.php:417
2914
  msgid "Twitter (Twitter card)"
2915
  msgstr ""
2916
 
2917
- #: inc/admin/admin.php:491 inc/admin/admin.php:502
 
 
 
 
2918
  msgid "Tracking"
2919
  msgstr ""
2920
 
2921
- #: inc/admin/admin.php:492
2922
  msgid "Ecommerce"
2923
  msgstr ""
2924
 
2925
- #: inc/admin/admin.php:493 inc/admin/admin.php:503
2926
  msgid "Events"
2927
  msgstr ""
2928
 
2929
- #: inc/admin/admin.php:494 inc/admin/admin.php:504
2930
  msgid "Custom Dimensions"
2931
  msgstr ""
2932
 
2933
- #: inc/admin/admin.php:495
2934
  msgid "Stats in Dashboard"
2935
  msgstr ""
2936
 
2937
- #: inc/admin/admin.php:496 inc/admin/admin.php:505
2938
  msgid "Cookie bar / GDPR"
2939
  msgstr ""
2940
 
2941
- #: inc/admin/admin.php:497 inc/admin/admin.php:506
2942
  msgid "Matomo"
2943
  msgstr ""
2944
 
2945
- #: inc/admin/admin.php:592
 
 
 
 
2946
  msgid "Appearance"
2947
  msgstr ""
2948
 
2949
- #: inc/admin/admin.php:593
2950
  msgid "Security"
2951
  msgstr ""
2952
 
2953
- #: inc/admin/admin.php:630
 
 
 
 
2954
  msgid "Data"
2955
  msgstr ""
2956
 
2957
- #: inc/admin/admin.php:631 seopress.php:514
2958
  msgid "Settings"
2959
  msgstr ""
2960
 
2961
- #: inc/admin/admin.php:632
2962
  msgid "Plugins"
2963
  msgstr ""
2964
 
2965
- #: inc/admin/admin.php:634
2966
  msgid "Reset"
2967
  msgstr ""
2968
 
2969
- #: inc/admin/admin.php:653
2970
  msgid "Import data from a CSV"
2971
  msgstr ""
2972
 
2973
- #: inc/admin/admin.php:654
2974
  msgid ""
2975
  "Upload a CSV file to quickly import post (post, page, single post type) and "
2976
  "term metadata:"
2977
  msgstr ""
2978
 
2979
- #: inc/admin/admin.php:663 inc/admin/admin.php:699
2980
  msgid "Meta robots (noindex, nofollow...)"
2981
  msgstr ""
2982
 
2983
- #: inc/admin/admin.php:666 inc/admin/admin.php:702
2984
  msgid "Facebook Open Graph tags (title, description, image)"
2985
  msgstr ""
2986
 
2987
- #: inc/admin/admin.php:669 inc/admin/admin.php:705
2988
  msgid "Twitter cards tags (title, description, image)"
2989
  msgstr ""
2990
 
2991
- #: inc/admin/admin.php:672 inc/admin/admin.php:708
2992
  msgid "Redirection (enable, type, URL)"
2993
  msgstr ""
2994
 
2995
- #: inc/admin/admin.php:684
2996
  msgid "Run the importer"
2997
  msgstr ""
2998
 
2999
- #: inc/admin/admin.php:689
3000
  msgid "Export metadata to a CSV"
3001
  msgstr ""
3002
 
3003
- #: inc/admin/admin.php:690
3004
  msgid ""
3005
  "Export your post (post, page, single post type) and term metadata for this "
3006
  "site as a .csv file."
3007
  msgstr ""
3008
 
3009
- #: inc/admin/admin.php:724 inc/admin/admin.php:744
3010
  msgid "Export"
3011
  msgstr ""
3012
 
3013
- #: inc/admin/admin.php:738
3014
  msgid "Export plugin settings"
3015
  msgstr ""
3016
 
3017
- #: inc/admin/admin.php:739
3018
  msgid ""
3019
  "Export the plugin settings for this site as a .json file. This allows you to "
3020
  "easily import the configuration into another site."
3021
  msgstr ""
3022
 
3023
- #: inc/admin/admin.php:752
3024
  msgid "Import plugin settings"
3025
  msgstr ""
3026
 
3027
- #: inc/admin/admin.php:753
3028
  msgid ""
3029
  "Import the plugin settings from a .json file. This file can be obtained by "
3030
  "exporting the settings on another site using the form above."
3031
  msgstr ""
3032
 
3033
- #: inc/admin/admin.php:761
3034
  msgid "Import"
3035
  msgstr ""
3036
 
3037
- #: inc/admin/admin.php:763
3038
  msgid "Import completed!"
3039
  msgstr ""
3040
 
 
 
 
 
3041
  #: inc/admin/admin.php:885
3042
  msgid ""
3043
  "<strong>WARNING:</strong> Migration will update/delete all SEOPress posts "
@@ -3045,820 +2899,805 @@ msgid ""
3045
  "any Squirrly SEO data."
3046
  msgstr ""
3047
 
3048
- #: inc/admin/admin.php:978
3049
  msgid "Redirections feature is disabled. Please activate it from the PRO page."
3050
  msgstr ""
3051
 
3052
- #: inc/admin/admin.php:979
3053
  msgid "Activate Redirections"
3054
  msgstr ""
3055
 
3056
- #: inc/admin/admin.php:988
3057
  msgid "Reset All Notices From Notifications Center"
3058
  msgstr ""
3059
 
3060
- #: inc/admin/admin.php:989
3061
  msgid ""
3062
  "By clicking Reset Notices, all notices in the notifications center will be "
3063
  "set to their initial status."
3064
  msgstr ""
3065
 
3066
- #: inc/admin/admin.php:994
3067
  msgid "Reset notices"
3068
  msgstr ""
3069
 
3070
- #: inc/admin/admin.php:1002
3071
  msgid "Reset All Settings"
3072
  msgstr ""
3073
 
3074
- #: inc/admin/admin.php:1003
3075
  msgid ""
3076
  "<strong>WARNING:</strong> Delete all options related to this plugin in your "
3077
  "database AND set settings to their default values."
3078
  msgstr ""
3079
 
3080
- #: inc/admin/admin.php:1008
3081
  msgid "Reset settings"
3082
  msgstr ""
3083
 
3084
  #. ID
3085
- #: inc/admin/admin.php:1125 inc/admin/admin.php:3013
3086
  msgid "Site title"
3087
  msgstr ""
3088
 
3089
  #. ID
3090
- #: inc/admin/admin.php:1344 inc/admin/admin.php:3778
3091
  msgid "noindex"
3092
  msgstr ""
3093
 
3094
  #. ID
3095
- #: inc/admin/admin.php:1352 inc/admin/admin.php:3800
3096
  msgid "nofollow"
3097
  msgstr ""
3098
 
3099
  #. ID
3100
- #: inc/admin/admin.php:1360 inc/admin/admin.php:3820
3101
  msgid "noodp"
3102
  msgstr ""
3103
 
3104
  #. ID
3105
- #: inc/admin/admin.php:1368 inc/admin/admin.php:3840
3106
  msgid "noimageindex"
3107
  msgstr ""
3108
 
3109
  #. ID
3110
- #: inc/admin/admin.php:1376 inc/admin/admin.php:3860
3111
  msgid "noarchive"
3112
  msgstr ""
3113
 
3114
  #. ID
3115
- #: inc/admin/admin.php:1384 inc/admin/admin.php:3880
3116
  msgid "nosnippet"
3117
  msgstr ""
3118
 
3119
  #. ID
3120
- #: inc/admin/admin.php:1392 inc/admin/admin.php:3900
3121
  msgid "nositelinkssearchbox"
3122
  msgstr ""
3123
 
3124
  #. ID
3125
- #: inc/admin/admin.php:1400
3126
  msgid "Indicate paginated content to Google"
3127
  msgstr ""
3128
 
3129
  #. ID
3130
- #: inc/admin/admin.php:1408
3131
  msgid "noindex on paged archives"
3132
  msgstr ""
3133
 
3134
  #. ID
3135
- #: inc/admin/admin.php:1425 inc/admin/admin.php:3958
3136
  msgid "Enable XML Sitemap"
3137
  msgstr ""
3138
 
3139
  #. ID
3140
- #: inc/admin/admin.php:1433
3141
  msgid "Enable XML Image Sitemaps"
3142
  msgstr ""
3143
 
3144
  #. ID
3145
- #: inc/admin/admin.php:1442
3146
  msgid "Enable XML Video Sitemaps"
3147
  msgstr ""
3148
 
3149
  #. ID
3150
- #: inc/admin/admin.php:1451 inc/admin/admin.php:4042
3151
  msgid "Enable Author Sitemap"
3152
  msgstr ""
3153
 
3154
  #. ID
3155
- #: inc/admin/admin.php:1459 inc/admin/admin.php:4062
3156
  msgid "Enable HTML Sitemap"
3157
  msgstr ""
3158
 
3159
  #. ID
3160
- #: inc/admin/admin.php:1475
3161
  msgid "Check to INCLUDE Post Types"
3162
  msgstr ""
3163
 
3164
  #. ID
3165
- #: inc/admin/admin.php:1491
3166
  msgid "Check to INCLUDE Taxonomies"
3167
  msgstr ""
3168
 
3169
  #. ID
3170
- #: inc/admin/admin.php:1507 inc/admin/admin.php:4167
3171
  msgid "Enter a post, page or custom post type ID(s) to display the sitemap"
3172
  msgstr ""
3173
 
3174
  #. ID
3175
- #: inc/admin/admin.php:1515 inc/admin/admin.php:4180
3176
  msgid "Exclude some Posts, Pages, Custom Post Types or Terms IDs"
3177
  msgstr ""
3178
 
3179
  #. ID
3180
- #: inc/admin/admin.php:1523
3181
  msgid "Sort order"
3182
  msgstr ""
3183
 
3184
  #. ID
3185
- #: inc/admin/admin.php:1531
3186
  msgid "Order posts by"
3187
  msgstr ""
3188
 
3189
  #. ID
3190
- #: inc/admin/admin.php:1539
3191
  msgid "Disable the display of the publication date"
3192
  msgstr ""
3193
 
3194
  #. ID
3195
- #: inc/admin/admin.php:1580 inc/admin/admin.php:4338
 
 
 
 
 
3196
  msgid "Organization's phone number (only for Organizations)"
3197
  msgstr ""
3198
 
3199
  #. ID
3200
- #: inc/admin/admin.php:1588
3201
  msgid "Contact type (only for Organizations)"
3202
  msgstr ""
3203
 
3204
  #. ID
3205
- #: inc/admin/admin.php:1596
3206
  msgid "Contact option (only for Organizations)"
3207
  msgstr ""
3208
 
3209
  #. ID
3210
- #: inc/admin/admin.php:1613 inc/admin/admin.php:4438
3211
  msgid "Facebook Page URL"
3212
  msgstr ""
3213
 
3214
  #. ID
3215
- #: inc/admin/admin.php:1670
3216
  msgid "Enable Open Graph Data"
3217
  msgstr ""
3218
 
3219
  #. ID
3220
- #: inc/admin/admin.php:1678 inc/admin/admin.php:4511 inc/admin/admin.php:4564
3221
  msgid "Select a default image"
3222
  msgstr ""
3223
 
3224
  #. ID
3225
- #: inc/admin/admin.php:1686
3226
  msgid "Apply this image to all your og:image tag"
3227
  msgstr ""
3228
 
3229
  #. ID
3230
- #: inc/admin/admin.php:1694
3231
  msgid "Define custom og:image tag for post type archive pages"
3232
  msgstr ""
3233
 
3234
  #. ID
3235
- #: inc/admin/admin.php:1702
3236
  msgid "Facebook Link Ownership ID"
3237
  msgstr ""
3238
 
3239
  #. ID
3240
- #: inc/admin/admin.php:1710
3241
  msgid "Facebook Admin ID"
3242
  msgstr ""
3243
 
3244
  #. ID
3245
- #: inc/admin/admin.php:1718
3246
  msgid "Facebook App ID"
3247
  msgstr ""
3248
 
3249
  #. ID
3250
- #: inc/admin/admin.php:1735
3251
  msgid "Enable Twitter Card"
3252
  msgstr ""
3253
 
3254
  #. ID
3255
- #: inc/admin/admin.php:1743
3256
  msgid "Use Open Graph if no Twitter Card is filled"
3257
  msgstr ""
3258
 
3259
  #. ID
3260
- #: inc/admin/admin.php:1751 inc/admin/admin.php:4659
3261
  msgid "Default Twitter Image"
3262
  msgstr ""
3263
 
3264
  #. ID
3265
- #: inc/admin/admin.php:1759
3266
  msgid "Image size for Twitter Summary card"
3267
  msgstr ""
3268
 
3269
  #. ID
3270
- #: inc/admin/admin.php:1776
3271
  msgid "Enable Google Analytics tracking"
3272
  msgstr ""
3273
 
3274
  #. ID
3275
- #: inc/admin/admin.php:1784 inc/admin/admin.php:2200 inc/admin/admin.php:4717
3276
  msgid "Enter your tracking ID"
3277
  msgstr ""
3278
 
3279
- #. ID
3280
- #: inc/admin/admin.php:1792
3281
- msgid "Enter your measurement ID (GA4)"
3282
- msgstr ""
3283
-
3284
- #. ID
3285
- #: inc/admin/admin.php:1800
3286
- msgid "Exclude user roles from tracking (Google Analytics and Matomo)"
3287
- msgstr ""
3288
-
3289
- #. ID
3290
- #: inc/admin/admin.php:1817
3291
- msgid "Analytics tracking opt-in"
3292
- msgstr ""
3293
-
3294
- #. ID
3295
- #: inc/admin/admin.php:1833
3296
- msgid "Consent message for user tracking"
3297
- msgstr ""
3298
-
3299
- #. ID
3300
- #: inc/admin/admin.php:1841
3301
- msgid "Accept button for user tracking"
3302
- msgstr ""
3303
-
3304
- #. ID
3305
- #: inc/admin/admin.php:1849
3306
- msgid "Close button"
3307
- msgstr ""
3308
-
3309
- #. ID
3310
- #: inc/admin/admin.php:1857
3311
- msgid "User consent cookie expiration date"
3312
- msgstr ""
3313
-
3314
- #. ID
3315
- #: inc/admin/admin.php:1865
3316
- msgid "Cookie bar position"
3317
- msgstr ""
3318
-
3319
  #. ID
3320
  #: inc/admin/admin.php:1873
3321
- msgid "Text alignment"
3322
  msgstr ""
3323
 
3324
  #. ID
3325
  #: inc/admin/admin.php:1881
3326
- msgid "Cookie bar width"
3327
- msgstr ""
3328
-
3329
- #. ID
3330
- #: inc/admin/admin.php:1889
3331
- msgid "Enable backdrop"
3332
- msgstr ""
3333
-
3334
- #. ID
3335
- #: inc/admin/admin.php:1897
3336
- msgid "Backdrop background color"
3337
  msgstr ""
3338
 
3339
  #. ID
3340
- #: inc/admin/admin.php:1905
3341
- msgid "Cookie bar background color"
3342
  msgstr ""
3343
 
3344
  #. ID
3345
- #: inc/admin/admin.php:1913
3346
- msgid "Cookie bar text color"
3347
  msgstr ""
3348
 
3349
  #. ID
3350
- #: inc/admin/admin.php:1921
3351
- msgid "Cookie bar link color"
3352
  msgstr ""
3353
 
3354
  #. ID
3355
- #: inc/admin/admin.php:1929
3356
- msgid "Cookie bar button background color"
3357
  msgstr ""
3358
 
3359
  #. ID
3360
- #: inc/admin/admin.php:1937
3361
- msgid "Cookie bar button color"
3362
  msgstr ""
3363
 
3364
  #. ID
3365
- #: inc/admin/admin.php:1945
3366
- msgid "Cookie bar button hover background color"
3367
  msgstr ""
3368
 
3369
  #. ID
3370
- #: inc/admin/admin.php:1953
3371
- msgid "Cookie bar button hover color"
3372
  msgstr ""
3373
 
3374
  #. ID
3375
- #: inc/admin/admin.php:1961
3376
- msgid "Cookie bar secondary button background color"
3377
  msgstr ""
3378
 
3379
  #. ID
3380
- #: inc/admin/admin.php:1969
3381
- msgid "Cookie bar secondary button color"
3382
  msgstr ""
3383
 
3384
  #. ID
3385
- #: inc/admin/admin.php:1977
3386
- msgid "Cookie bar secondary button hover background color"
3387
  msgstr ""
3388
 
3389
  #. ID
3390
- #: inc/admin/admin.php:1985
3391
- msgid "Cookie bar secondary button hover color"
3392
  msgstr ""
3393
 
3394
  #. ID
3395
- #: inc/admin/admin.php:2003
3396
  msgid "Enable Google Optimize"
3397
  msgstr ""
3398
 
3399
  #. ID
3400
- #: inc/admin/admin.php:2011
3401
  msgid "Enable Google Ads"
3402
  msgstr ""
3403
 
3404
  #. ID
3405
- #: inc/admin/admin.php:2019
3406
- msgid "Add an additional tracking code (like Facebook Pixel, Hotjar...)"
3407
  msgstr ""
3408
 
3409
  #. ID
3410
- #: inc/admin/admin.php:2027
3411
  msgid "[BODY] Add an additional tracking code (like Google Tag Manager...)"
3412
  msgstr ""
3413
 
3414
  #. ID
3415
- #: inc/admin/admin.php:2035
3416
  msgid ""
3417
  "[BODY (FOOTER)] Add an additional tracking code (like Google Tag Manager...)"
3418
  msgstr ""
3419
 
3420
  #. ID
3421
- #: inc/admin/admin.php:2043 inc/admin/admin.php:5144
3422
  msgid "Enable remarketing, demographics, and interests reporting"
3423
  msgstr ""
3424
 
3425
  #. ID
3426
- #: inc/admin/admin.php:2051 inc/admin/admin.php:5167
3427
  msgid "Enable IP Anonymization"
3428
  msgstr ""
3429
 
3430
  #. ID
3431
- #: inc/admin/admin.php:2059 inc/admin/admin.php:5190
3432
  msgid "Enhanced Link Attribution"
3433
  msgstr ""
3434
 
3435
  #. ID
3436
- #: inc/admin/admin.php:2067 inc/admin/admin.php:5213
3437
  msgid "Enable cross-domain tracking"
3438
  msgstr ""
3439
 
3440
  #. ID
3441
- #: inc/admin/admin.php:2075 inc/admin/admin.php:5229 inc/admin/admin.php:5564
3442
  msgid "Cross domains"
3443
  msgstr ""
3444
 
3445
  #. ID
3446
- #: inc/admin/admin.php:2093 inc/admin/admin.php:5245
3447
  msgid "Enable external links tracking"
3448
  msgstr ""
3449
 
3450
  #. ID
3451
- #: inc/admin/admin.php:2101
3452
  msgid "Enable downloads tracking (eg: PDF, XLSX, DOCX...)"
3453
  msgstr ""
3454
 
3455
  #. ID
3456
- #: inc/admin/admin.php:2109 inc/admin/admin.php:5274
3457
  msgid "Track downloads' clicks"
3458
  msgstr ""
3459
 
3460
  #. ID
3461
- #: inc/admin/admin.php:2117
3462
  msgid "Enable affiliate/outbound links tracking (eg: aff, go, out, recommends)"
3463
  msgstr ""
3464
 
3465
  #. ID
3466
- #: inc/admin/admin.php:2125 inc/admin/admin.php:5304
3467
  msgid "Track affiliate/outbound links"
3468
  msgstr ""
3469
 
3470
  #. ID
3471
- #: inc/admin/admin.php:2143
3472
  msgid "Track Authors"
3473
  msgstr ""
3474
 
3475
  #. ID
3476
- #: inc/admin/admin.php:2151
3477
  msgid "Track Categories"
3478
  msgstr ""
3479
 
3480
  #. ID
3481
- #: inc/admin/admin.php:2159
3482
  msgid "Track Tags"
3483
  msgstr ""
3484
 
3485
  #. ID
3486
- #: inc/admin/admin.php:2167
3487
  msgid "Track Post Types"
3488
  msgstr ""
3489
 
3490
  #. ID
3491
- #: inc/admin/admin.php:2175
3492
  msgid "Track Logged In Users"
3493
  msgstr ""
3494
 
3495
  #. ID
3496
- #: inc/admin/admin.php:2192
3497
  msgid "Enable Matomo tracking"
3498
  msgstr ""
3499
 
3500
  #. ID
3501
- #: inc/admin/admin.php:2208
3502
  msgid "Enter your site ID"
3503
  msgstr ""
3504
 
3505
  #. ID
3506
- #: inc/admin/admin.php:2216
3507
  msgid "Track visitors across all subdomains"
3508
  msgstr ""
3509
 
3510
  #. ID
3511
- #: inc/admin/admin.php:2224
3512
  msgid "Prepend the site domain"
3513
  msgstr ""
3514
 
3515
  #. ID
3516
- #: inc/admin/admin.php:2232 inc/admin/admin.php:5533
3517
  msgid "Track users with JavaScript disabled"
3518
  msgstr ""
3519
 
3520
  #. ID
3521
- #: inc/admin/admin.php:2240 inc/admin/admin.php:5551
3522
  msgid "Enables cross domain linking"
3523
  msgstr ""
3524
 
3525
  #. ID
3526
- #: inc/admin/admin.php:2248
3527
  msgid "Cross domain"
3528
  msgstr ""
3529
 
3530
  #. ID
3531
- #: inc/admin/admin.php:2255
3532
  msgid "Enable DoNotTrack detection"
3533
  msgstr ""
3534
 
3535
  #. ID
3536
- #: inc/admin/admin.php:2263
3537
  msgid "Disable all tracking cookies"
3538
  msgstr ""
3539
 
3540
  #. ID
3541
- #: inc/admin/admin.php:2271
3542
  msgid "Download & Outlink tracking"
3543
  msgstr ""
3544
 
3545
  #. ID
3546
- #: inc/admin/admin.php:2279
3547
  msgid "Disable all heatmaps and session recordings"
3548
  msgstr ""
3549
 
3550
  #. ID
3551
- #: inc/admin/admin.php:2296
3552
  msgid "Redirect attachment pages to post parent"
3553
  msgstr ""
3554
 
3555
  #. ID
3556
- #: inc/admin/admin.php:2304
3557
  msgid "Redirect attachment pages to their file URL"
3558
  msgstr ""
3559
 
3560
  #. ID
3561
- #: inc/admin/admin.php:2312
3562
  msgid "Remove ?replytocom link to avoid duplicate content"
3563
  msgstr ""
3564
 
3565
  #. ID
3566
- #: inc/admin/admin.php:2320
3567
  msgid "Automatically set the image Title"
3568
  msgstr ""
3569
 
3570
  #. ID
3571
- #: inc/admin/admin.php:2328
3572
  msgid "Automatically set the image Alt text"
3573
  msgstr ""
3574
 
3575
  #. ID
3576
- #: inc/admin/admin.php:2336
3577
  msgid "Automatically set the image Alt text from target keywords"
3578
  msgstr ""
3579
 
3580
  #. ID
3581
- #: inc/admin/admin.php:2344
3582
  msgid "Automatically set the image Caption"
3583
  msgstr ""
3584
 
3585
  #. ID
3586
- #: inc/admin/admin.php:2352
3587
  msgid "Automatically set the image Description"
3588
  msgstr ""
3589
 
3590
  #. ID
3591
- #: inc/admin/admin.php:2360
3592
  msgid "Add WP Editor to taxonomy description textarea"
3593
  msgstr ""
3594
 
3595
  #. ID
3596
- #: inc/admin/admin.php:2368
3597
  msgid "Remove /category/ in URL"
3598
  msgstr ""
3599
 
3600
  #. ID
3601
- #: inc/admin/admin.php:2376 inc/admin/admin.php:5850
3602
  msgid "Disable trailing slash for metas"
3603
  msgstr ""
3604
 
3605
  #. ID
3606
- #: inc/admin/admin.php:2384
3607
  msgid "Remove WordPress generator meta tag"
3608
  msgstr ""
3609
 
3610
  #. ID
3611
- #: inc/admin/admin.php:2392
3612
  msgid "Remove hentry post class"
3613
  msgstr ""
3614
 
3615
  #. ID
3616
- #: inc/admin/admin.php:2400
3617
  msgid "Remove author URL"
3618
  msgstr ""
3619
 
3620
  #. ID
3621
- #: inc/admin/admin.php:2408
3622
  msgid "Remove website field in comment form"
3623
  msgstr ""
3624
 
3625
  #. ID
3626
- #: inc/admin/admin.php:2416
3627
  msgid "Remove WordPress shortlink meta tag"
3628
  msgstr ""
3629
 
3630
  #. ID
3631
- #: inc/admin/admin.php:2424
3632
  msgid "Remove Windows Live Writer meta tag"
3633
  msgstr ""
3634
 
3635
  #. ID
3636
- #: inc/admin/admin.php:2432
3637
  msgid "Remove RSD meta tag"
3638
  msgstr ""
3639
 
3640
  #. ID
3641
- #: inc/admin/admin.php:2440 inc/admin/admin.php:5987
3642
  msgid "Google site verification"
3643
  msgstr ""
3644
 
3645
  #. ID
3646
- #: inc/admin/admin.php:2448 inc/admin/admin.php:5998
3647
  msgid "Bing site verification"
3648
  msgstr ""
3649
 
3650
  #. ID
3651
- #: inc/admin/admin.php:2456 inc/admin/admin.php:6008
3652
  msgid "Pinterest site verification"
3653
  msgstr ""
3654
 
3655
  #. ID
3656
- #: inc/admin/admin.php:2464 inc/admin/admin.php:6017
3657
  msgid "Yandex site verification"
3658
  msgstr ""
3659
 
3660
  #. ID
3661
- #: inc/admin/admin.php:2481
3662
  msgid "SEO in admin bar"
3663
  msgstr ""
3664
 
3665
  #. ID
3666
- #: inc/admin/admin.php:2489
3667
  msgid "Noindex in admin bar"
3668
  msgstr ""
3669
 
3670
  #. ID
3671
- #: inc/admin/admin.php:2497
3672
  msgid "Move SEO metabox's position"
3673
  msgstr ""
3674
 
3675
  #. ID
3676
- #: inc/admin/admin.php:2506
3677
  msgid "Set default tab for Structured data metabox"
3678
  msgstr ""
3679
 
3680
  #. ID
3681
- #: inc/admin/admin.php:2515
3682
  msgid "Hide Notifications Center"
3683
  msgstr ""
3684
 
3685
  #. ID
3686
- #: inc/admin/admin.php:2523
3687
  msgid "Hide SEO tools"
3688
  msgstr ""
3689
 
3690
  #. ID
3691
- #: inc/admin/admin.php:2531
3692
  msgid "Hide Useful Links"
3693
  msgstr ""
3694
 
3695
  #. ID
3696
- #: inc/admin/admin.php:2555
3697
  msgid "Show Redirection Enable column in post types"
3698
  msgstr ""
3699
 
3700
  #. ID
3701
- #: inc/admin/admin.php:2563
3702
  msgid "Show Redirect URL column in post types"
3703
  msgstr ""
3704
 
3705
  #. ID
3706
- #: inc/admin/admin.php:2571
3707
  msgid "Show canonical URL column in post types"
3708
  msgstr ""
3709
 
3710
  #. ID
3711
- #: inc/admin/admin.php:2579
3712
  msgid "Show Target Keyword column in post types"
3713
  msgstr ""
3714
 
3715
  #. ID
3716
- #: inc/admin/admin.php:2603
3717
  msgid "Show total number of words column in post types"
3718
  msgstr ""
3719
 
3720
  #. ID
3721
- #: inc/admin/admin.php:2611
3722
  msgid "Show W3C validator column in post types"
3723
  msgstr ""
3724
 
3725
  #. ID
3726
- #: inc/admin/admin.php:2619
3727
  msgid "Show Google Page Speed column in post types"
3728
  msgstr ""
3729
 
3730
  #. ID
3731
- #: inc/admin/admin.php:2629
3732
  msgid "Show Insights column in post types"
3733
  msgstr ""
3734
 
3735
  #. ID
3736
- #: inc/admin/admin.php:2646
 
 
 
 
 
3737
  msgid "Hide Genesis SEO Metabox"
3738
  msgstr ""
3739
 
3740
  #. ID
3741
- #: inc/admin/admin.php:2654
3742
  msgid "Hide Genesis SEO Settings link"
3743
  msgstr ""
3744
 
3745
  #. ID
3746
- #: inc/admin/admin.php:2662
3747
  msgid "Hide advice in Structured Data Types metabox"
3748
  msgstr ""
3749
 
3750
  #. ID
3751
- #: inc/admin/admin.php:2679
3752
  msgid "Block SEO metabox to user roles"
3753
  msgstr ""
3754
 
3755
  #. ID
3756
- #: inc/admin/admin.php:2687
3757
  msgid "Block Content analysis metabox to user roles"
3758
  msgstr ""
3759
 
3760
- #: inc/admin/admin.php:2808
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3761
  msgid "<p>Customize your title & meta description for homepage</p>"
3762
  msgstr ""
3763
 
3764
- #: inc/admin/admin.php:2821
3765
  msgid "<p>Customize your titles & metas for Single Custom Post Types</p>"
3766
  msgstr ""
3767
 
3768
- #: inc/admin/admin.php:2825
3769
  msgid "<p>Customize your metas for all pages</p>"
3770
  msgstr ""
3771
 
3772
- #: inc/admin/admin.php:2829
3773
  msgid "<p>Customize your metas for all taxonomies archives</p>"
3774
  msgstr ""
3775
 
3776
- #: inc/admin/admin.php:2833
3777
  msgid "<p>Customize your metas for all archives</p>"
3778
  msgstr ""
3779
 
3780
- #: inc/admin/admin.php:2840
3781
  msgid "Change this settings"
3782
  msgstr ""
3783
 
3784
- #: inc/admin/admin.php:2843
3785
  msgid ""
3786
  "To view your sitemap, enable permalinks (not default one), and save settings "
3787
  "to flush them."
3788
  msgstr ""
3789
 
3790
  #. IF NGINX
3791
- #: inc/admin/admin.php:2849
3792
  msgid ""
3793
  "Your server uses NGINX. If XML Sitemaps doesn't work properly, you need to "
3794
  "add this rule to your configuration:"
3795
  msgstr ""
3796
 
3797
- #: inc/admin/admin.php:2863
3798
  msgid "Noindex content will not be displayed in Sitemaps."
3799
  msgstr ""
3800
 
3801
- #: inc/admin/admin.php:2864
3802
  msgid ""
3803
  "If you disable globally this feature (using the blue toggle from above), the "
3804
  "native WordPress XML sitemaps will be re-activated."
3805
  msgstr ""
3806
 
3807
- #: inc/admin/admin.php:2876
3808
  msgid "Blank sitemap?"
3809
  msgstr ""
3810
 
3811
- #: inc/admin/admin.php:2877
3812
  msgid "404 error?"
3813
  msgstr ""
3814
 
3815
- #: inc/admin/admin.php:2878
3816
  msgid "HTML error? Exclude XML and XSL from caching plugins!"
3817
  msgstr ""
3818
 
3819
- #: inc/admin/admin.php:2880
3820
  msgid "View your sitemap"
3821
  msgstr ""
3822
 
3823
- #: inc/admin/admin.php:2882
3824
  msgid "Ping Google manually"
3825
  msgstr ""
3826
 
3827
- #: inc/admin/admin.php:2884
3828
  msgid "Flush permalinks"
3829
  msgstr ""
3830
 
3831
- #: inc/admin/admin.php:2889
3832
  msgid "<p>Create an HTML Sitemap for your visitors and boost your SEO.</p>"
3833
  msgstr ""
3834
 
3835
- #: inc/admin/admin.php:2890
3836
  msgid ""
3837
  "<p>Limited to 1,000 posts per post type. You can change the order and "
3838
  "sorting criteria below.</p>"
3839
  msgstr ""
3840
 
3841
- #: inc/admin/admin.php:2898 inc/admin/admin.php:4070
3842
  msgid "Guide to enable a HTML Sitemap - new window"
3843
  msgstr ""
3844
 
3845
- #: inc/admin/admin.php:2902
3846
  msgid "<p>Include/Exclude Post Types.</p>"
3847
  msgstr ""
3848
 
3849
- #: inc/admin/admin.php:2906
3850
  msgid "<p>Include/Exclude Taxonomies.</p>"
3851
  msgstr ""
3852
 
3853
- #: inc/admin/admin.php:2910
3854
  msgid "<p>Configure Google Knowledge Graph.</p>"
3855
  msgstr ""
3856
 
3857
- #: inc/admin/admin.php:2911
3858
  msgid "Learn more on Google official website."
3859
  msgstr ""
3860
 
3861
- #: inc/admin/admin.php:2915
3862
  msgid ""
3863
  "<p>Link your site with your social accounts. Use markup on your website to "
3864
  "add your social profile information to a Google Knowledge panel. Knowledge "
@@ -3868,72 +3707,72 @@ msgid ""
3868
  "network links.</p>"
3869
  msgstr ""
3870
 
3871
- #: inc/admin/admin.php:2919
3872
  msgid "<p>Manage Open Graph data.</p>"
3873
  msgstr ""
3874
 
3875
- #: inc/admin/admin.php:2921
3876
  msgid "<p>We generate the <strong>og:image</strong> meta in this order:</p>"
3877
  msgstr ""
3878
 
3879
- #: inc/admin/admin.php:2925
3880
  msgid "Custom OG Image from SEO metabox"
3881
  msgstr ""
3882
 
3883
- #: inc/admin/admin.php:2926 inc/admin/admin.php:2940
3884
- msgid "Post thumbnail"
3885
  msgstr ""
3886
 
3887
- #: inc/admin/admin.php:2927 inc/admin/admin.php:2941
3888
  msgid "First image of your post content"
3889
  msgstr ""
3890
 
3891
- #: inc/admin/admin.php:2928
3892
  msgid "Global OG Image set in SEO > Social > Open Graph"
3893
  msgstr ""
3894
 
3895
- #: inc/admin/admin.php:2933
3896
  msgid "<p>Manage your Twitter card.</p>"
3897
  msgstr ""
3898
 
3899
- #: inc/admin/admin.php:2935
3900
  msgid ""
3901
  "<p>We generate the <strong>twitter:image</strong> meta in this order:</p>"
3902
  msgstr ""
3903
 
3904
- #: inc/admin/admin.php:2939
3905
  msgid "Custom Twitter image from SEO metabox"
3906
  msgstr ""
3907
 
3908
- #: inc/admin/admin.php:2942
3909
  msgid "Global Twitter:image set in SEO > Social > Twitter Card"
3910
  msgstr ""
3911
 
3912
- #: inc/admin/admin.php:2947
3913
  msgid ""
3914
  "<p>Link your Google Analytics to your website. The tracking code will be "
3915
  "automatically added to your site.</p>"
3916
  msgstr ""
3917
 
3918
- #: inc/admin/admin.php:2951
3919
  msgid ""
3920
  "<p>Manage user consent for GDPR and customize your cookie bar easily.</p>"
3921
  msgstr ""
3922
 
3923
- #: inc/admin/admin.php:2952
3924
  msgid ""
3925
  "Works with <strong>Google Analytics</strong> and <strong>Matomo</strong>."
3926
  msgstr ""
3927
 
3928
- #: inc/admin/admin.php:2956
3929
  msgid "<p>Configure your Google Analytics tracking code.</p>"
3930
  msgstr ""
3931
 
3932
- #: inc/admin/admin.php:2960
3933
  msgid "<p>Track events in Google Analytics.</p>"
3934
  msgstr ""
3935
 
3936
- #: inc/admin/admin.php:2964
3937
  msgid ""
3938
  "<p>Configure your Google Analytics custom dimensions. <br>Custom dimensions "
3939
  "and custom metrics are like the default dimensions and metrics in your "
@@ -3943,469 +3782,520 @@ msgid ""
3943
  "account. More info by clicking on the help icon."
3944
  msgstr ""
3945
 
3946
- #: inc/admin/admin.php:2966
3947
  msgid "Custom dimensions also work with <strong>Matomo</strong> tracking code."
3948
  msgstr ""
3949
 
3950
- #: inc/admin/admin.php:2974
3951
  msgid "Guide to create custom dimensions in Google Analytics - new window"
3952
  msgstr ""
3953
 
3954
- #: inc/admin/admin.php:2978
3955
- msgid "<p>Use Matomo to track your users with privacy in mind.</p>"
3956
  msgstr ""
3957
 
3958
- #: inc/admin/admin.php:2980
3959
  msgid ""
3960
  "Your <strong>Custom Dimensions</strong> will also work with Matomo tracking "
3961
- "code"
3962
  msgstr ""
3963
 
3964
- #: inc/admin/admin.php:2984
3965
- msgid "<p>Advanced SEO options.</p>"
3966
  msgstr ""
3967
 
3968
- #: inc/admin/admin.php:2988
3969
- msgid "<p>Customize the plugin to fit your needs.</p>"
3970
  msgstr ""
3971
 
3972
- #: inc/admin/admin.php:2992
3973
- msgid "<p>Manage security.</p>"
3974
  msgstr ""
3975
 
3976
- #: inc/admin/admin.php:3004
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3977
  msgid "Enter your separator, eg: \"-\""
3978
  msgstr ""
3979
 
3980
- #: inc/admin/admin.php:3008
3981
  #, php-format
3982
  msgid "Use this separator with %%sep%% in your title and meta description."
3983
  msgstr ""
3984
 
3985
- #: inc/admin/admin.php:3013
3986
  msgid "My awesome website"
3987
  msgstr ""
3988
 
3989
- #: inc/admin/admin.php:3019 inc/admin/admin.php:3028 inc/admin/admin.php:3121
3990
- #: inc/admin/admin.php:3244 inc/admin/admin.php:3373 inc/admin/admin.php:3406
3991
- #: inc/admin/admin.php:3498 inc/admin/admin.php:3576 inc/admin/admin.php:3641
3992
- #: inc/admin/admin.php:3706 inc/admin/admin.php:3751
3993
- msgid "More tags"
3994
- msgstr ""
3995
-
3996
- #: inc/admin/admin.php:3024
3997
  msgid "This is a cool website about Wookiees"
3998
  msgstr ""
3999
 
4000
- #: inc/admin/admin.php:3031
4001
  msgid "Looking to edit your blog page?"
4002
  msgstr ""
4003
 
4004
- #: inc/admin/admin.php:3055 inc/admin/admin.php:3059 inc/admin/admin.php:3061
4005
- #: inc/admin/admin.php:3066
4006
  msgid "Click to hide any SEO metaboxes / columns for this post type"
4007
  msgstr ""
4008
 
4009
- #: inc/admin/admin.php:3058 inc/admin/admin.php:3062 inc/admin/admin.php:3065
4010
  msgid "Click to display any SEO metaboxes / columns for this post type"
4011
  msgstr ""
4012
 
4013
- #: inc/admin/admin.php:3090 inc/admin/admin.php:3231 inc/admin/admin.php:3339
4014
- #: inc/admin/admin.php:3470 inc/admin/admin.php:3565 inc/admin/admin.php:3630
4015
- #: inc/admin/admin.php:3695 inc/admin/admin.php:3742
4016
  msgid "Title template"
4017
  msgstr ""
4018
 
4019
- #: inc/admin/admin.php:3128 inc/admin/admin.php:3250 inc/admin/admin.php:3382
4020
- #: inc/admin/admin.php:3505 inc/admin/admin.php:3580 inc/admin/admin.php:3645
4021
- #: inc/admin/admin.php:3710 inc/admin/admin.php:3755
4022
  msgid "Meta description template"
4023
  msgstr ""
4024
 
4025
- #: inc/admin/admin.php:3153
4026
  msgid ""
4027
  "Do not display this single post type in search engine results "
4028
  "<strong>(noindex)</strong>"
4029
  msgstr ""
4030
 
4031
- #: inc/admin/admin.php:3174
 
 
 
 
 
 
 
4032
  msgid ""
4033
  "Do not follow links for this single post type <strong>(nofollow)</strong>"
4034
  msgstr ""
4035
 
4036
- #: inc/admin/admin.php:3195
4037
- msgid "Display date in Google search results?"
 
 
 
 
 
 
 
 
4038
  msgstr ""
4039
 
4040
- #: inc/admin/admin.php:3216
4041
  msgid "Display post thumbnail in Google Custom Search results?"
4042
  msgstr ""
4043
 
4044
- #: inc/admin/admin.php:3229
4045
  msgid "BuddyPress groups"
4046
  msgstr ""
4047
 
4048
- #: inc/admin/admin.php:3274
4049
  msgid ""
4050
  "Do not display BuddyPress groups in search engine results <strong>(noindex)</"
4051
  "strong>"
4052
  msgstr ""
4053
 
4054
- #: inc/admin/admin.php:3302 inc/admin/admin.php:3306 inc/admin/admin.php:3308
4055
- #: inc/admin/admin.php:3313
4056
  msgid "Click to hide any SEO metaboxes for this taxonomy"
4057
  msgstr ""
4058
 
4059
- #: inc/admin/admin.php:3305 inc/admin/admin.php:3309 inc/admin/admin.php:3312
4060
  msgid "Click to display any SEO metaboxes for this taxonomy"
4061
  msgstr ""
4062
 
4063
- #: inc/admin/admin.php:3362
4064
  msgid "Category Title"
4065
  msgstr ""
4066
 
4067
- #: inc/admin/admin.php:3364
4068
  msgid "Tag Title"
4069
  msgstr ""
4070
 
4071
- #: inc/admin/admin.php:3399
4072
  msgid "Category Description"
4073
  msgstr ""
4074
 
4075
- #: inc/admin/admin.php:3401
4076
  msgid "Tag Description"
4077
  msgstr ""
4078
 
4079
- #: inc/admin/admin.php:3403
4080
  msgid "Term Description"
4081
  msgstr ""
4082
 
4083
- #: inc/admin/admin.php:3423
4084
  msgid ""
4085
  "Do not display this taxonomy archive in search engine results "
4086
  "<strong>(noindex)</strong>"
4087
  msgstr ""
4088
 
4089
- #: inc/admin/admin.php:3444
 
 
 
 
 
 
 
4090
  msgid ""
4091
  "Do not follow links for this taxonomy archive <strong>(nofollow)</strong>"
4092
  msgstr ""
4093
 
4094
- #: inc/admin/admin.php:3462
4095
  msgid "See archive"
4096
  msgstr ""
4097
 
4098
- #: inc/admin/admin.php:3492
4099
  msgid "Post Type Archive Name"
4100
  msgstr ""
4101
 
4102
- #: inc/admin/admin.php:3530
4103
  msgid ""
4104
  "Do not display this post type archive in search engine results "
4105
  "<strong>(noindex)</strong>"
4106
  msgstr ""
4107
 
4108
- #: inc/admin/admin.php:3551
4109
  msgid ""
4110
  "Do not follow links for this post type archive <strong>(nofollow)</strong>"
4111
  msgstr ""
4112
 
4113
- #: inc/admin/admin.php:3563
4114
  msgid "Author archives"
4115
  msgstr ""
4116
 
4117
- #: inc/admin/admin.php:3620
4118
  msgid "Disable author archives"
4119
  msgstr ""
4120
 
4121
- #: inc/admin/admin.php:3628 inc/admin/admin.php:3638
4122
  msgid "Date archives"
4123
  msgstr ""
4124
 
4125
- #: inc/admin/admin.php:3667
4126
  msgid ""
4127
  "Do not display date archives in search engine results <strong>(noindex)</"
4128
  "strong>"
4129
  msgstr ""
4130
 
4131
- #: inc/admin/admin.php:3685
4132
  msgid "Disable date archives"
4133
  msgstr ""
4134
 
4135
- #: inc/admin/admin.php:3693
4136
  msgid "Search archives"
4137
  msgstr ""
4138
 
4139
- #: inc/admin/admin.php:3703
4140
  msgid "Search Keywords"
4141
  msgstr ""
4142
 
4143
- #: inc/admin/admin.php:3732
4144
  msgid ""
4145
  "Do not display search archives in search engine results <strong>(noindex)</"
4146
  "strong>"
4147
  msgstr ""
4148
 
4149
- #: inc/admin/admin.php:3740
4150
  msgid "404 archives"
4151
  msgstr ""
4152
 
4153
- #: inc/admin/admin.php:3780
4154
  msgid ""
4155
  "Do not display all pages of the site in Google search results and do not "
4156
  "display \"Cached\" links in search results."
4157
  msgstr ""
4158
 
4159
- #: inc/admin/admin.php:3782
4160
  #, php-format
4161
  msgid ""
4162
  "Check also the <strong>\"Search engine visibility\"</strong> setting from "
4163
  "the <a href=\"%s\">WordPress Reading page</a>."
4164
  msgstr ""
4165
 
4166
- #: inc/admin/admin.php:3802
4167
  msgid "Do not follow links for all pages."
4168
  msgstr ""
4169
 
4170
- #: inc/admin/admin.php:3822
4171
  msgid ""
4172
  "Do not use Open Directory project metadata for titles or excerpts for all "
4173
  "pages."
4174
  msgstr ""
4175
 
4176
- #: inc/admin/admin.php:3842
4177
  msgid "Do not index images from the entire site."
4178
  msgstr ""
4179
 
4180
- #: inc/admin/admin.php:3862
4181
  msgid "Do not display a \"Cached\" link in the Google search results."
4182
  msgstr ""
4183
 
4184
- #: inc/admin/admin.php:3882
4185
  msgid ""
4186
  "Do not display a description in the Google search results for all pages."
4187
  msgstr ""
4188
 
4189
- #: inc/admin/admin.php:3902
4190
  msgid ""
4191
  "Prevents Google to display a sitelinks searchbox in search results. Enable "
4192
  "this option will remove the \"Website\" schema from your source code."
4193
  msgstr ""
4194
 
4195
- #: inc/admin/admin.php:3920
4196
  msgid "Add rel next/prev link in head of paginated archive pages"
4197
  msgstr ""
4198
 
4199
- #: inc/admin/admin.php:3938
4200
  msgid "Add a \"noindex\" meta robots for all paginated archive pages"
4201
  msgstr ""
4202
 
4203
- #: inc/admin/admin.php:3940
4204
  msgid "eg: https://example.com/category/my-category/page/2/"
4205
  msgstr ""
4206
 
4207
- #: inc/admin/admin.php:3966
4208
  msgid "Guide to enable XML Sitemaps - new window"
4209
  msgstr ""
4210
 
4211
- #: inc/admin/admin.php:3984
4212
  msgid ""
4213
  "Enable Image Sitemaps (standard images, image galleries, featured image, "
4214
  "WooCommerce product images)"
4215
  msgstr ""
4216
 
4217
- #: inc/admin/admin.php:3986
4218
  msgid "Images in XML sitemaps are visible only from the source code."
4219
  msgstr ""
4220
 
4221
- #: inc/admin/admin.php:3994
4222
  msgid "Guide to enable XML image sitemaps - new window"
4223
  msgstr ""
4224
 
4225
- #: inc/admin/admin.php:4013
4226
  msgid "Enable Video Sitemaps"
4227
  msgstr ""
4228
 
4229
- #: inc/admin/admin.php:4021
4230
  #, php-format
4231
  msgid ""
4232
  "Your video sitemap is empty? Read our guide to learn more about <a href=\"%s"
4233
  "\" target=\"_blank\">adding videos to your sitemap.</a>"
4234
  msgstr ""
4235
 
4236
- #: inc/admin/admin.php:4023
4237
  msgid "Guide to enable XML video sitemaps - new window"
4238
  msgstr ""
4239
 
4240
- #: inc/admin/admin.php:4044
4241
  msgid ""
4242
  "Make sure to enable author archive from SEO, titles and metas, archives tab."
4243
  "</a>"
4244
  msgstr ""
4245
 
4246
- #: inc/admin/admin.php:4110 inc/admin/admin.php:4153
4247
  msgid "Include"
4248
  msgstr ""
4249
 
4250
- #: inc/admin/admin.php:4113
4251
  msgid ""
4252
  "You should never include attachment post type in your sitemap. Be careful if "
4253
  "you checked this."
4254
  msgstr ""
4255
 
4256
- #: inc/admin/admin.php:4167
4257
  msgid "eg: 2, 28, 68"
4258
  msgstr ""
4259
 
4260
- #: inc/admin/admin.php:4171
4261
  msgid "You can also use this shortcode:"
4262
  msgstr ""
4263
 
4264
- #: inc/admin/admin.php:4180
 
 
 
 
4265
  msgid "eg: 13, 8, 38"
4266
  msgstr ""
4267
 
4268
- #: inc/admin/admin.php:4195
4269
  msgid ""
4270
  "DESC (descending order from highest to lowest values (3, 2, 1; c, b, a))"
4271
  msgstr ""
4272
 
4273
- #: inc/admin/admin.php:4200
4274
  msgid "ASC (ascending order from lowest to highest values (1, 2, 3; a, b, c))"
4275
  msgstr ""
4276
 
4277
- #: inc/admin/admin.php:4218
4278
  msgid "Default (date)"
4279
  msgstr ""
4280
 
4281
- #: inc/admin/admin.php:4228
4282
  msgid "Modified date"
4283
  msgstr ""
4284
 
4285
- #: inc/admin/admin.php:4233
4286
  msgid "Post ID"
4287
  msgstr ""
4288
 
4289
- #: inc/admin/admin.php:4238
4290
  msgid "Menu order"
4291
  msgstr ""
4292
 
4293
- #: inc/admin/admin.php:4257
4294
  msgid "Disable date after each post, page, post type?"
4295
  msgstr ""
4296
 
4297
- #: inc/admin/admin.php:4296
 
 
 
 
4298
  msgid "eg: Miremont"
4299
  msgstr ""
4300
 
4301
- #: inc/admin/admin.php:4308
4302
  msgid "Select your logo"
4303
  msgstr ""
4304
 
4305
- #: inc/admin/admin.php:4312
4306
  msgid "JPG, PNG, and GIF allowed."
4307
  msgstr ""
4308
 
4309
- #: inc/admin/admin.php:4338
4310
  msgid "eg: +33123456789 (internationalized version required)"
4311
  msgstr ""
4312
 
4313
- #: inc/admin/admin.php:4353
4314
  msgid "Customer support"
4315
  msgstr ""
4316
 
4317
- #: inc/admin/admin.php:4358
4318
  msgid "Technical support"
4319
  msgstr ""
4320
 
4321
- #: inc/admin/admin.php:4363
4322
  msgid "Billing support"
4323
  msgstr ""
4324
 
4325
- #: inc/admin/admin.php:4368
4326
  msgid "Bill payment"
4327
  msgstr ""
4328
 
4329
- #: inc/admin/admin.php:4373
4330
  msgid "Sales"
4331
  msgstr ""
4332
 
4333
- #: inc/admin/admin.php:4378
4334
  msgid "Credit card support"
4335
  msgstr ""
4336
 
4337
- #: inc/admin/admin.php:4383
4338
  msgid "Emergency"
4339
  msgstr ""
4340
 
4341
- #: inc/admin/admin.php:4388
4342
  msgid "Baggage tracking"
4343
  msgstr ""
4344
 
4345
- #: inc/admin/admin.php:4393
4346
  msgid "Roadside assistance"
4347
  msgstr ""
4348
 
4349
- #: inc/admin/admin.php:4398
4350
  msgid "Package tracking"
4351
  msgstr ""
4352
 
4353
- #: inc/admin/admin.php:4416 inc/admin/admin.php:5322 inc/admin/admin.php:5348
4354
- #: inc/admin/admin.php:5374 inc/admin/admin.php:5400 inc/admin/admin.php:5426
4355
  msgid "None"
4356
  msgstr ""
4357
 
4358
- #: inc/admin/admin.php:4421
4359
  msgid "Toll Free"
4360
  msgstr ""
4361
 
4362
- #: inc/admin/admin.php:4426
4363
  msgid "Hearing impaired supported"
4364
  msgstr ""
4365
 
4366
- #: inc/admin/admin.php:4447
4367
  msgid "Twitter Page URL"
4368
  msgstr ""
4369
 
4370
- #: inc/admin/admin.php:4499
4371
  msgid "Enable OG data"
4372
  msgstr ""
4373
 
4374
- #: inc/admin/admin.php:4533
4375
  msgid ""
4376
  "Override every <strong>og:image</strong> tag with this default image (except "
4377
  "if a custom og:image has already been set from the SEO metabox)."
4378
  msgstr ""
4379
 
4380
- #: inc/admin/admin.php:4538
4381
  msgid "Please define a default OG Image from the field above"
4382
  msgstr ""
4383
 
4384
- #: inc/admin/admin.php:4556
4385
  msgid "WooCommerce Shop Page."
4386
  msgstr ""
4387
 
4388
- #: inc/admin/admin.php:4574
4389
  msgid "No custom post type to configure."
4390
  msgstr ""
4391
 
4392
- #: inc/admin/admin.php:4585
4393
  msgid ""
4394
  "One or more Facebook Page IDs that are associated with a URL in order to "
4395
  "enable link editing and instant article publishing."
4396
  msgstr ""
4397
 
4398
- #: inc/admin/admin.php:4589
4399
  msgid "How do I find my Facebook Page ID?"
4400
  msgstr ""
4401
 
4402
- #: inc/admin/admin.php:4598
4403
  msgid ""
4404
  "The ID (or comma-separated list for properties that can accept multiple IDs) "
4405
  "of an app, person using the app, or Page Graph API object."
4406
  msgstr ""
4407
 
4408
- #: inc/admin/admin.php:4609
4409
  msgid ""
4410
  "The Facebook app ID of the site's app. In order to use Facebook Insights you "
4411
  "must add the app ID to your page. Insights lets you view analytics for "
@@ -4415,27 +4305,27 @@ msgid ""
4415
  "\"seopress-help dashicons dashicons-external\"></span>"
4416
  msgstr ""
4417
 
4418
- #: inc/admin/admin.php:4613
4419
  msgid "How to create a Facebook App ID"
4420
  msgstr ""
4421
 
4422
- #: inc/admin/admin.php:4627
4423
  msgid "Enable Twitter card"
4424
  msgstr ""
4425
 
4426
- #: inc/admin/admin.php:4645
4427
  msgid "Use OG if no Twitter Cards"
4428
  msgstr ""
4429
 
4430
- #: inc/admin/admin.php:4680 seopress.php:313
4431
  msgid "Default"
4432
  msgstr ""
4433
 
4434
- #: inc/admin/admin.php:4685
4435
  msgid "Large"
4436
  msgstr ""
4437
 
4438
- #: inc/admin/admin.php:4688
4439
  msgid ""
4440
  "The Summary Card with <strong>Large Image</strong> features a large, full-"
4441
  "width prominent image alongside a tweet. It is designed to give the reader a "
@@ -4443,40 +4333,58 @@ msgid ""
4443
  "website."
4444
  msgstr ""
4445
 
4446
- #: inc/admin/admin.php:4706
4447
  msgid "Enable Google Analytics tracking (Global Site Tag: gtag.js)"
4448
  msgstr ""
4449
 
4450
- #: inc/admin/admin.php:4717
4451
  msgid "Enter your Tracking ID (UA-XXXX-XX)"
4452
  msgstr ""
4453
 
4454
- #: inc/admin/admin.php:4721
4455
  msgid "Find your tracking ID"
4456
  msgstr ""
4457
 
4458
- #: inc/admin/admin.php:4728
4459
  msgid "Enter your measurement ID (G-XXXXXXXXXX)"
4460
  msgstr ""
4461
 
4462
- #: inc/admin/admin.php:4728
4463
  msgid "Enter your measurement ID"
4464
  msgstr ""
4465
 
4466
- #: inc/admin/admin.php:4732
4467
  msgid "Find your measurement ID"
4468
  msgstr ""
4469
 
4470
- #: inc/admin/admin.php:4746
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4471
  msgid "Request user's consent for analytics tracking (required by GDPR)"
4472
  msgstr ""
4473
 
4474
- #: inc/admin/admin.php:4748
4475
  msgid ""
4476
  "<strong>The user must click the Accept button to allow tracking.</strong>"
4477
  msgstr ""
4478
 
4479
- #: inc/admin/admin.php:4750
4480
  msgid ""
4481
  "User roles excluded from tracking will not see the consent message.<br> If "
4482
  "you use a caching plugin, you have to exclude this JS file in your settings: "
@@ -4484,329 +4392,394 @@ msgid ""
4484
  "js</strong> <br>and this cookie <strong>seopress-user-consent-accept</strong>"
4485
  msgstr ""
4486
 
4487
- #: inc/admin/admin.php:4758
4488
  msgid "Hook to add custom tracking code with user consent - new window"
4489
  msgstr ""
4490
 
4491
- #: inc/admin/admin.php:4776
4492
  msgid ""
4493
  "Display and automatically accept the user‘s consent on page load (not fully "
4494
  "GDPR)"
4495
  msgstr ""
4496
 
4497
- #: inc/admin/admin.php:4778
4498
  msgid "The previous option must be checked to use this."
4499
  msgstr ""
4500
 
4501
- #: inc/admin/admin.php:4790
 
 
 
 
4502
  msgid "Enter your message (HTML allowed)"
4503
  msgstr ""
4504
 
4505
- #: inc/admin/admin.php:4790
4506
  msgid "This message will only appear if request user's consent is enabled."
4507
  msgstr ""
4508
 
4509
- #: inc/admin/admin.php:4799
4510
  msgid "Hook to filter user consent message - new window"
4511
  msgstr ""
4512
 
4513
- #: inc/admin/admin.php:4801
4514
  msgid "HTML tags allowed: strong, em, br, a href / target"
4515
  msgstr ""
4516
 
4517
- #: inc/admin/admin.php:4802
4518
  msgid ""
4519
  "Shortcode allowed to get the privacy page set in WordPress settings: "
4520
  "[seopress_privacy_page]"
4521
  msgstr ""
4522
 
4523
- #: inc/admin/admin.php:4809 inc/functions/options-google-analytics.php:244
4524
  msgid "Accept"
4525
  msgstr ""
4526
 
4527
- #: inc/admin/admin.php:4809
4528
  msgid "Change the button value"
4529
  msgstr ""
4530
 
4531
- #: inc/admin/admin.php:4818
4532
  msgid "default: X"
4533
  msgstr ""
4534
 
4535
- #: inc/admin/admin.php:4818
4536
  msgid "Change the close button value"
4537
  msgstr ""
4538
 
4539
- #: inc/admin/admin.php:4838
 
 
 
 
 
 
 
 
4540
  msgid "Default: 30 days before the cookie expiration."
4541
  msgstr ""
4542
 
4543
- #: inc/admin/admin.php:4851
4544
  msgid "Bottom (default)"
4545
  msgstr ""
4546
 
4547
- #: inc/admin/admin.php:4856
4548
  msgid "Middle"
4549
  msgstr ""
4550
 
4551
- #: inc/admin/admin.php:4861
4552
  msgid "Top"
4553
  msgstr ""
4554
 
4555
- #: inc/admin/admin.php:4879
4556
  msgid "Left"
4557
  msgstr ""
4558
 
4559
- #: inc/admin/admin.php:4884
4560
  msgid "Center (default)"
4561
  msgstr ""
4562
 
4563
- #: inc/admin/admin.php:4889
4564
  msgid "Right"
4565
  msgstr ""
4566
 
4567
- #: inc/admin/admin.php:4901
4568
  msgid "Change the cookie bar width"
4569
  msgstr ""
4570
 
4571
- #: inc/admin/admin.php:4905
4572
  msgid ""
4573
  "Default unit is Pixels. Add % just after your custom value to use "
4574
  "percentages (eg: 80%)."
4575
  msgstr ""
4576
 
4577
- #: inc/admin/admin.php:4919
 
 
 
 
 
 
 
 
4578
  msgid "Display a backdrop with the cookie bar"
4579
  msgstr ""
4580
 
4581
- #: inc/admin/admin.php:4930
 
 
 
 
 
4582
  msgid "Change the background color of the backdrop"
4583
  msgstr ""
4584
 
4585
- #: inc/admin/admin.php:4939
 
 
 
 
 
 
 
 
4586
  msgid "Change the color of the cookie bar background"
4587
  msgstr ""
4588
 
4589
- #: inc/admin/admin.php:4948
 
 
 
 
4590
  msgid "Change the color of the cookie bar text"
4591
  msgstr ""
4592
 
4593
- #: inc/admin/admin.php:4957
 
 
 
 
4594
  msgid "Change the color of the cookie bar link"
4595
  msgstr ""
4596
 
4597
- #: inc/admin/admin.php:4966
 
 
 
 
 
 
 
 
4598
  msgid "Change the color of the cookie bar button background"
4599
  msgstr ""
4600
 
4601
- #: inc/admin/admin.php:4975
 
 
 
 
4602
  msgid "Change the color of the cookie bar button hover background"
4603
  msgstr ""
4604
 
4605
- #: inc/admin/admin.php:4984
4606
  msgid "Change the color of the cookie bar button"
4607
  msgstr ""
4608
 
4609
- #: inc/admin/admin.php:4993
 
 
 
 
4610
  msgid "Change the color of the cookie bar button hover"
4611
  msgstr ""
4612
 
4613
- #: inc/admin/admin.php:5002
 
 
 
 
 
 
 
 
4614
  msgid "Change the color of the cookie bar secondary button background"
4615
  msgstr ""
4616
 
4617
- #: inc/admin/admin.php:5011
4618
  msgid "Change the color of the cookie bar secondary button hover background"
4619
  msgstr ""
4620
 
4621
- #: inc/admin/admin.php:5020
4622
  msgid "Change the color of the cookie bar secondary button"
4623
  msgstr ""
4624
 
4625
- #: inc/admin/admin.php:5029
4626
  msgid "Change the color of the cookie bar secondary button hover"
4627
  msgstr ""
4628
 
4629
- #: inc/admin/admin.php:5064
4630
  msgid "Enter your Google Optimize container ID"
4631
  msgstr ""
4632
 
4633
- #: inc/admin/admin.php:5064
4634
  msgid "GTM-XXXXXXX"
4635
  msgstr ""
4636
 
4637
- #: inc/admin/admin.php:5067
4638
  msgid ""
4639
  "Google Optimize offers A/B testing, website testing & personalization tools."
4640
  msgstr ""
4641
 
4642
- #: inc/admin/admin.php:5078
4643
  msgid "Enter your Google Ads conversion ID (eg: AW-123456789)"
4644
  msgstr ""
4645
 
4646
- #: inc/admin/admin.php:5078
4647
  msgid "AW-XXXXXXXXX"
4648
  msgstr ""
4649
 
4650
- #: inc/admin/admin.php:5089
4651
  msgid "Learn how to find your Google Ads Conversion ID"
4652
  msgstr ""
4653
 
4654
- #: inc/admin/admin.php:5098
4655
  msgid "Paste your tracking code here like Google Tag Manager (head)"
4656
  msgstr ""
4657
 
4658
- #: inc/admin/admin.php:5098
4659
  msgid "Additional tracking code field"
4660
  msgstr ""
4661
 
4662
- #: inc/admin/admin.php:5101
4663
  msgid "This code will be added in the head section of your page."
4664
  msgstr ""
4665
 
4666
- #: inc/admin/admin.php:5108
4667
  msgid "Paste your tracking code here like Google Tag Manager (body)"
4668
  msgstr ""
4669
 
4670
- #: inc/admin/admin.php:5108
4671
  msgid "Additional tracking code field added to body"
4672
  msgstr ""
4673
 
4674
- #: inc/admin/admin.php:5111
4675
  msgid "This code will be added just after the opening body tag of your page."
4676
  msgstr ""
4677
 
4678
- #: inc/admin/admin.php:5112
4679
  msgid ""
4680
  "You don‘t see your code? Make sure to call <strong>wp_body_open();</strong> "
4681
  "just after the opening body tag in your theme."
4682
  msgstr ""
4683
 
4684
- #: inc/admin/admin.php:5127
4685
  msgid "Paste your tracking code here (body footer)"
4686
  msgstr ""
4687
 
4688
- #: inc/admin/admin.php:5127
4689
  msgid "Additional tracking code field added to body footer"
4690
  msgstr ""
4691
 
4692
- #: inc/admin/admin.php:5130
4693
  msgid "This code will be added just after the closing body tag of your page."
4694
  msgstr ""
4695
 
4696
- #: inc/admin/admin.php:5146
4697
  msgid ""
4698
  "A remarketing audience is a list of cookies or mobile-advertising IDs that "
4699
  "represents a group of users you want to re-engage because of their "
4700
  "likelihood to convert."
4701
  msgstr ""
4702
 
4703
- #: inc/admin/admin.php:5169
4704
  msgid ""
4705
  "When a customer of Analytics requests IP address anonymization, Analytics "
4706
  "anonymizes the address as soon as technically feasible at the earliest "
4707
  "possible stage of the collection network."
4708
  msgstr ""
4709
 
4710
- #: inc/admin/admin.php:5192
4711
  msgid ""
4712
  "Enhanced Link Attribution improves the accuracy of your In-Page Analytics "
4713
  "report by automatically differentiating between multiple links to the same "
4714
  "URL on a single page by using link element IDs."
4715
  msgstr ""
4716
 
4717
- #: inc/admin/admin.php:5215
4718
  msgid ""
4719
  "Cross domain tracking makes it possible for Analytics to see sessions on two "
4720
  "related sites (such as an ecommerce site and a separate shopping cart site) "
4721
  "as a single session. This is sometimes called site linking."
4722
  msgstr ""
4723
 
4724
- #: inc/admin/admin.php:5229 inc/admin/admin.php:5564
4725
  msgid "Enter your domains: seopress.org,sub.seopress.org,sub2.seopress.org"
4726
  msgstr ""
4727
 
4728
- #: inc/admin/admin.php:5263
4729
  msgid "Enable download tracking"
4730
  msgstr ""
4731
 
4732
- #: inc/admin/admin.php:5274
4733
  msgid "pdf|docx|pptx|zip"
4734
  msgstr ""
4735
 
4736
- #: inc/admin/admin.php:5278
4737
  msgid "Separate each file type extensions with a pipe \"|\""
4738
  msgstr ""
4739
 
4740
- #: inc/admin/admin.php:5293
4741
  msgid "Enable affiliate/outbound tracking"
4742
  msgstr ""
4743
 
4744
- #: inc/admin/admin.php:5304
4745
  msgid "aff|go|out"
4746
  msgstr ""
4747
 
4748
- #: inc/admin/admin.php:5308
4749
  msgid "Separate each keyword with a pipe \"|\""
4750
  msgstr ""
4751
 
4752
- #: inc/admin/admin.php:5329 inc/admin/admin.php:5355 inc/admin/admin.php:5381
4753
- #: inc/admin/admin.php:5407 inc/admin/admin.php:5433
4754
  #, php-format
4755
  msgid "Custom Dimension #%d"
4756
  msgstr ""
4757
 
4758
- #: inc/admin/admin.php:5453
4759
  msgid "Enable Matomo tracking (Matomo account required)"
4760
  msgstr ""
4761
 
4762
- #: inc/admin/admin.php:5464
4763
  msgid "Enter \"example\" if you Matomo account URL is \"example.matomo.cloud\""
4764
  msgstr ""
4765
 
4766
- #: inc/admin/admin.php:5464
4767
  msgid "Matomo Cloud URL"
4768
  msgstr ""
4769
 
4770
- #: inc/admin/admin.php:5468
4771
  msgid "Enter only the <strong>host</strong> like this example.matomo.cloud"
4772
  msgstr ""
4773
 
4774
- #: inc/admin/admin.php:5475
4775
  msgid "Enter your site ID here"
4776
  msgstr ""
4777
 
4778
- #: inc/admin/admin.php:5475
4779
  msgid "Matomo Site ID"
4780
  msgstr ""
4781
 
4782
- #: inc/admin/admin.php:5479
4783
  msgid ""
4784
  "To find your site ID, go to your <strong>Matomo Cloud account, Websites, "
4785
  "Manage page</strong>. Look at \"Site ID\" on the right part."
4786
  msgstr ""
4787
 
4788
- #: inc/admin/admin.php:5493
4789
  msgid "Tracking one domain and its subdomains in the same website"
4790
  msgstr ""
4791
 
4792
- #: inc/admin/admin.php:5495
4793
  msgid ""
4794
  "If one visitor visits x.example.com and y.example.com, they will be counted "
4795
  "as a unique visitor."
4796
  msgstr ""
4797
 
4798
- #: inc/admin/admin.php:5513
4799
  msgid "Prepend the site domain to the page title when tracking"
4800
  msgstr ""
4801
 
4802
- #: inc/admin/admin.php:5515
4803
  msgid ""
4804
  "If someone visits the 'About' page on blog.example.com it will be recorded "
4805
  "as 'blog / About'. This is the easiest way to get an overview of your "
4806
  "traffic by sub-domain."
4807
  msgstr ""
4808
 
4809
- #: inc/admin/admin.php:5553
4810
  msgid ""
4811
  "By default, the visitor ID that identifies a unique visitor is stored in the "
4812
  "browser's first party cookies which can only be accessed by pages on the "
@@ -4817,26 +4790,26 @@ msgid ""
4817
  "Visitor ID."
4818
  msgstr ""
4819
 
4820
- #: inc/admin/admin.php:5580
4821
  msgid "Enable client side DoNotTrack detection"
4822
  msgstr ""
4823
 
4824
- #: inc/admin/admin.php:5582
4825
  msgid ""
4826
  "Tracking requests will not be sent if visitors do not wish to be tracked."
4827
  msgstr ""
4828
 
4829
- #: inc/admin/admin.php:5600
4830
  msgid ""
4831
  "Disables all first party cookies. Existing Matomo cookies for this website "
4832
  "will be deleted on the next page view."
4833
  msgstr ""
4834
 
4835
- #: inc/admin/admin.php:5618
4836
  msgid "Enabling Download & Outlink tracking"
4837
  msgstr ""
4838
 
4839
- #: inc/admin/admin.php:5620
4840
  msgid ""
4841
  "By default, any file ending with one of these extensions will be considered "
4842
  "a \"download\" in the Matomo interface: 7z|aac|arc|arj|apk|asf|asx|avi|bin|"
@@ -4847,250 +4820,311 @@ msgid ""
4847
  "\t\ttbz|tbz2|tgz|torrent|txt|wav|wma|wmv|wpd|xls|xml|z|zip"
4848
  msgstr ""
4849
 
4850
- #: inc/admin/admin.php:5642
4851
  msgid "Disabling all heatmaps and session recordings"
4852
  msgstr ""
4853
 
4854
- #: inc/admin/admin.php:5660
4855
  msgid "Redirect attachment pages to post parent (or homepage if none)"
4856
  msgstr ""
4857
 
4858
- #: inc/admin/admin.php:5680
4859
  msgid ""
4860
  "If this option is checked, it will take precedence over the redirection of "
4861
  "attachments to the post's parent."
4862
  msgstr ""
4863
 
4864
- #: inc/admin/admin.php:5698
4865
  msgid "Remove ?replytocom link in source code"
4866
  msgstr ""
4867
 
4868
- #: inc/admin/admin.php:5716
4869
  msgid ""
4870
  "When sending an image file, automatically set the title based on the filename"
4871
  msgstr ""
4872
 
4873
- #: inc/admin/admin.php:5734
4874
  msgid ""
4875
  "When sending an image file, automatically set the alternative text based on "
4876
  "the filename"
4877
  msgstr ""
4878
 
4879
- #: inc/admin/admin.php:5738
4880
  msgid ""
4881
  "We recommend Image SEO plugin to optimize your image ALT texts and names for "
4882
  "Search Engines using AI and Machine Learning. Starting from just €4.99."
4883
  msgstr ""
4884
 
4885
- #: inc/admin/admin.php:5758
4886
  msgid "Use the target keywords if not alternative text set for the image"
4887
  msgstr ""
4888
 
4889
- #: inc/admin/admin.php:5760
4890
  msgid ""
4891
  "This setting will be applied to images without any alt text on frontend "
4892
  "only. This setting is retroactive. If you turn it off, alt texts that were "
4893
  "previously empty will be empty again."
4894
  msgstr ""
4895
 
4896
- #: inc/admin/admin.php:5778
4897
  msgid ""
4898
  "When sending an image file, automatically set the caption based on the "
4899
  "filename"
4900
  msgstr ""
4901
 
4902
- #: inc/admin/admin.php:5796
4903
  msgid ""
4904
  "When sending an image file, automatically set the description based on the "
4905
  "filename"
4906
  msgstr ""
4907
 
4908
- #: inc/admin/admin.php:5814
4909
  msgid "Add TINYMCE editor to term description"
4910
  msgstr ""
4911
 
4912
- #: inc/admin/admin.php:5832
4913
  msgid "You have to flush your permalinks each time you change this settings"
4914
  msgstr ""
4915
 
4916
- #: inc/admin/admin.php:5850
4917
  msgid ""
4918
  "You must check this box if the structure of your permalinks DOES NOT contain "
4919
  "a slash at the end (eg: /%postname%)"
4920
  msgstr ""
4921
 
4922
- #: inc/admin/admin.php:5868
4923
  msgid "Remove WordPress meta generator in source code"
4924
  msgstr ""
4925
 
4926
- #: inc/admin/admin.php:5886
4927
  msgid ""
4928
  "Remove hentry post class to prevent Google from seeing this as structured "
4929
  "data (schema)"
4930
  msgstr ""
4931
 
4932
- #: inc/admin/admin.php:5904
4933
  msgid ""
4934
  "Remove comment author URL in comments if the website is filled from profile "
4935
  "page"
4936
  msgstr ""
4937
 
4938
- #: inc/admin/admin.php:5922
4939
  msgid "Remove website field from comment form to reduce spam"
4940
  msgstr ""
4941
 
4942
- #: inc/admin/admin.php:5940
4943
  msgid "Remove WordPress shortlink meta tag in source code (eg:"
4944
  msgstr ""
4945
 
4946
- #: inc/admin/admin.php:5958
4947
  msgid "Remove Windows Live Writer meta tag in source code (eg:"
4948
  msgstr ""
4949
 
4950
- #: inc/admin/admin.php:5976
4951
  msgid "Remove Really Simple Discovery meta tag in source code (eg:"
4952
  msgstr ""
4953
 
4954
- #: inc/admin/admin.php:5987
 
 
 
 
 
 
4955
  msgid "Enter Google meta value site verification"
4956
  msgstr ""
4957
 
4958
- #: inc/admin/admin.php:5991
4959
  msgid ""
4960
  "If your site is already verified in <strong>Google Search Console</strong>, "
4961
  "you can leave this field empty."
4962
  msgstr ""
4963
 
4964
- #: inc/admin/admin.php:5998
4965
  msgid "Enter Bing meta value site verification"
4966
  msgstr ""
4967
 
4968
- #: inc/admin/admin.php:6001
4969
  msgid ""
4970
  "If your site is already verified in <strong>Bing Webmaster tools</strong>, "
4971
  "you can leave this field empty."
4972
  msgstr ""
4973
 
4974
- #: inc/admin/admin.php:6008
4975
  msgid "Enter Pinterest meta value site verification"
4976
  msgstr ""
4977
 
4978
- #: inc/admin/admin.php:6017
4979
  msgid "Enter Yandex meta value site verification"
4980
  msgstr ""
4981
 
4982
- #: inc/admin/admin.php:6033
4983
  msgid "Remove SEO from Admin Bar in backend and frontend"
4984
  msgstr ""
4985
 
4986
- #: inc/admin/admin.php:6051
4987
  msgid "Remove noindex item from Admin Bar in backend and frontend"
4988
  msgstr ""
4989
 
4990
- #: inc/admin/admin.php:6068
4991
  msgid "High priority (top)"
4992
  msgstr ""
4993
 
4994
- #: inc/admin/admin.php:6073
4995
  msgid "Normal priority (default)"
4996
  msgstr ""
4997
 
4998
- #: inc/admin/admin.php:6078
4999
  msgid "Low priority"
5000
  msgstr ""
5001
 
5002
- #: inc/admin/admin.php:6097
5003
  msgid "Automatic tab (default)"
5004
  msgstr ""
5005
 
5006
- #: inc/admin/admin.php:6102
5007
  msgid "Manual tab"
5008
  msgstr ""
5009
 
5010
- #: inc/admin/admin.php:6122
5011
  msgid "Hide Notifications Center in SEO Dashboard page"
5012
  msgstr ""
5013
 
5014
- #: inc/admin/admin.php:6140
5015
  msgid "Hide SEO tools in SEO Dashboard page"
5016
  msgstr ""
5017
 
5018
- #: inc/admin/admin.php:6158
5019
  msgid "Hide Useful Links in SEO dashboard page"
5020
  msgstr ""
5021
 
5022
- #: inc/admin/admin.php:6176
5023
  msgid "Add title column"
5024
  msgstr ""
5025
 
5026
- #: inc/admin/admin.php:6194
5027
  msgid "Add meta description column"
5028
  msgstr ""
5029
 
5030
- #: inc/admin/admin.php:6212
5031
  msgid "Add redirection enable column"
5032
  msgstr ""
5033
 
5034
- #: inc/admin/admin.php:6230
5035
  msgid "Add redirection URL column"
5036
  msgstr ""
5037
 
5038
- #: inc/admin/admin.php:6248
5039
  msgid "Add canonical URL column"
5040
  msgstr ""
5041
 
5042
- #: inc/admin/admin.php:6266
5043
  msgid "Add target keyword column"
5044
  msgstr ""
5045
 
5046
- #: inc/admin/admin.php:6284
5047
  msgid "Display noindex status"
5048
  msgstr ""
5049
 
5050
- #: inc/admin/admin.php:6302
5051
  msgid "Display nofollow status"
5052
  msgstr ""
5053
 
5054
- #: inc/admin/admin.php:6320
5055
  msgid "Display total number of words in content"
5056
  msgstr ""
5057
 
5058
- #: inc/admin/admin.php:6338
5059
  msgid "Display W3C column to check code quality"
5060
  msgstr ""
5061
 
5062
- #: inc/admin/admin.php:6357
5063
  msgid "Display Page Speed column to check performances"
5064
  msgstr ""
5065
 
5066
- #: inc/admin/admin.php:6377
5067
  msgid "Display SEO Insights column to check rankings"
5068
  msgstr ""
5069
 
5070
- #: inc/admin/admin.php:6396
5071
  msgid ""
5072
  "Display Content Analysis results column (\"Good\" or \"Should be improved\")"
5073
  msgstr ""
5074
 
5075
- #: inc/admin/admin.php:6414
5076
  msgid "Remove Genesis SEO Metabox"
5077
  msgstr ""
5078
 
5079
- #: inc/admin/admin.php:6432
5080
  msgid "Remove Genesis SEO link in WP Admin Menu"
5081
  msgstr ""
5082
 
5083
- #: inc/admin/admin.php:6450
5084
  msgid "Remove the advice if None schema selected"
5085
  msgstr ""
5086
 
5087
- #: inc/admin/admin.php:6486 inc/admin/admin.php:6519
5088
  msgid ""
5089
  "Hook to filter structured data types metabox call by post type - new window"
5090
  msgstr ""
5091
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5092
  #: inc/admin/adminbar.php:53 inc/admin/adminbar.php:93
5093
- #: src/Actions/Admin/ManageColumn.php:155
5094
  msgid "noindex is on!"
5095
  msgstr ""
5096
 
@@ -5105,7 +5139,7 @@ msgstr ""
5105
  msgid "noindex is off."
5106
  msgstr ""
5107
 
5108
- #: inc/admin/adminbar.php:105 src/Actions/Admin/ManageColumn.php:161
5109
  msgid "nofollow is on!"
5110
  msgstr ""
5111
 
@@ -5131,64 +5165,64 @@ msgid ""
5131
  "content analysis."
5132
  msgstr ""
5133
 
5134
- #: inc/admin/ajax.php:109
5135
  msgid "To get your Google snippet preview, publish your post!"
5136
  msgstr ""
5137
 
5138
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:98
5139
  msgid "SEO Title / Description"
5140
  msgstr ""
5141
 
5142
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:126
5143
  msgid "Meta Description"
5144
  msgstr ""
5145
 
5146
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:167
5147
  msgid "SEO Advanced"
5148
  msgstr ""
5149
 
5150
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:185
5151
  msgid ""
5152
  "Do not display this page in search engine results / XML - HTML sitemaps "
5153
  "(noindex)"
5154
  msgstr ""
5155
 
5156
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:196
5157
  msgid "Do not follow links for this page (nofollow)"
5158
  msgstr ""
5159
 
5160
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:207
5161
  msgid ""
5162
  "Do not use Open Directory project metadata for titles or excerpts for this "
5163
  "page (noodp)"
5164
  msgstr ""
5165
 
5166
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:218
5167
  msgid "Do not index images for this page (noimageindex)"
5168
  msgstr ""
5169
 
5170
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:229
5171
  msgid ""
5172
  "Do not display a \"Cached\" link in the Google search results (noarchive)"
5173
  msgstr ""
5174
 
5175
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:240
5176
  msgid ""
5177
  "Do not display a description in search results for this page (nosnippet)"
5178
  msgstr ""
5179
 
5180
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:324
5181
  msgid "SEO Social"
5182
  msgstr ""
5183
 
5184
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:344
5185
  msgid ""
5186
  "<p class=\"elementor-control-field-description\"><span class=\"dashicons "
5187
  "dashicons-external\"></span><a href=\"https://developers.facebook.com/tools/"
5188
  "debug/sharing/?q="
5189
  msgstr ""
5190
 
5191
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:354
5192
  msgid ""
5193
  "<p class=\"elementor-control-field-description\"><strong>Did you know?</"
5194
  "strong> LinkedIn, Instagram and Pinterest use the same social metadata as "
@@ -5196,15 +5230,15 @@ msgid ""
5196
  "p>"
5197
  msgstr ""
5198
 
5199
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:472
5200
  msgid "SEO Redirection"
5201
  msgstr ""
5202
 
5203
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:536
5204
  msgid "SEO Content Analysis"
5205
  msgstr ""
5206
 
5207
- #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:548
5208
  msgid ""
5209
  "<p class=\"elementor-control-field-description\">Enter a few keywords for "
5210
  "analysis to help you write optimized content.</p><p class=\"elementor-"
@@ -5214,15 +5248,15 @@ msgid ""
5214
  "affected.</p>"
5215
  msgstr ""
5216
 
5217
- #: inc/admin/page-builders/elementor/inc/controls/class-social-preview-control.php:45
5218
  msgid ". The closer to 1.91 the better."
5219
  msgstr ""
5220
 
5221
- #: inc/admin/page-builders/elementor/inc/controls/class-social-preview-control.php:54
5222
  msgid "By"
5223
  msgstr ""
5224
 
5225
- #: inc/admin/page-builders/elementor/inc/controls/class-social-preview-control.php:69
5226
  msgid ". The closer to 1 the better (with large card, 2 is better)."
5227
  msgstr ""
5228
 
@@ -5402,119 +5436,123 @@ msgid ""
5402
  "is optimized for SEO (NOT Plain)."
5403
  msgstr ""
5404
 
5405
- #: inc/functions/options-advanced-admin.php:490
5406
  msgid "Enable noindex"
5407
  msgstr ""
5408
 
5409
- #: inc/functions/options-advanced-admin.php:545
5410
  msgid "Enable index"
5411
  msgstr ""
5412
 
5413
- #: inc/functions/options-advanced-admin.php:600
5414
  msgid "Enable nofollow"
5415
  msgstr ""
5416
 
5417
- #: inc/functions/options-advanced-admin.php:654
5418
  msgid "Enable follow"
5419
  msgstr ""
5420
 
5421
- #: inc/functions/options-advanced-admin.php:703
5422
  msgid "Enable redirection"
5423
  msgstr ""
5424
 
5425
- #: inc/functions/options-advanced-admin.php:744
5426
  msgid "Disable redirection"
5427
  msgstr ""
5428
 
5429
- #: inc/functions/options-advanced-admin.php:796
5430
- #: src/Actions/Admin/ManageColumn.php:61
5431
  msgid "Title tag"
5432
  msgstr ""
5433
 
5434
- #: inc/functions/options-advanced-admin.php:820
5435
- #: src/Actions/Admin/ManageColumn.php:73
5436
  msgid "Canonical"
5437
  msgstr ""
5438
 
5439
- #: inc/functions/options-advanced-admin.php:945
5440
  msgid "Description"
5441
  msgstr ""
5442
 
5443
- #: inc/functions/options-advanced-admin.php:953
5444
  msgid ""
5445
  "The description is not prominent by default; however, some themes may show "
5446
  "it."
5447
  msgstr ""
5448
 
5449
- #: inc/functions/options-google-analytics.php:229
5450
  msgid ""
5451
  "By visiting our site, you agree to our privacy policy regarding cookies, "
5452
- "tracking statistics, etc.&nbsp;<a href=\"[seopress_privacy_page]\" tabindex="
5453
- "\"10\">Read more</a>"
5454
  msgstr ""
5455
 
5456
- #: inc/functions/options-google-analytics.php:231
5457
  msgid ""
5458
  "By visiting our site, you agree to our privacy policy regarding cookies, "
5459
  "tracking statistics, etc."
5460
  msgstr ""
5461
 
5462
- #: inc/functions/options-google-analytics.php:250
5463
  msgid "X"
5464
  msgstr ""
5465
 
5466
- #: inc/functions/options-google-analytics.php:832
 
 
 
 
5467
  #: inc/functions/options-matomo.php:223
5468
  msgid "Authors"
5469
  msgstr ""
5470
 
5471
- #: inc/functions/options-google-analytics.php:851
5472
  #: inc/functions/options-matomo.php:237
5473
  msgid "Categories"
5474
  msgstr ""
5475
 
5476
- #: inc/functions/options-google-analytics.php:877
5477
  #: inc/functions/options-matomo.php:257
5478
  msgid "Tags"
5479
  msgstr ""
5480
 
5481
- #: inc/functions/options-google-analytics.php:891
5482
  #: inc/functions/options-matomo.php:266
5483
  msgid "Post types"
5484
  msgstr ""
5485
 
5486
- #: inc/functions/options-google-analytics.php:905
5487
  #: inc/functions/options-matomo.php:275
5488
  msgid "Connected users"
5489
  msgstr ""
5490
 
5491
- #: inc/functions/options-import-export.php:59
5492
- #: inc/functions/options-import-export.php:432
5493
  msgid "Please upload a valid .json file"
5494
  msgstr ""
5495
 
5496
- #: inc/functions/options-import-export.php:64
5497
- #: inc/functions/options-import-export.php:133
5498
- #: inc/functions/options-import-export.php:237
5499
- #: inc/functions/options-import-export.php:436
5500
- #: inc/functions/options-import-export.php:505
5501
  msgid "Please upload a file to import"
5502
  msgstr ""
5503
 
5504
- #: inc/functions/options-import-export.php:129
5505
- #: inc/functions/options-import-export.php:233
5506
  msgid "Please upload a valid .csv file"
5507
  msgstr ""
5508
 
5509
- #: inc/functions/options-import-export.php:137
5510
  msgid "Please choose a separator"
5511
  msgstr ""
5512
 
5513
- #: inc/functions/options-import-export.php:146
5514
  msgid "Invalid separator"
5515
  msgstr ""
5516
 
5517
- #: inc/functions/options-import-export.php:501
5518
  msgid "Please upload a valid .txt file"
5519
  msgstr ""
5520
 
@@ -5537,7 +5575,7 @@ msgid "Last update"
5537
  msgstr ""
5538
 
5539
  #. translators: %d current page (eg: 2) %2$d total number of pages (eg: 30)
5540
- #: inc/functions/variables/dynamic-variables.php:69 src/Tags/Page.php:31
5541
  #, php-format
5542
  msgid "Page %d of %2$d"
5543
  msgstr ""
@@ -5736,136 +5774,136 @@ msgstr ""
5736
  msgid "Did you mean %s?"
5737
  msgstr ""
5738
 
5739
- #: seopress.php:203
5740
  msgid "has been successfully updated!"
5741
  msgstr ""
5742
 
5743
- #: seopress.php:311
5744
  msgid "Clear"
5745
  msgstr ""
5746
 
5747
- #: seopress.php:312
5748
  msgid "Clear color"
5749
  msgstr ""
5750
 
5751
- #: seopress.php:314
5752
  msgid "Select default color"
5753
  msgstr ""
5754
 
5755
- #: seopress.php:315
5756
  msgid "Select Color"
5757
  msgstr ""
5758
 
5759
- #: seopress.php:316
5760
  msgid "Color value"
5761
  msgstr ""
5762
 
5763
- #: seopress.php:453
5764
  msgid "You like SEOPress? Don't forget to rate it 5 stars!"
5765
  msgstr ""
5766
 
5767
- #: seopress.php:515
5768
  msgid "Docs"
5769
  msgstr ""
5770
 
5771
- #: seopress.php:516
5772
  msgid "Configuration Wizard"
5773
  msgstr ""
5774
 
5775
- #: seopress.php:518
5776
  msgid "GO PRO!"
5777
  msgstr ""
5778
 
5779
- #: seopress.php:1269
5780
  msgid "Follow us:"
5781
  msgstr ""
5782
 
5783
- #: seopress.php:1276
5784
  msgid "Like our Facebook page"
5785
  msgstr ""
5786
 
5787
- #: seopress.php:1288
5788
  msgid "Watch our guided tour videos to learn more about SEOPress"
5789
  msgstr ""
5790
 
5791
- #: seopress.php:1300
5792
  msgid "Read our blog posts about SEO concepts, tutorials and more"
5793
  msgstr ""
5794
 
5795
- #: seopress.php:1312
5796
  msgid "The off side of SEOPress"
5797
  msgstr ""
5798
 
5799
- #: src/Actions/Admin/ManageColumn.php:64
5800
  msgid "Meta Desc."
5801
  msgstr ""
5802
 
5803
- #: src/Actions/Admin/ManageColumn.php:67
5804
  msgid "Redirect?"
5805
  msgstr ""
5806
 
5807
- #: src/Actions/Admin/ManageColumn.php:76
5808
  msgid "Target Kw"
5809
  msgstr ""
5810
 
5811
- #: src/Actions/Admin/ManageColumn.php:79
5812
  msgid "noindex?"
5813
  msgstr ""
5814
 
5815
- #: src/Actions/Admin/ManageColumn.php:82
5816
  msgid "nofollow?"
5817
  msgstr ""
5818
 
5819
- #: src/Actions/Admin/ManageColumn.php:85
5820
  msgid "Score"
5821
  msgstr ""
5822
 
5823
- #: src/Actions/Admin/ManageColumn.php:88
5824
  msgid "Words"
5825
  msgstr ""
5826
 
5827
- #: src/Actions/Admin/ManageColumn.php:91
5828
  msgid "W3C check"
5829
  msgstr ""
5830
 
5831
- #: src/Actions/Admin/ManageColumn.php:94
5832
  msgid "Page Speed"
5833
  msgstr ""
5834
 
5835
- #: src/Actions/Admin/ManageColumn.php:174
5836
  msgid "Check code quality of this page"
5837
  msgstr ""
5838
 
5839
- #: src/Actions/Admin/ManageColumn.php:178
5840
  msgid "Analyze this page with Google Page Speed"
5841
  msgstr ""
5842
 
5843
- #: src/Actions/Admin/ManageColumn.php:189
5844
  #: src/Services/ContentAnalysis/RenderContentAnalysis.php:26
5845
  msgid "Good"
5846
  msgstr ""
5847
 
5848
- #: src/Actions/Admin/ManageColumn.php:194
5849
  #: src/Services/ContentAnalysis/RenderContentAnalysis.php:23
5850
  msgid "Should be improved"
5851
  msgstr ""
5852
 
5853
- #: src/Actions/Admin/ManageColumn.php:235
5854
  msgid "Insights from these keywords:"
5855
  msgstr ""
5856
 
5857
  #. Average position
5858
- #: src/Actions/Admin/ManageColumn.php:241
5859
  msgid "Average position: "
5860
  msgstr ""
5861
 
5862
  #. Latest position
5863
- #: src/Actions/Admin/ManageColumn.php:267
5864
  msgid "Latest position: "
5865
  msgstr ""
5866
 
5867
  #. 404
5868
- #: src/Actions/Options/Init.php:259
5869
  msgid "404 - Page not found"
5870
  msgstr ""
5871
 
@@ -5913,6 +5951,38 @@ msgstr ""
5913
  msgid "Outbound Links"
5914
  msgstr ""
5915
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5916
  #: src/Services/ContentAnalysis/GetContent.php:21
5917
  msgid "We found these schemas in the source code of this page:"
5918
  msgstr ""
@@ -6001,412 +6071,423 @@ msgstr ""
6001
  msgid "You should add one of your target keyword in your permalink."
6002
  msgstr ""
6003
 
6004
- #: src/Services/ContentAnalysis/GetContent.php:172
 
6005
  msgid "H1 (Heading 1)"
6006
  msgstr ""
6007
 
6008
- #: src/Services/ContentAnalysis/GetContent.php:180
6009
  msgid "Target keywords were found in Heading 1 (H1)."
6010
  msgstr ""
6011
 
6012
- #: src/Services/ContentAnalysis/GetContent.php:189
6013
- #: src/Services/ContentAnalysis/GetContent.php:219
6014
- #: src/Services/ContentAnalysis/GetContent.php:240
6015
- #: src/Services/ContentAnalysis/GetContent.php:275
6016
- #: src/Services/ContentAnalysis/GetContent.php:321
6017
  #, php-format
6018
  msgid "%s was found %d times."
6019
  msgstr ""
6020
 
6021
- #: src/Services/ContentAnalysis/GetContent.php:194
6022
  #, php-format
6023
  msgid "We found %d Heading 1 (H1) in your content."
6024
  msgstr ""
6025
 
6026
- #: src/Services/ContentAnalysis/GetContent.php:195
6027
  msgid ""
6028
  "You should not use more than one H1 heading in your post content. The rule "
6029
  "is simple: only one H1 for each web page. It is better for both SEO and "
6030
  "accessibility. Below, the list:"
6031
  msgstr ""
6032
 
6033
- #. H2
 
 
 
 
 
6034
  #: src/Services/ContentAnalysis/GetContent.php:209
 
 
 
 
 
6035
  msgid "H2 (Heading 2)"
6036
  msgstr ""
6037
 
6038
- #: src/Services/ContentAnalysis/GetContent.php:211
6039
  msgid "Target keywords were found in Heading 2 (H2)."
6040
  msgstr ""
6041
 
6042
- #: src/Services/ContentAnalysis/GetContent.php:223
6043
  msgid "None of your target keywords were found in Heading 2 (H2)."
6044
  msgstr ""
6045
 
6046
  #. H3
6047
- #: src/Services/ContentAnalysis/GetContent.php:230
6048
  msgid "H3 (Heading 3)"
6049
  msgstr ""
6050
 
6051
- #: src/Services/ContentAnalysis/GetContent.php:232
6052
  msgid "Target keywords were found in Heading 3 (H3)."
6053
  msgstr ""
6054
 
6055
- #: src/Services/ContentAnalysis/GetContent.php:244
6056
  msgid "None of your target keywords were found in Heading 3 (H3)."
6057
  msgstr ""
6058
 
6059
- #: src/Services/ContentAnalysis/GetContent.php:267
6060
  msgid "Target keywords were found in the Meta Title."
6061
  msgstr ""
6062
 
6063
- #: src/Services/ContentAnalysis/GetContent.php:281
6064
  msgid "None of your target keywords were found in the Meta Title."
6065
  msgstr ""
6066
 
6067
- #: src/Services/ContentAnalysis/GetContent.php:286
6068
  msgid "Your custom title is too long."
6069
  msgstr ""
6070
 
6071
- #: src/Services/ContentAnalysis/GetContent.php:289
6072
  msgid "The length of your title is correct"
6073
  msgstr ""
6074
 
6075
- #: src/Services/ContentAnalysis/GetContent.php:294
6076
  msgid ""
6077
  "No custom title is set for this post. If the global meta title suits you, "
6078
  "you can ignore this recommendation."
6079
  msgstr ""
6080
 
6081
- #: src/Services/ContentAnalysis/GetContent.php:313
6082
  msgid "Target keywords were found in the Meta description."
6083
  msgstr ""
6084
 
6085
- #: src/Services/ContentAnalysis/GetContent.php:327
6086
  msgid "None of your target keywords were found in the Meta description."
6087
  msgstr ""
6088
 
6089
- #: src/Services/ContentAnalysis/GetContent.php:332
6090
  msgid "You custom meta description is too long."
6091
  msgstr ""
6092
 
6093
- #: src/Services/ContentAnalysis/GetContent.php:335
6094
  msgid "The length of your meta description is correct"
6095
  msgstr ""
6096
 
6097
- #: src/Services/ContentAnalysis/GetContent.php:340
6098
  msgid ""
6099
  "No custom meta description is set for this post. If the global meta "
6100
  "description suits you, you can ignore this recommendation."
6101
  msgstr ""
6102
 
6103
- #: src/Services/ContentAnalysis/GetContent.php:357
6104
  msgid "Open Graph Title"
6105
  msgstr ""
6106
 
6107
- #: src/Services/ContentAnalysis/GetContent.php:366
6108
  #, php-format
6109
  msgid "We found %d og:title in your content."
6110
  msgstr ""
6111
 
6112
- #: src/Services/ContentAnalysis/GetContent.php:367
6113
  msgid ""
6114
  "You should not use more than one og:title in your post content to avoid "
6115
  "conflicts when sharing on social networks. Facebook will take the last og:"
6116
  "title tag from your source code. Below, the list:"
6117
  msgstr ""
6118
 
6119
- #: src/Services/ContentAnalysis/GetContent.php:370
6120
  msgid "Your Open Graph Title tag is empty!"
6121
  msgstr ""
6122
 
6123
- #: src/Services/ContentAnalysis/GetContent.php:372
6124
  msgid "We found an Open Graph Title tag in your source code."
6125
  msgstr ""
6126
 
6127
- #: src/Services/ContentAnalysis/GetContent.php:384
6128
  msgid "Your Open Graph Title is missing!"
6129
  msgstr ""
6130
 
6131
  #. og:description
6132
- #: src/Services/ContentAnalysis/GetContent.php:388
6133
  msgid "Open Graph Description"
6134
  msgstr ""
6135
 
6136
- #: src/Services/ContentAnalysis/GetContent.php:397
6137
  #, php-format
6138
  msgid "We found %d og:description in your content."
6139
  msgstr ""
6140
 
6141
- #: src/Services/ContentAnalysis/GetContent.php:398
6142
  msgid ""
6143
  "You should not use more than one og:description in your post content to "
6144
  "avoid conflicts when sharing on social networks. Facebook will take the last "
6145
  "og:description tag from your source code. Below, the list:"
6146
  msgstr ""
6147
 
6148
- #: src/Services/ContentAnalysis/GetContent.php:401
6149
  msgid "Your Open Graph Description tag is empty!"
6150
  msgstr ""
6151
 
6152
- #: src/Services/ContentAnalysis/GetContent.php:403
6153
  msgid "We found an Open Graph Description tag in your source code."
6154
  msgstr ""
6155
 
6156
- #: src/Services/ContentAnalysis/GetContent.php:415
6157
  msgid "Your Open Graph Description is missing!"
6158
  msgstr ""
6159
 
6160
  #. og:image
6161
- #: src/Services/ContentAnalysis/GetContent.php:419
6162
  msgid "Open Graph Image"
6163
  msgstr ""
6164
 
6165
- #: src/Services/ContentAnalysis/GetContent.php:427
6166
  #, php-format
6167
  msgid "We found %d og:image in your content."
6168
  msgstr ""
6169
 
6170
- #: src/Services/ContentAnalysis/GetContent.php:433
6171
  msgid "Your Open Graph Image tag is empty!"
6172
  msgstr ""
6173
 
6174
- #: src/Services/ContentAnalysis/GetContent.php:445
6175
  msgid "Your Open Graph Image is missing!"
6176
  msgstr ""
6177
 
6178
  #. og:url
6179
- #: src/Services/ContentAnalysis/GetContent.php:449
6180
  msgid "Open Graph URL"
6181
  msgstr ""
6182
 
6183
- #: src/Services/ContentAnalysis/GetContent.php:458
6184
  #, php-format
6185
  msgid "We found %d og:url in your content."
6186
  msgstr ""
6187
 
6188
- #: src/Services/ContentAnalysis/GetContent.php:459
6189
  msgid ""
6190
  "You should not use more than one og:url in your post content to avoid "
6191
  "conflicts when sharing on social networks. Facebook will take the last og:"
6192
  "url tag from your source code. Below, the list:"
6193
  msgstr ""
6194
 
6195
- #: src/Services/ContentAnalysis/GetContent.php:462
6196
  msgid "Your Open Graph URL tag is empty!"
6197
  msgstr ""
6198
 
6199
- #: src/Services/ContentAnalysis/GetContent.php:464
6200
  msgid "We found an Open Graph URL tag in your source code."
6201
  msgstr ""
6202
 
6203
- #: src/Services/ContentAnalysis/GetContent.php:476
6204
  msgid "Your Open Graph URL is missing!"
6205
  msgstr ""
6206
 
6207
  #. og:site_name
6208
- #: src/Services/ContentAnalysis/GetContent.php:480
6209
  msgid "Open Graph Site Name"
6210
  msgstr ""
6211
 
6212
- #: src/Services/ContentAnalysis/GetContent.php:489
6213
  #, php-format
6214
  msgid "We found %d og:site_name in your content."
6215
  msgstr ""
6216
 
6217
- #: src/Services/ContentAnalysis/GetContent.php:490
6218
  msgid ""
6219
  "You should not use more than one og:site_name in your post content to avoid "
6220
  "conflicts when sharing on social networks. Facebook will take the last og:"
6221
  "site_name tag from your source code. Below, the list:"
6222
  msgstr ""
6223
 
6224
- #: src/Services/ContentAnalysis/GetContent.php:493
6225
  msgid "Your Open Graph Site Name tag is empty!"
6226
  msgstr ""
6227
 
6228
- #: src/Services/ContentAnalysis/GetContent.php:495
6229
  msgid "We found an Open Graph Site Name tag in your source code."
6230
  msgstr ""
6231
 
6232
- #: src/Services/ContentAnalysis/GetContent.php:507
6233
  msgid "Your Open Graph Site Name is missing!"
6234
  msgstr ""
6235
 
6236
- #: src/Services/ContentAnalysis/GetContent.php:520
6237
  #, php-format
6238
  msgid "We found %d twitter:title in your content."
6239
  msgstr ""
6240
 
6241
- #: src/Services/ContentAnalysis/GetContent.php:521
6242
  msgid ""
6243
  "You should not use more than one twitter:title in your post content to avoid "
6244
  "conflicts when sharing on social networks. Twitter will take the last "
6245
  "twitter:title tag from your source code. Below, the list:"
6246
  msgstr ""
6247
 
6248
- #: src/Services/ContentAnalysis/GetContent.php:524
6249
  msgid "Your Twitter Title tag is empty!"
6250
  msgstr ""
6251
 
6252
- #: src/Services/ContentAnalysis/GetContent.php:526
6253
  msgid "We found a Twitter Title tag in your source code."
6254
  msgstr ""
6255
 
6256
- #: src/Services/ContentAnalysis/GetContent.php:538
6257
  msgid "Your Twitter Title is missing!"
6258
  msgstr ""
6259
 
6260
  #. twitter:description
6261
- #: src/Services/ContentAnalysis/GetContent.php:542
6262
  msgid "Twitter Description"
6263
  msgstr ""
6264
 
6265
- #: src/Services/ContentAnalysis/GetContent.php:551
6266
  #, php-format
6267
  msgid "We found %d twitter:description in your content."
6268
  msgstr ""
6269
 
6270
- #: src/Services/ContentAnalysis/GetContent.php:552
6271
  msgid ""
6272
  "You should not use more than one twitter:description in your post content to "
6273
  "avoid conflicts when sharing on social networks. Twitter will take the last "
6274
  "twitter:description tag from your source code. Below, the list:"
6275
  msgstr ""
6276
 
6277
- #: src/Services/ContentAnalysis/GetContent.php:555
6278
  msgid "Your Twitter Description tag is empty!"
6279
  msgstr ""
6280
 
6281
- #: src/Services/ContentAnalysis/GetContent.php:557
6282
  msgid "We found a Twitter Description tag in your source code."
6283
  msgstr ""
6284
 
6285
- #: src/Services/ContentAnalysis/GetContent.php:569
6286
  msgid "Your Twitter Description is missing!"
6287
  msgstr ""
6288
 
6289
  #. twitter:image
6290
- #: src/Services/ContentAnalysis/GetContent.php:573
6291
  msgid "Twitter Image"
6292
  msgstr ""
6293
 
6294
- #: src/Services/ContentAnalysis/GetContent.php:581
6295
  #, php-format
6296
  msgid "We found %d twitter:image in your content."
6297
  msgstr ""
6298
 
6299
- #: src/Services/ContentAnalysis/GetContent.php:587
6300
  msgid "Your Twitter Image tag is empty!"
6301
  msgstr ""
6302
 
6303
- #: src/Services/ContentAnalysis/GetContent.php:599
6304
  msgid "Your Twitter Image is missing!"
6305
  msgstr ""
6306
 
6307
- #: src/Services/ContentAnalysis/GetContent.php:623
6308
  #, php-format
6309
  msgid ""
6310
  "We found %s meta robots in your page. There is probably something wrong with "
6311
  "your theme!"
6312
  msgstr ""
6313
 
6314
- #: src/Services/ContentAnalysis/GetContent.php:628
6315
  msgid "noindex is on! Search engines can't index this page."
6316
  msgstr ""
6317
 
6318
- #: src/Services/ContentAnalysis/GetContent.php:630
6319
  msgid "noindex is off. Search engines will index this page."
6320
  msgstr ""
6321
 
6322
- #: src/Services/ContentAnalysis/GetContent.php:635
6323
  msgid "nofollow is on! Search engines can't follow your links on this page."
6324
  msgstr ""
6325
 
6326
- #: src/Services/ContentAnalysis/GetContent.php:637
6327
  msgid "nofollow is off. Search engines will follow links on this page."
6328
  msgstr ""
6329
 
6330
- #: src/Services/ContentAnalysis/GetContent.php:644
6331
  msgid "noarchive is on! Search engines will not cache your page."
6332
  msgstr ""
6333
 
6334
- #: src/Services/ContentAnalysis/GetContent.php:646
6335
  msgid "noarchive is off. Search engines will probably cache your page."
6336
  msgstr ""
6337
 
6338
- #: src/Services/ContentAnalysis/GetContent.php:653
6339
  msgid ""
6340
  "nosnippet is on! Search engines will not display a snippet of this page in "
6341
  "search results."
6342
  msgstr ""
6343
 
6344
- #: src/Services/ContentAnalysis/GetContent.php:655
6345
  msgid ""
6346
  "nosnippet is off. Search engines will display a snippet of this page in "
6347
  "search results."
6348
  msgstr ""
6349
 
6350
- #: src/Services/ContentAnalysis/GetContent.php:658
6351
  msgid ""
6352
  "We found no meta robots on this page. It means, your page is index,follow. "
6353
  "Search engines will index it, and follow links. "
6354
  msgstr ""
6355
 
6356
- #: src/Services/ContentAnalysis/GetContent.php:667
6357
  msgid ""
6358
  "noimageindex is on! Google will not index your images on this page (but if "
6359
  "someone makes a direct link to one of your image in this page, it will be "
6360
  "indexed)."
6361
  msgstr ""
6362
 
6363
- #: src/Services/ContentAnalysis/GetContent.php:669
6364
- #: src/Services/ContentAnalysis/GetContent.php:681
6365
  msgid "noimageindex is off. Google will index the images on this page."
6366
  msgstr ""
6367
 
6368
- #: src/Services/ContentAnalysis/GetContent.php:676
6369
  msgid ""
6370
  "nositelinkssearchbox is on! Google will not display a sitelinks searchbox in "
6371
  "search results."
6372
  msgstr ""
6373
 
6374
- #: src/Services/ContentAnalysis/GetContent.php:678
6375
- #: src/Services/ContentAnalysis/GetContent.php:683
6376
  msgid ""
6377
  "nositelinkssearchbox is off. Google will probably display a sitelinks "
6378
  "searchbox in search results."
6379
  msgstr ""
6380
 
6381
- #: src/Services/ContentAnalysis/GetContent.php:706
6382
  msgid ""
6383
  "No alternative text found for these images. Alt tags are important for both "
6384
  "SEO and accessibility. Edit your images using the media library or your "
6385
  "favorite page builder and fill in alternative text fields."
6386
  msgstr ""
6387
 
6388
- #: src/Services/ContentAnalysis/GetContent.php:717
6389
  msgid "All alternative tags are filled in. Good work!"
6390
  msgstr ""
6391
 
6392
- #: src/Services/ContentAnalysis/GetContent.php:724
6393
  msgid ""
6394
  "We could not find any image in your content. Content with media is a plus "
6395
  "for your SEO."
6396
  msgstr ""
6397
 
6398
- #: src/Services/ContentAnalysis/GetContent.php:741
6399
  #, php-format
6400
  msgid ""
6401
  "We found %d links with nofollow attribute in your page. Do not overuse "
6402
  "nofollow attribute in links. Below, the list:"
6403
  msgstr ""
6404
 
6405
- #: src/Services/ContentAnalysis/GetContent.php:752
6406
  msgid "This page doesn't have any nofollow links."
6407
  msgstr ""
6408
 
6409
- #: src/Services/ContentAnalysis/GetContent.php:766
6410
  msgid ""
6411
  "Internet is built on the principle of hyperlink. It is therefore perfectly "
6412
  "normal to make links between different websites. However, avoid making links "
@@ -6414,36 +6495,58 @@ msgid ""
6414
  "site, add the attribute \"nofollow\" to your link."
6415
  msgstr ""
6416
 
6417
- #: src/Services/ContentAnalysis/GetContent.php:770
6418
  #, php-format
6419
  msgid "We found %s outbound links in your page. Below, the list:"
6420
  msgstr ""
6421
 
6422
- #: src/Services/ContentAnalysis/GetContent.php:780
6423
  msgid "This page doesn't have any outbound links."
6424
  msgstr ""
6425
 
6426
- #: src/Services/ContentAnalysis/GetContent.php:795
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6427
  msgid ""
6428
  "A canonical URL is required by search engines to handle duplicate content."
6429
  msgstr ""
6430
 
6431
- #: src/Services/ContentAnalysis/GetContent.php:799
6432
  #, php-format
6433
  msgid "We found %s canonical URL in your source code. Below, the list:"
6434
  msgstr ""
6435
 
6436
- #: src/Services/ContentAnalysis/GetContent.php:808
6437
  msgid "You must fix this. Canonical URL duplication is bad for SEO."
6438
  msgstr ""
6439
 
6440
- #: src/Services/ContentAnalysis/GetContent.php:813
6441
  msgid ""
6442
  "This page doesn't have any canonical URL because your post is set to "
6443
  "<strong>noindex</strong>. This is normal."
6444
  msgstr ""
6445
 
6446
- #: src/Services/ContentAnalysis/GetContent.php:816
6447
  msgid "This page doesn't have any canonical URL."
6448
  msgstr ""
6449
 
@@ -6460,3 +6563,7 @@ msgstr ""
6460
  #: src/Services/ContentAnalysis/RenderContentAnalysis.php:37
6461
  msgid "Close"
6462
  msgstr ""
 
 
 
 
3
  msgstr ""
4
  "Project-Id-Version: SEOPress\n"
5
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/wp-cloudy\n"
6
+ "POT-Creation-Date: 2021-04-29 14:19+0200\n"
7
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
8
  "Last-Translator: \n"
9
  "Language-Team: Benjamin DENIS <contact@seopress.org>\n"
10
  "MIME-Version: 1.0\n"
11
  "Content-Type: text/plain; charset=UTF-8\n"
12
  "Content-Transfer-Encoding: 8bit\n"
13
+ "X-Generator: Poedit 2.4.3\n"
14
  "X-Poedit-KeywordsList: __;_e;_x;esc_attr_e;esc_attr__;esc_html__;esc_html_e\n"
15
  "X-Poedit-Basepath: ..\n"
16
  "X-Poedit-SourceCharset: UTF-8\n"
19
  "X-Poedit-SearchPath-0: .\n"
20
 
21
  #: inc/admin/admin-dyn-variables-helper.php:6
22
+ #: inc/admin/admin-metaboxes-form.php:116 inc/admin/admin.php:3209
23
+ #: inc/admin/admin.php:3314 inc/admin/admin.php:3446 inc/admin/admin.php:3574
24
+ #: inc/admin/admin.php:3705 inc/admin/admin.php:3784 inc/admin/admin.php:3849
25
+ #: inc/admin/admin.php:3914 inc/admin/admin.php:3958
26
  #: inc/admin/page-builders/elementor/inc/controls/class-text-letter-counter-control.php:67
27
  msgid "Site Title"
28
  msgstr ""
29
 
30
+ #: inc/admin/admin-dyn-variables-helper.php:7 inc/admin/admin.php:3211
31
+ #: inc/admin/admin.php:3221
32
  msgid "Tagline"
33
  msgstr ""
34
 
35
  #: inc/admin/admin-dyn-variables-helper.php:8
36
+ #: inc/admin/admin-metaboxes-form.php:114 inc/admin/admin.php:3310
37
+ #: inc/admin/admin.php:3444 inc/admin/admin.php:4436
38
  #: inc/admin/page-builders/elementor/inc/controls/class-text-letter-counter-control.php:66
39
  msgid "Post Title"
40
  msgstr ""
41
 
42
+ #: inc/admin/admin-dyn-variables-helper.php:9
43
  msgid "Post excerpt"
44
  msgstr ""
45
 
47
  msgid "Post content / product description"
48
  msgstr ""
49
 
50
+ #: inc/admin/admin-dyn-variables-helper.php:11
51
  msgid "Post thumbnail URL"
52
  msgstr ""
53
 
55
  msgid "Post URL"
56
  msgstr ""
57
 
58
+ #: inc/admin/admin-dyn-variables-helper.php:13
59
  msgid "Post date"
60
  msgstr ""
61
 
63
  msgid "Post modified date"
64
  msgstr ""
65
 
66
+ #: inc/admin/admin-dyn-variables-helper.php:15 inc/admin/admin.php:3782
 
67
  msgid "Post author"
68
  msgstr ""
69
 
70
+ #: inc/admin/admin-dyn-variables-helper.php:16
71
  msgid "Post category"
72
  msgstr ""
73
 
74
+ #: inc/admin/admin-dyn-variables-helper.php:17
75
  msgid "Post tag"
76
  msgstr ""
77
 
78
+ #: inc/admin/admin-dyn-variables-helper.php:18
79
  msgid "Category title"
80
  msgstr ""
81
 
82
+ #: inc/admin/admin-dyn-variables-helper.php:19
83
  msgid "Category description"
84
  msgstr ""
85
 
86
+ #: inc/admin/admin-dyn-variables-helper.php:20
87
  msgid "Tag title"
88
  msgstr ""
89
 
90
+ #: inc/admin/admin-dyn-variables-helper.php:21
91
  msgid "Tag description"
92
  msgstr ""
93
 
94
+ #: inc/admin/admin-dyn-variables-helper.php:22
95
  msgid "Term title"
96
  msgstr ""
97
 
98
+ #: inc/admin/admin-dyn-variables-helper.php:23
99
  msgid "Term description"
100
  msgstr ""
101
 
102
+ #: inc/admin/admin-dyn-variables-helper.php:24
103
  msgid "Search keywords"
104
  msgstr ""
105
 
106
+ #: inc/admin/admin-dyn-variables-helper.php:25
107
  msgid "Current number page"
108
  msgstr ""
109
 
111
  msgid "Page number with context"
112
  msgstr ""
113
 
114
+ #: inc/admin/admin-dyn-variables-helper.php:27
115
  msgid "Plural Post Type Archive name"
116
  msgstr ""
117
 
118
+ #: inc/admin/admin-dyn-variables-helper.php:28
119
  msgid "Archive title"
120
  msgstr ""
121
 
123
  msgid "Archive date"
124
  msgstr ""
125
 
126
+ #: inc/admin/admin-dyn-variables-helper.php:30
127
  msgid "Day Archive date"
128
  msgstr ""
129
 
130
+ #: inc/admin/admin-dyn-variables-helper.php:31
131
  msgid "Month Archive title"
132
  msgstr ""
133
 
134
+ #: inc/admin/admin-dyn-variables-helper.php:32
135
  msgid "Year Archive title"
136
  msgstr ""
137
 
143
  msgid "Custom term taxonomy from post, page or post type"
144
  msgstr ""
145
 
146
+ #: inc/admin/admin-dyn-variables-helper.php:35
147
  msgid "Single product category"
148
  msgstr ""
149
 
150
+ #: inc/admin/admin-dyn-variables-helper.php:36
151
  msgid "Single product tag"
152
  msgstr ""
153
 
154
+ #: inc/admin/admin-dyn-variables-helper.php:37
155
  msgid "Single product short description"
156
  msgstr ""
157
 
158
+ #: inc/admin/admin-dyn-variables-helper.php:38
159
  msgid "Single product price"
160
  msgstr ""
161
 
162
+ #: inc/admin/admin-dyn-variables-helper.php:39
163
  msgid "Single product price taxes excluded"
164
  msgstr ""
165
 
166
+ #: inc/admin/admin-dyn-variables-helper.php:40
167
  msgid "Single SKU product"
168
  msgstr ""
169
 
170
+ #: inc/admin/admin-dyn-variables-helper.php:41
171
  msgid "Current day"
172
  msgstr ""
173
 
174
+ #: inc/admin/admin-dyn-variables-helper.php:42
175
  msgid "Current month"
176
  msgstr ""
177
 
179
  msgid "Current month in 3 letters"
180
  msgstr ""
181
 
182
+ #: inc/admin/admin-dyn-variables-helper.php:44
183
  msgid "Current year"
184
  msgstr ""
185
 
186
+ #: inc/admin/admin-dyn-variables-helper.php:45
187
  msgid "Current date"
188
  msgstr ""
189
 
190
+ #: inc/admin/admin-dyn-variables-helper.php:46
191
  msgid "Current time"
192
  msgstr ""
193
 
194
  #: inc/admin/admin-dyn-variables-helper.php:47
195
+ msgid "Author first name"
196
+ msgstr ""
197
+
198
+ #: inc/admin/admin-dyn-variables-helper.php:48
199
+ msgid "Author last name"
200
+ msgstr ""
201
+
202
+ #: inc/admin/admin-dyn-variables-helper.php:49
203
+ msgid "Author website"
204
+ msgstr ""
205
+
206
+ #: inc/admin/admin-dyn-variables-helper.php:50
207
+ msgid "Author nickname"
208
+ msgstr ""
209
+
210
+ #: inc/admin/admin-dyn-variables-helper.php:51
211
  msgid "Author biography"
212
  msgstr ""
213
 
214
+ #: inc/admin/admin-dyn-variables-helper.php:52
215
+ msgid "Author user meta"
216
+ msgstr ""
217
+
218
+ #: inc/admin/admin-dyn-variables-helper.php:53
219
  msgid "Current month in digital format"
220
  msgstr ""
221
 
222
+ #: inc/admin/admin-dyn-variables-helper.php:54
223
+ msgid "Target keyword"
224
+ msgstr ""
225
+
226
  #: inc/admin/admin-features-list.php:15
227
  msgid "Titles & metas"
228
  msgstr ""
253
  #: inc/admin/admin-features-list.php:233 inc/admin/admin-features-list.php:252
254
  #: inc/admin/admin-features-list.php:271 inc/admin/admin-features-list.php:290
255
  #: inc/admin/admin-features-list.php:338 inc/admin/admin-features-list.php:356
256
+ #: inc/admin/admin.php:125 inc/admin/admin.php:131 inc/admin/admin.php:154
257
+ #: inc/admin/admin.php:160 inc/admin/admin.php:183 inc/admin/admin.php:189
258
  msgid "Read our guide"
259
  msgstr ""
260
 
262
  msgid "Guide to manage your titles and meta descriptions - new window"
263
  msgstr ""
264
 
265
+ #: inc/admin/admin-features-list.php:31 inc/admin/admin.php:42
266
  msgid "XML / Image / Video / HTML Sitemap"
267
  msgstr ""
268
 
275
  msgstr ""
276
 
277
  #: inc/admin/admin-features-list.php:47 inc/admin/admin-header.php:57
278
+ #: inc/admin/admin.php:43 inc/admin/adminbar.php:137
279
  msgid "Social Networks"
280
  msgstr ""
281
 
288
  msgstr ""
289
 
290
  #: inc/admin/admin-features-list.php:63 inc/admin/admin-header.php:63
291
+ #: inc/admin/admin.php:44 inc/admin/adminbar.php:143
292
  msgid "Analytics"
293
  msgstr ""
294
 
301
  msgstr ""
302
 
303
  #: inc/admin/admin-features-list.php:79 inc/admin/admin-header.php:69
304
+ #: inc/admin/admin-metaboxes-form.php:48 inc/admin/admin.php:45
305
+ #: inc/admin/admin.php:245 inc/admin/admin.php:569 inc/admin/adminbar.php:149
306
  msgid "Advanced"
307
  msgstr ""
308
 
312
 
313
  #: inc/admin/admin-features-list.php:90 inc/admin/admin-header.php:25
314
  #: inc/admin/admin-header.php:77 inc/admin/adminbar.php:157
315
+ #: src/Actions/Admin/ManageColumn.php:84
316
  msgid "Insights"
317
  msgstr ""
318
 
436
  msgstr ""
437
 
438
  #: inc/admin/admin-features-list.php:260 inc/admin/admin-header.php:142
439
+ #: inc/admin/admin.php:617 inc/admin/adminbar.php:200
440
  msgid "Redirections"
441
  msgstr ""
442
 
497
  msgstr ""
498
 
499
  #: inc/admin/admin-features-list.php:330 inc/admin/admin-header.php:187
500
+ #: inc/admin/admin.php:46 inc/admin/adminbar.php:164
501
  msgid "Tools"
502
  msgstr ""
503
 
510
  msgstr ""
511
 
512
  #: inc/admin/admin-features-list.php:348 inc/admin/admin-header.php:180
513
+ #: inc/admin/admin-notifications-center.php:884 inc/admin/adminbar.php:179
514
  msgid "License"
515
  msgstr ""
516
 
562
  msgid "SEOPress"
563
  msgstr ""
564
 
565
+ #: inc/admin/admin-header.php:31 inc/admin/admin-notifications-center.php:914
566
  #: inc/admin/adminbar.php:185
567
  msgid "PRO"
568
  msgstr ""
571
  msgid "FREE"
572
  msgstr ""
573
 
574
+ #: inc/admin/admin-header.php:45 inc/admin/admin.php:41
575
  #: inc/admin/adminbar.php:125
576
  msgid "Titles & Metas"
577
  msgstr ""
578
 
579
+ #: inc/admin/admin-header.php:51 inc/admin/admin.php:42
580
  #: inc/admin/adminbar.php:131
581
  msgid "XML / HTML Sitemap"
582
  msgstr ""
597
  msgid "Send feedback"
598
  msgstr ""
599
 
600
+ #: inc/admin/admin-header.php:219 seopress.php:1365
601
  msgid "Join our Facebook Community group"
602
  msgstr ""
603
 
604
+ #: inc/admin/admin-header.php:223 seopress.php:1389
605
  msgid "Follow us on Twitter"
606
  msgstr ""
607
 
617
  msgid "Support"
618
  msgstr ""
619
 
620
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:10
621
  msgid "Enter a few keywords for analysis to help you write optimized content."
622
  msgstr ""
623
 
624
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:13
625
  msgid "Did you know?"
626
  msgstr ""
627
 
628
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:13
629
  msgid ""
630
  "Writing content for your users is the most important thing! If it doesn‘t "
631
  "feel natural, your visitors will leave your site, Google will know it and "
632
  "your ranking will be affected."
633
  msgstr ""
634
 
635
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:17
636
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:18
637
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:20
638
+ #: inc/admin/admin.php:675 inc/admin/admin.php:711
639
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:570
640
+ #: inc/functions/options-advanced-admin.php:821
641
  msgid "Target keywords"
642
  msgstr ""
643
 
644
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:18
645
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:572
646
  msgid ""
647
  "Separate target keywords with commas. Do not use spaces after the commas, "
648
  "unless you want to include them"
649
  msgstr ""
650
 
651
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:20
652
  msgid "Enter your target keywords"
653
  msgstr ""
654
 
655
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:23
656
  msgid "Analyze my content"
657
  msgstr ""
658
 
659
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:25
660
  #: inc/admin/page-builders/elementor/inc/controls/class-content-analysis-control.php:43
661
  msgid "Refresh analysis"
662
  msgstr ""
663
 
664
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:29
665
  msgid "Track with Insights"
666
  msgstr ""
667
 
668
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:34
669
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:596
670
  msgid ""
671
  "To get the most accurate analysis, save your post first. We analyze all of "
672
  "your source code as a search engine would."
673
  msgstr ""
674
 
675
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:39
676
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:40
677
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:583
 
678
  #: inc/admin/page-builders/elementor/inc/controls/class-google-suggestions-control.php:50
679
+ #: inc/admin/page-builders/elementor/inc/controls/class-google-suggestions-control.php:51
680
  msgid "Google suggestions"
681
  msgstr ""
682
 
683
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:40
684
+ #: inc/admin/page-builders/elementor/inc/controls/class-google-suggestions-control.php:51
685
  msgid ""
686
  "Enter a keyword, or a phrase, to find the top 10 Google suggestions "
687
  "instantly. This is useful if you want to work with the long tail technique."
688
  msgstr ""
689
 
690
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:42
691
+ #: inc/admin/page-builders/elementor/inc/controls/class-google-suggestions-control.php:52
692
  msgid "Get suggestions from Google"
693
  msgstr ""
694
 
695
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:44
696
+ #: inc/admin/page-builders/elementor/inc/controls/class-google-suggestions-control.php:53
697
  msgid "Get suggestions!"
698
  msgstr ""
699
 
700
+ #: inc/admin/admin-metaboxes-form.php:38 inc/admin/admin-metaboxes.php:222
701
+ #: inc/admin/admin-metaboxes.php:225 inc/admin/admin.php:34
702
  #: inc/admin/adminbar.php:44
703
  #: inc/admin/page-builders/gutenberg/gutenberg-addon.php:36
704
+ #: inc/functions/options-advanced-admin.php:803
705
  msgid "SEO"
706
  msgstr ""
707
 
708
+ #: inc/admin/admin-metaboxes-form.php:47
709
  msgid "Titles settings"
710
  msgstr ""
711
 
712
+ #: inc/admin/admin-metaboxes-form.php:49
713
  msgid "Social"
714
  msgstr ""
715
 
716
+ #: inc/admin/admin-metaboxes-form.php:52
717
  msgid "Redirection"
718
  msgstr ""
719
 
720
+ #: inc/admin/admin-metaboxes-form.php:58
721
  msgid "Google News"
722
  msgstr ""
723
 
724
+ #: inc/admin/admin-metaboxes-form.php:65
725
  msgid "Video Sitemap"
726
  msgstr ""
727
 
728
+ #: inc/admin/admin-metaboxes-form.php:88
729
  msgid ""
730
  "This is your <strong>Shop page</strong>. Go to <strong>SEO > Titles & Metas "
731
  "> Archives > Products</strong> "
732
  msgstr ""
733
 
734
+ #: inc/admin/admin-metaboxes-form.php:88
735
  msgid "to edit your title and meta description"
736
  msgstr ""
737
 
738
+ #: inc/admin/admin-metaboxes-form.php:95 inc/admin/admin-metaboxes-form.php:98
739
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:128
 
740
  msgid "Title"
741
  msgstr ""
742
 
743
+ #: inc/admin/admin-metaboxes-form.php:96 inc/admin/admin.php:651
744
+ #: inc/admin/admin.php:687 src/Helpers/ContentAnalysis.php:48
745
  msgid "Meta title"
746
  msgstr ""
747
 
748
+ #: inc/admin/admin-metaboxes-form.php:96
749
  msgid ""
750
  "Titles are critical to give users a quick insight into the content of a "
751
  "result and why it’s relevant to their query. It's often the primary piece of "
753
  "use high-quality titles on your web pages."
754
  msgstr ""
755
 
756
+ #: inc/admin/admin-metaboxes-form.php:98
757
  msgid "Enter your title"
758
  msgstr ""
759
 
760
+ #: inc/admin/admin-metaboxes-form.php:105
761
  #: inc/admin/page-builders/elementor/inc/controls/class-text-letter-counter-control.php:55
762
  msgid " / 568 pixels - "
763
  msgstr ""
764
 
765
+ #: inc/admin/admin-metaboxes-form.php:107
766
+ #: inc/admin/admin-metaboxes-form.php:137
767
  #: inc/admin/page-builders/elementor/inc/controls/class-text-letter-counter-control.php:61
768
  msgid " (maximum recommended limit)"
769
  msgstr ""
770
 
771
+ #: inc/admin/admin-metaboxes-form.php:112 inc/admin/admin.php:3569
772
  msgid "Term Title"
773
  msgstr ""
774
 
775
  #. ID
776
+ #: inc/admin/admin-metaboxes-form.php:117 inc/admin/admin-wizard.php:586
777
+ #: inc/admin/admin.php:1190 inc/admin/admin.php:3197 inc/admin/admin.php:3210
778
+ #: inc/admin/admin.php:3312 inc/admin/admin.php:3445 inc/admin/admin.php:3572
779
+ #: inc/admin/admin.php:3703 inc/admin/admin.php:3783 inc/admin/admin.php:3848
780
+ #: inc/admin/admin.php:3913 inc/admin/admin.php:3959
781
  #: inc/admin/page-builders/elementor/inc/controls/class-text-letter-counter-control.php:68
782
  msgid "Separator"
783
  msgstr ""
784
 
785
  #. ID
786
+ #: inc/admin/admin-metaboxes-form.php:125
787
+ #: inc/admin/admin-metaboxes-form.php:126
788
+ #: inc/admin/admin-metaboxes-form.php:128 inc/admin/admin-wizard.php:317
789
+ #: inc/admin/admin-wizard.php:337 inc/admin/admin-wizard.php:356
790
+ #: inc/admin/admin-wizard.php:375 inc/admin/admin-wizard.php:394
791
+ #: inc/admin/admin-wizard.php:412 inc/admin/admin-wizard.php:429
792
+ #: inc/admin/admin-wizard.php:445 inc/admin/admin-wizard.php:464
793
+ #: inc/admin/admin-wizard.php:485 inc/admin/admin-wizard.php:508
794
+ #: inc/admin/admin-wizard.php:530 inc/admin/admin.php:654
795
+ #: inc/admin/admin.php:690 inc/admin/admin.php:794 inc/admin/admin.php:816
796
+ #: inc/admin/admin.php:837 inc/admin/admin.php:858 inc/admin/admin.php:879
797
+ #: inc/admin/admin.php:899 inc/admin/admin.php:918 inc/admin/admin.php:936
798
+ #: inc/admin/admin.php:956 inc/admin/admin.php:978 inc/admin/admin.php:1001
799
+ #: inc/admin/admin.php:1023 inc/admin/admin.php:1206 inc/admin/admin.php:3218
800
+ #: inc/functions/options-advanced-admin.php:813
801
  #: src/Helpers/ContentAnalysis.php:53
802
  msgid "Meta description"
803
  msgstr ""
804
 
805
+ #: inc/admin/admin-metaboxes-form.php:126
806
  msgid ""
807
  "A meta description tag should generally inform and interest users with a "
808
  "short, relevant summary of what a particular page is about. <br>They are "
812
  "device width."
813
  msgstr ""
814
 
815
+ #: inc/admin/admin-metaboxes-form.php:128
816
  msgid "Enter your meta description"
817
  msgstr ""
818
 
819
+ #: inc/admin/admin-metaboxes-form.php:135
820
  #: inc/admin/page-builders/elementor/inc/controls/class-text-letter-counter-control.php:57
821
  msgid " / 940 pixels - "
822
  msgstr ""
823
 
824
+ #: inc/admin/admin-metaboxes-form.php:141
825
  msgid "Category / term description"
826
  msgstr ""
827
 
828
+ #: inc/admin/admin-metaboxes-form.php:143
829
  #: inc/admin/page-builders/elementor/inc/controls/class-text-letter-counter-control.php:70
830
  msgid "Post Excerpt"
831
  msgstr ""
832
 
833
+ #: inc/admin/admin-metaboxes-form.php:154
834
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:152
835
  msgid "Google Snippet Preview"
836
  msgstr ""
837
 
838
+ #: inc/admin/admin-metaboxes-form.php:155
839
  msgid "Snippet Preview"
840
  msgstr ""
841
 
842
+ #: inc/admin/admin-metaboxes-form.php:155
843
  msgid ""
844
  "The Google preview is a simulation. <br>There is no reliable preview because "
845
  "it depends on the screen resolution, the device used, the expression sought, "
848
  "what the crawlers will see."
849
  msgstr ""
850
 
851
+ #: inc/admin/admin-metaboxes-form.php:157
852
  msgid ""
853
  "This is what your page will look like in Google search results. You have to "
854
  "publish your post to get the Google Snippet Preview."
855
  msgstr ""
856
 
857
+ #: inc/admin/admin-metaboxes-form.php:162
858
+ #: inc/admin/page-builders/elementor/inc/controls/class-social-preview-control.php:95
859
  msgid "Mobile Preview"
860
  msgstr ""
861
 
862
+ #: inc/admin/admin-metaboxes-form.php:208
863
  msgid "Meta robots settings"
864
  msgstr ""
865
 
866
+ #: inc/admin/admin-metaboxes-form.php:212
867
+ #: inc/functions/options-advanced-admin.php:838
868
  msgid ""
869
  "Do not display this page in search engine results / XML - HTML sitemaps "
870
  "<strong>(noindex)</strong>"
871
  msgstr ""
872
 
873
+ #: inc/admin/admin-metaboxes-form.php:213
874
  msgid "\"noindex\" robots meta tag"
875
  msgstr ""
876
 
877
+ #: inc/admin/admin-metaboxes-form.php:213
878
  msgid ""
879
  "By checking this option, you will add a meta robots tag with the value "
880
  "\"noindex\". <br>Search engines will not index this URL in the search "
881
  "results."
882
  msgstr ""
883
 
884
+ #: inc/admin/admin-metaboxes-form.php:219
885
+ #: inc/functions/options-advanced-admin.php:846
886
  msgid "Do not follow links for this page <strong>(nofollow)</strong>"
887
  msgstr ""
888
 
889
+ #: inc/admin/admin-metaboxes-form.php:220
890
  msgid "\"nofollow\" robots meta tag"
891
  msgstr ""
892
 
893
+ #: inc/admin/admin-metaboxes-form.php:220
894
  msgid ""
895
  "By checking this option, you will add a meta robots tag with the value "
896
  "\"nofollow\". <br>Search engines will not follow links from this URL."
897
  msgstr ""
898
 
899
+ #: inc/admin/admin-metaboxes-form.php:226
900
  msgid ""
901
  "Do not use Open Directory project metadata for titles or excerpts for this "
902
  "page <strong>(noodp)</strong>"
903
  msgstr ""
904
 
905
+ #: inc/admin/admin-metaboxes-form.php:227
906
  msgid "\"noodp\" robots meta tag"
907
  msgstr ""
908
 
909
+ #: inc/admin/admin-metaboxes-form.php:227
910
  msgid ""
911
  "By checking this option, you will add a meta robots tag with the value "
912
  "\"noodp\". <br>Note that Google and Yahoo have stopped considering this tag "
913
  "since the closing of DMOZ directory."
914
  msgstr ""
915
 
916
+ #: inc/admin/admin-metaboxes-form.php:233
917
  msgid "Do not index images for this page <strong>(noimageindex)</strong>"
918
  msgstr ""
919
 
920
+ #: inc/admin/admin-metaboxes-form.php:234
921
  msgid "\"noimageindex\" robots meta tag"
922
  msgstr ""
923
 
924
+ #: inc/admin/admin-metaboxes-form.php:234
925
  msgid ""
926
  "By checking this option, you will add a meta robots tag with the value "
927
  "\"noimageindex\". <br> Note that your images can always be indexed if they "
928
  "are linked from other pages."
929
  msgstr ""
930
 
931
+ #: inc/admin/admin-metaboxes-form.php:240
932
  msgid ""
933
  "Do not display a \"Cached\" link in the Google search results "
934
  "<strong>(noarchive)</strong>"
935
  msgstr ""
936
 
937
+ #: inc/admin/admin-metaboxes-form.php:241
938
  msgid "\"noarchive\" robots meta tag"
939
  msgstr ""
940
 
941
+ #: inc/admin/admin-metaboxes-form.php:241
942
  msgid ""
943
  "By checking this option, you will add a meta robots tag with the value "
944
  "\"noarchive\"."
945
  msgstr ""
946
 
947
+ #: inc/admin/admin-metaboxes-form.php:247
948
  msgid ""
949
  "Do not display a description in search results for this page "
950
  "<strong>(nosnippet)</strong>"
951
  msgstr ""
952
 
953
+ #: inc/admin/admin-metaboxes-form.php:248
954
  msgid "\"nosnippet\" robots meta tag"
955
  msgstr ""
956
 
957
+ #: inc/admin/admin-metaboxes-form.php:248
958
  msgid ""
959
  "By checking this option, you will add a meta robots tag with the value "
960
  "\"nosnippet\"."
961
  msgstr ""
962
 
963
  #. translators: %s: link to plugin settings page
964
+ #: inc/admin/admin-metaboxes-form.php:254
965
  #, php-format
966
  msgid ""
967
  "You cannot uncheck a parameter? This is normal, and it‘s most likely defined "
968
  "in the <a href=\"%s\">global settings of the plugin.</a>"
969
  msgstr ""
970
 
971
+ #: inc/admin/admin-metaboxes-form.php:257
972
+ #: inc/admin/admin-metaboxes-form.php:258
973
+ #: inc/admin/admin-metaboxes-form.php:261 inc/admin/admin-wizard.php:321
974
+ #: inc/admin/admin-wizard.php:341 inc/admin/admin-wizard.php:360
975
+ #: inc/admin/admin-wizard.php:379 inc/admin/admin-wizard.php:398
976
+ #: inc/admin/admin-wizard.php:448 inc/admin/admin-wizard.php:468
977
+ #: inc/admin/admin-wizard.php:489 inc/admin/admin-wizard.php:512
978
+ #: inc/admin/admin-wizard.php:534 inc/admin/admin.php:672
979
+ #: inc/admin/admin.php:708 inc/admin/admin.php:798 inc/admin/admin.php:820
980
+ #: inc/admin/admin.php:841 inc/admin/admin.php:862 inc/admin/admin.php:883
981
+ #: inc/admin/admin.php:939 inc/admin/admin.php:960 inc/admin/admin.php:982
982
+ #: inc/admin/admin.php:1005 inc/admin/admin.php:1027
983
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:265
984
  #: src/Helpers/ContentAnalysis.php:13
985
  msgid "Canonical URL"
986
  msgstr ""
987
 
988
+ #: inc/admin/admin-metaboxes-form.php:258
989
  msgid ""
990
  "A canonical URL is the URL of the page that Google thinks is most "
991
  "representative from a set of duplicate pages on your site. <br>For example, "
997
  "\t\t\t\t\t\t\tThe canonical can be in a different domain than a duplicate."
998
  msgstr ""
999
 
1000
+ #: inc/admin/admin-metaboxes-form.php:261
1001
  msgid "Default value: "
1002
  msgstr ""
1003
 
1004
+ #: inc/admin/admin-metaboxes-form.php:268
1005
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:295
1006
  msgid "Select a primary category"
1007
  msgstr ""
1008
 
1009
+ #: inc/admin/admin-metaboxes-form.php:269
1010
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:296
1011
  msgid ""
1012
  "Set the category that gets used in the %category% permalink and in our "
1013
  "breadcrumbs if you have multiple categories."
1014
  msgstr ""
1015
 
1016
+ #: inc/admin/admin-metaboxes-form.php:279 inc/admin/admin-wizard.php:603
1017
+ #: inc/admin/admin.php:4505
1018
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:288
1019
  msgid "None (will disable this feature)"
1020
  msgstr ""
1021
 
1022
+ #: inc/admin/admin-metaboxes-form.php:290
1023
+ #: inc/admin/admin-metaboxes-form.php:294
1024
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:313
1025
  msgid "Custom breadcrumbs"
1026
  msgstr ""
1027
 
1028
+ #: inc/admin/admin-metaboxes-form.php:291
1029
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:314
1030
  msgid "Enter a custom value, useful if your title is too long"
1031
  msgstr ""
1032
 
1033
+ #: inc/admin/admin-metaboxes-form.php:294
1034
  #, php-format
1035
  msgid "Current breadcrumbs: %s"
1036
  msgstr ""
1037
 
1038
+ #: inc/admin/admin-metaboxes-form.php:304
1039
  msgid "Ask Facebook to update its cache"
1040
  msgstr ""
1041
 
1042
+ #: inc/admin/admin-metaboxes-form.php:305
1043
  msgid ""
1044
  "<span class=\"label\">Did you know?</span> LinkedIn, Instagram and Pinterest "
1045
  "use the same social metadata as Facebook. Twitter does the same if no "
1046
  "Twitter cards tags are defined below."
1047
  msgstr ""
1048
 
1049
+ #: inc/admin/admin-metaboxes-form.php:307
1050
+ #: inc/admin/admin-metaboxes-form.php:308
1051
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:376
1052
  msgid "Facebook Title"
1053
  msgstr ""
1054
 
1055
+ #: inc/admin/admin-metaboxes-form.php:308
1056
  msgid "Enter your Facebook title"
1057
  msgstr ""
1058
 
1059
+ #: inc/admin/admin-metaboxes-form.php:311
1060
+ #: inc/admin/admin-metaboxes-form.php:312
1061
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:387
1062
  msgid "Facebook description"
1063
  msgstr ""
1064
 
1065
+ #: inc/admin/admin-metaboxes-form.php:312
1066
  msgid "Enter your Facebook description"
1067
  msgstr ""
1068
 
1069
+ #: inc/admin/admin-metaboxes-form.php:315
1070
+ #: inc/admin/admin-metaboxes-form.php:316
1071
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:398
1072
  msgid "Facebook Thumbnail"
1073
  msgstr ""
1074
 
1075
+ #: inc/admin/admin-metaboxes-form.php:316
1076
+ #: inc/admin/admin-metaboxes-form.php:379 inc/admin/admin.php:4742
1077
+ #: inc/admin/admin.php:4795 inc/admin/admin.php:4890
1078
  msgid "Select your default thumbnail"
1079
  msgstr ""
1080
 
1081
+ #: inc/admin/admin-metaboxes-form.php:317 inc/admin/admin.php:4746
1082
  msgid ""
1083
  "Minimum size: 200x200px, ideal ratio 1.91:1, 8Mb max. (eg: 1640x856px or "
1084
  "3280x1712px for retina screens)"
1085
  msgstr ""
1086
 
1087
+ #: inc/admin/admin-metaboxes-form.php:318
1088
+ #: inc/admin/admin-metaboxes-form.php:381
1089
+ #: inc/admin/admin-metaboxes-form.php:566 inc/admin/admin.php:4541
1090
+ #: inc/admin/admin.php:4744 inc/admin/admin.php:4797 inc/admin/admin.php:4892
1091
  msgid "Upload an Image"
1092
  msgstr ""
1093
 
1094
+ #: inc/admin/admin-metaboxes-form.php:323
1095
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:411
1096
  msgid "Facebook Preview"
1097
  msgstr ""
1098
 
1099
+ #: inc/admin/admin-metaboxes-form.php:325
1100
  msgid ""
1101
  "This is what your post will look like in Facebook. You have to publish your "
1102
  "post to get the Facebook Preview."
1103
  msgstr ""
1104
 
1105
+ #: inc/admin/admin-metaboxes-form.php:327
1106
  msgid ""
1107
  "The Social Networks feature is disabled. Still seing informations from the "
1108
  "FB Preview? You probably have social tags added by your theme or a plugin."
1109
  msgstr ""
1110
 
1111
+ #: inc/admin/admin-metaboxes-form.php:330
1112
+ #: inc/admin/page-builders/elementor/inc/controls/class-social-preview-control.php:46
1113
  msgid "File type not supported by Facebook. Please choose another image."
1114
  msgstr ""
1115
 
1116
+ #: inc/admin/admin-metaboxes-form.php:331
1117
+ #: inc/admin/page-builders/elementor/inc/controls/class-social-preview-control.php:47
1118
  msgid ""
1119
  "Minimun size for Facebook is <strong>200x200px</strong>. Please choose "
1120
  "another image."
1121
  msgstr ""
1122
 
1123
+ #: inc/admin/admin-metaboxes-form.php:332
1124
+ #: inc/admin/admin-metaboxes-form.php:395
1125
+ #: inc/admin/page-builders/elementor/inc/controls/class-social-preview-control.php:48
1126
+ #: inc/admin/page-builders/elementor/inc/controls/class-social-preview-control.php:72
1127
  msgid "File error. Please choose another image."
1128
  msgstr ""
1129
 
1130
+ #: inc/admin/admin-metaboxes-form.php:333
1131
+ #: inc/admin/admin-metaboxes-form.php:396
1132
+ #: inc/admin/page-builders/elementor/inc/controls/class-social-preview-control.php:49
1133
+ #: inc/admin/page-builders/elementor/inc/controls/class-social-preview-control.php:73
1134
  msgid "Your image ratio is: "
1135
  msgstr ""
1136
 
1137
+ #: inc/admin/admin-metaboxes-form.php:333
1138
  msgid "The closer to 1.91 the better."
1139
  msgstr ""
1140
 
1141
+ #: inc/admin/admin-metaboxes-form.php:334
1142
+ #: inc/admin/admin-metaboxes-form.php:397
1143
+ #: inc/admin/page-builders/elementor/inc/controls/class-social-preview-control.php:50
1144
+ #: inc/admin/page-builders/elementor/inc/controls/class-social-preview-control.php:74
1145
  msgid "File URL is not valid."
1146
  msgstr ""
1147
 
1148
+ #: inc/admin/admin-metaboxes-form.php:343
1149
  msgid "By&nbsp;"
1150
  msgstr ""
1151
 
1152
+ #: inc/admin/admin-metaboxes-form.php:368
1153
  msgid "Preview your Twitter card using the official validator"
1154
  msgstr ""
1155
 
1156
  #. twitter:title
1157
+ #: inc/admin/admin-metaboxes-form.php:370
1158
+ #: inc/admin/admin-metaboxes-form.php:371
1159
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:425
1160
+ #: src/Services/ContentAnalysis/GetContent.php:518
1161
  msgid "Twitter Title"
1162
  msgstr ""
1163
 
1164
+ #: inc/admin/admin-metaboxes-form.php:371
1165
  msgid "Enter your Twitter title"
1166
  msgstr ""
1167
 
1168
+ #: inc/admin/admin-metaboxes-form.php:374
1169
+ #: inc/admin/admin-metaboxes-form.php:375
1170
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:436
1171
  msgid "Twitter description"
1172
  msgstr ""
1173
 
1174
+ #: inc/admin/admin-metaboxes-form.php:375
1175
  msgid "Enter your Twitter description"
1176
  msgstr ""
1177
 
1178
+ #: inc/admin/admin-metaboxes-form.php:378
1179
+ #: inc/admin/admin-metaboxes-form.php:381
1180
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:447
1181
  msgid "Twitter Thumbnail"
1182
  msgstr ""
1183
 
1184
+ #: inc/admin/admin-metaboxes-form.php:380 inc/admin/admin.php:4894
1185
  msgid ""
1186
  "Minimum size: 144x144px (300x157px with large card enabled), ideal ratio 1:1 "
1187
  "(2:1 with large card), 5Mb max."
1188
  msgstr ""
1189
 
1190
+ #: inc/admin/admin-metaboxes-form.php:386
1191
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:460
1192
  msgid "Twitter Preview"
1193
  msgstr ""
1194
 
1195
+ #: inc/admin/admin-metaboxes-form.php:388
1196
  msgid ""
1197
  "This is what your post will look like in Twitter. You have to publish your "
1198
  "post to get the Twitter Preview."
1199
  msgstr ""
1200
 
1201
+ #: inc/admin/admin-metaboxes-form.php:390
1202
  msgid ""
1203
  "The Social Networks feature is disabled. Still seing informations from the "
1204
  "Twitter Preview? You probably have social tags added by your theme or a "
1205
  "plugin."
1206
  msgstr ""
1207
 
1208
+ #: inc/admin/admin-metaboxes-form.php:393
1209
+ #: inc/admin/page-builders/elementor/inc/controls/class-social-preview-control.php:70
1210
  msgid "File type not supported by Twitter. Please choose another image."
1211
  msgstr ""
1212
 
1213
+ #: inc/admin/admin-metaboxes-form.php:394
1214
+ #: inc/admin/page-builders/elementor/inc/controls/class-social-preview-control.php:71
1215
  msgid ""
1216
  "Minimun size for Twitter is <strong>144x144px</strong>. Please choose "
1217
  "another image."
1218
  msgstr ""
1219
 
1220
+ #: inc/admin/admin-metaboxes-form.php:396
1221
  msgid "The closer to 1 the better (with large card, 2 is better)."
1222
  msgstr ""
1223
 
1224
+ #: inc/admin/admin-metaboxes-form.php:432
1225
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:498
1226
  msgid "Enable redirection?"
1227
  msgstr ""
1228
 
1229
+ #: inc/admin/admin-metaboxes-form.php:436
1230
+ #: inc/admin/admin-metaboxes-form.php:444
1231
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:509
1232
  msgid "URL redirection"
1233
  msgstr ""
1234
 
1235
+ #: inc/admin/admin-metaboxes-form.php:438
1236
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:514
1237
  msgid "301 Moved Permanently"
1238
  msgstr ""
1239
 
1240
+ #: inc/admin/admin-metaboxes-form.php:439
1241
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:515
1242
  msgid "302 Found / Moved Temporarily"
1243
  msgstr ""
1244
 
1245
+ #: inc/admin/admin-metaboxes-form.php:440
1246
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:516
1247
  msgid "307 Moved Temporarily"
1248
  msgstr ""
1249
 
1250
+ #: inc/admin/admin-metaboxes-form.php:441
1251
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:517
1252
  msgid "410 Gone"
1253
  msgstr ""
1254
 
1255
+ #: inc/admin/admin-metaboxes-form.php:442
1256
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:518
1257
  msgid "451 Unavailable For Legal Reasons"
1258
  msgstr ""
1259
 
1260
+ #: inc/admin/admin-metaboxes-form.php:444
1261
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:527
1262
  msgid "Enter your new URL in absolute (eg: https://www.example.com/)"
1263
  msgstr ""
1264
 
1265
+ #: inc/admin/admin-metaboxes-form.php:449
1266
  msgid "Query parameters"
1267
  msgstr ""
1268
 
1269
+ #: inc/admin/admin-metaboxes-form.php:451
1270
  msgid "Exactly match all parameters"
1271
  msgstr ""
1272
 
1273
+ #: inc/admin/admin-metaboxes-form.php:452
1274
  msgid "Exclude all parameters"
1275
  msgstr ""
1276
 
1277
+ #: inc/admin/admin-metaboxes-form.php:453
1278
  msgid "Exclude all parameters and pass them to the redirection"
1279
  msgstr ""
1280
 
1281
+ #: inc/admin/admin-metaboxes-form.php:462
1282
+ #: inc/admin/admin-metaboxes-form.php:464
1283
+ #: inc/admin/admin-metaboxes-form.php:467
1284
+ #: inc/admin/admin-metaboxes-form.php:469
1285
  msgid "Test your URL"
1286
  msgstr ""
1287
 
1288
+ #: inc/admin/admin-metaboxes-form.php:481
1289
  msgid "Need help with your redirections? Read our guide."
1290
  msgstr ""
1291
 
1292
+ #: inc/admin/admin-metaboxes-form.php:495
1293
  msgid "Exclude this post from Google News Sitemap?"
1294
  msgstr ""
1295
 
1296
+ #: inc/admin/admin-metaboxes-form.php:520
1297
  msgid "Exclude this post from Video Sitemap?"
1298
  msgstr ""
1299
 
1300
+ #: inc/admin/admin-metaboxes-form.php:522
1301
  msgid ""
1302
  "If your post is set to noindex, it will be automatically excluded from the "
1303
  "sitemap."
1304
  msgstr ""
1305
 
1306
+ #: inc/admin/admin-metaboxes-form.php:540
1307
  msgid "Video "
1308
  msgstr ""
1309
 
1310
+ #: inc/admin/admin-metaboxes-form.php:544
1311
  msgid "Video URL (required)"
1312
  msgstr ""
1313
 
1314
+ #: inc/admin/admin-metaboxes-form.php:545
1315
  msgid "Enter your video URL"
1316
  msgstr ""
1317
 
1318
+ #: inc/admin/admin-metaboxes-form.php:545
1319
  msgid "Video URL"
1320
  msgstr ""
1321
 
1322
+ #: inc/admin/admin-metaboxes-form.php:550
1323
  msgid ""
1324
  "NOT an external video (eg: video hosting on YouTube, Vimeo, Wistia...)? "
1325
  "Check this if your video is hosting on this server."
1326
  msgstr ""
1327
 
1328
+ #: inc/admin/admin-metaboxes-form.php:554
1329
  msgid "Video Title (required)"
1330
  msgstr ""
1331
 
1332
+ #: inc/admin/admin-metaboxes-form.php:555
1333
  msgid "Enter your video title"
1334
  msgstr ""
1335
 
1336
+ #: inc/admin/admin-metaboxes-form.php:555
1337
  msgid "Video title"
1338
  msgstr ""
1339
 
1340
+ #: inc/admin/admin-metaboxes-form.php:556
1341
  msgid "Default: title tag, if not available, post title."
1342
  msgstr ""
1343
 
1344
+ #: inc/admin/admin-metaboxes-form.php:559
1345
  msgid "Video Description (required)"
1346
  msgstr ""
1347
 
1348
+ #: inc/admin/admin-metaboxes-form.php:560
1349
  msgid "Enter your video description"
1350
  msgstr ""
1351
 
1352
+ #: inc/admin/admin-metaboxes-form.php:560
1353
  msgid "Video description"
1354
  msgstr ""
1355
 
1356
+ #: inc/admin/admin-metaboxes-form.php:561
1357
  msgid ""
1358
  "2048 characters max.; default: meta description. If not available, use the "
1359
  "beginning of the post content."
1360
  msgstr ""
1361
 
1362
+ #: inc/admin/admin-metaboxes-form.php:564
1363
  msgid "Video Thumbnail (required)"
1364
  msgstr ""
1365
 
1366
+ #: inc/admin/admin-metaboxes-form.php:565
1367
  msgid "Select your video thumbnail"
1368
  msgstr ""
1369
 
1370
+ #: inc/admin/admin-metaboxes-form.php:566
1371
  msgid "Video Thumbnail"
1372
  msgstr ""
1373
 
1374
+ #: inc/admin/admin-metaboxes-form.php:567
1375
  msgid ""
1376
  "Minimum size: 160x90px (1920x1080 max), JPG, PNG or GIF formats. Default: "
1377
  "your post featured image."
1378
  msgstr ""
1379
 
1380
+ #: inc/admin/admin-metaboxes-form.php:570
1381
  msgid "Video Duration (recommended)"
1382
  msgstr ""
1383
 
1384
+ #: inc/admin/admin-metaboxes-form.php:571
1385
  msgid "Duration in seconds"
1386
  msgstr ""
1387
 
1388
+ #: inc/admin/admin-metaboxes-form.php:571
1389
  msgid "Video duration"
1390
  msgstr ""
1391
 
1392
+ #: inc/admin/admin-metaboxes-form.php:572
1393
  msgid ""
1394
  "The duration of the video in seconds. Value must be between 0 and 28800 (8 "
1395
  "hours)."
1396
  msgstr ""
1397
 
1398
+ #: inc/admin/admin-metaboxes-form.php:575
1399
  msgid "Video Rating"
1400
  msgstr ""
1401
 
1402
+ #: inc/admin/admin-metaboxes-form.php:576
1403
  msgid "Video rating"
1404
  msgstr ""
1405
 
1406
+ #: inc/admin/admin-metaboxes-form.php:577
1407
  msgid "Allowed values are float numbers in the range 0.0 to 5.0."
1408
  msgstr ""
1409
 
1410
+ #: inc/admin/admin-metaboxes-form.php:580
1411
+ #: inc/admin/admin-metaboxes-form.php:581
1412
  msgid "View count"
1413
  msgstr ""
1414
 
1415
+ #: inc/admin/admin-metaboxes-form.php:581
1416
  msgid "Number of views"
1417
  msgstr ""
1418
 
1419
+ #: inc/admin/admin-metaboxes-form.php:584
1420
+ #: inc/admin/admin-metaboxes-form.php:585
1421
  msgid "Video tags"
1422
  msgstr ""
1423
 
1424
+ #: inc/admin/admin-metaboxes-form.php:585
1425
  msgid "Enter your video tags"
1426
  msgstr ""
1427
 
1428
+ #: inc/admin/admin-metaboxes-form.php:586
1429
  msgid ""
1430
  "32 tags max., separate tags with commas. Default: target keywords + post "
1431
  "tags if available."
1432
  msgstr ""
1433
 
1434
+ #: inc/admin/admin-metaboxes-form.php:589
1435
+ #: inc/admin/admin-metaboxes-form.php:590
1436
  msgid "Video categories"
1437
  msgstr ""
1438
 
1439
+ #: inc/admin/admin-metaboxes-form.php:590
1440
  msgid "Enter your video categories"
1441
  msgstr ""
1442
 
1443
+ #: inc/admin/admin-metaboxes-form.php:591
1444
  msgid ""
1445
  "256 characters max., usually a video will belong to a single category, "
1446
  "separate categories with commas. Default: first post category if available."
1447
  msgstr ""
1448
 
1449
+ #: inc/admin/admin-metaboxes-form.php:596
1450
  msgid "NOT family friendly?"
1451
  msgstr ""
1452
 
1453
+ #: inc/admin/admin-metaboxes-form.php:598
1454
  msgid "The video will be available only to users with SafeSearch turned off."
1455
  msgstr ""
1456
 
1457
+ #: inc/admin/admin-metaboxes-form.php:600
1458
  msgid "Remove video"
1459
  msgstr ""
1460
 
1461
+ #: inc/admin/admin-metaboxes-form.php:607
1462
  msgid "Add video"
1463
  msgstr ""
1464
 
1465
  #. @deprecated 4.4.0
1466
  #. @deprecated 4.4.0
1467
+ #: inc/admin/admin-metaboxes.php:265 inc/admin/admin-metaboxes.php:601
1468
+ #: inc/admin/admin-term-metaboxes.php:217
1469
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:72
1470
  #: inc/admin/page-builders/elementor/inc/controls/class-content-analysis-control.php:34
1471
  msgid "Analysis in progress..."
1472
  msgstr ""
1473
 
1474
+ #: inc/admin/admin-metaboxes.php:582
1475
  #: src/Services/ContentAnalysis/RenderContentAnalysis.php:19
1476
  msgid "Content analysis"
1477
  msgstr ""
1518
  "Track your keywords positions and backlinks directly on your WordPress site."
1519
  msgstr ""
1520
 
1521
+ #: inc/admin/admin-notifications-center.php:168
1522
  msgid "We noticed that some SEO DIVI options are enabled!"
1523
  msgstr ""
1524
 
1525
+ #: inc/admin/admin-notifications-center.php:169
1526
  msgid ""
1527
  "To avoid any SEO conflicts, please disable every SEO options from "
1528
  "<strong>DIVI theme options page, SEO tab</strong>."
1529
  msgstr ""
1530
 
1531
+ #: inc/admin/admin-notifications-center.php:171
1532
+ #: inc/admin/admin-notifications-center.php:191
1533
+ #: inc/admin/admin-notifications-center.php:209
1534
+ #: inc/admin/admin-notifications-center.php:239
1535
+ #: inc/admin/admin-notifications-center.php:271
1536
+ #: inc/admin/admin-notifications-center.php:309
1537
+ #: inc/admin/admin-notifications-center.php:444
1538
+ #: inc/admin/admin-notifications-center.php:495
1539
+ #: inc/admin/admin-notifications-center.php:538
1540
+ #: inc/admin/admin-notifications-center.php:557
1541
+ #: inc/admin/admin-notifications-center.php:574
1542
+ #: inc/admin/admin-notifications-center.php:730
1543
+ #: inc/admin/admin-notifications-center.php:808
1544
+ #: inc/admin/admin-notifications-center.php:847
1545
+ #: inc/admin/admin-notifications-center.php:865
1546
  msgid "High impact"
1547
  msgstr ""
1548
 
1549
+ #: inc/admin/admin-notifications-center.php:175
1550
+ #: inc/admin/admin-notifications-center.php:195
1551
+ #: inc/admin/admin-notifications-center.php:213
1552
+ #: inc/admin/admin-notifications-center.php:244
1553
+ #: inc/admin/admin-notifications-center.php:367
1554
+ #: inc/admin/admin-notifications-center.php:409
1555
+ #: inc/admin/admin-notifications-center.php:448
1556
+ #: inc/admin/admin-notifications-center.php:542
1557
+ #: inc/admin/admin-notifications-center.php:561
1558
+ #: inc/admin/admin-notifications-center.php:578
1559
+ #: inc/admin/admin-notifications-center.php:608
1560
+ #: inc/admin/admin-notifications-center.php:673
1561
+ #: inc/admin/admin-notifications-center.php:765
1562
+ #: inc/admin/admin-notifications-center.php:783
1563
+ #: inc/admin/admin-notifications-center.php:869
1564
+ #: inc/admin/admin-notifications-center.php:888
1565
  msgid "Fix this!"
1566
  msgstr ""
1567
 
1568
+ #: inc/admin/admin-notifications-center.php:188
1569
  msgid "Your permalinks doesn't have a trailingslash"
1570
  msgstr ""
1571
 
1572
+ #: inc/admin/admin-notifications-center.php:189
1573
  msgid ""
1574
  "To avoid any SEO issues, we recommend you to activate the \"<strong>Disable "
1575
  "trailing slash for metas</strong>\" option from our <strong>Advanced "
1576
  "settings page</strong>. Do not forget to clear your cache if necessary."
1577
  msgstr ""
1578
 
1579
+ #: inc/admin/admin-notifications-center.php:206
1580
  msgid "Your permalinks have a trailingslash"
1581
  msgstr ""
1582
 
1583
+ #: inc/admin/admin-notifications-center.php:207
1584
  msgid ""
1585
  "To avoid any SEO issues, we recommend you to de-activate the "
1586
  "\"<strong>Disable trailing slash for metas</strong>\" option from our "
1588
  "if necessary."
1589
  msgstr ""
1590
 
1591
+ #: inc/admin/admin-notifications-center.php:236
1592
  msgid ""
1593
  "TagDiv Composer plugin doesn't use <strong>add_theme_support('title-tag');</"
1594
  "strong>"
1595
  msgstr ""
1596
 
1597
+ #: inc/admin/admin-notifications-center.php:237
1598
  msgid ""
1599
  "Fix this compatibility issue to allow SEOPress generates the correct meta "
1600
  "titles."
1601
  msgstr ""
1602
 
1603
+ #: inc/admin/admin-notifications-center.php:268
1604
  msgid "Your theme doesn't use <strong>add_theme_support('title-tag');</strong>"
1605
  msgstr ""
1606
 
1607
+ #: inc/admin/admin-notifications-center.php:269
1608
  msgid ""
1609
  "This error indicates that your theme uses a deprecated function to generate "
1610
  "the title tag of your pages. SEOPress will not be able to generate your "
1611
  "custom title tags if this error is not fixed."
1612
  msgstr ""
1613
 
1614
+ #: inc/admin/admin-notifications-center.php:276
1615
+ #: inc/admin/admin-notifications-center.php:474
1616
+ #: inc/admin/admin-notifications-center.php:500 inc/admin/admin.php:5395
1617
+ #: inc/admin/admin.php:5446 inc/admin/admin.php:5473 inc/admin/admin.php:5496
1618
+ #: inc/admin/admin.php:5519 inc/admin/admin.php:5542
 
 
1619
  msgid "Learn more"
1620
  msgstr ""
1621
 
1622
  #. translators: %s name of a SEO plugin (eg: Yoast SEO)
1623
+ #: inc/admin/admin-notifications-center.php:306
1624
  #, php-format
1625
  msgid "We noticed that you use <strong>%s</strong> plugin."
1626
  msgstr ""
1627
 
1628
+ #: inc/admin/admin-notifications-center.php:307
1629
  msgid ""
1630
  "Do you want to migrate all your metadata to SEOPress? Do not use multiple "
1631
  "SEO plugins at once to avoid conflicts!"
1632
  msgstr ""
1633
 
1634
+ #: inc/admin/admin-notifications-center.php:313
1635
  msgid "Migrate!"
1636
  msgstr ""
1637
 
1638
+ #: inc/admin/admin-notifications-center.php:326
1639
  msgid "You have enabled 404 cleaning BUT the scheduled task is not running."
1640
  msgstr ""
1641
 
1642
+ #: inc/admin/admin-notifications-center.php:327
1643
  msgid ""
1644
  "To solve this, please disable and re-enable SEOPress PRO. No data will be "
1645
  "lost."
1646
  msgstr ""
1647
 
1648
  #. translators: %s name of a page builder plugin (eg: Oxygen)
1649
+ #: inc/admin/admin-notifications-center.php:360
1650
  #, php-format
1651
  msgid "Generate automatic meta description for <strong>%s</strong> plugin."
1652
  msgstr ""
1653
 
1654
+ #: inc/admin/admin-notifications-center.php:361
1655
  msgid ""
1656
  "Your page builder is using shortcodes to save its data. To automatically "
1657
+ "generate your meta description based on your post content, go to our "
1658
+ "Compatibility Center."
1659
  msgstr ""
1660
 
1661
+ #: inc/admin/admin-notifications-center.php:363
1662
+ #: inc/admin/admin-notifications-center.php:405
1663
+ #: inc/admin/admin-notifications-center.php:604
1664
+ #: inc/admin/admin-notifications-center.php:669
1665
+ #: inc/admin/admin-notifications-center.php:761
1666
+ #: inc/admin/admin-notifications-center.php:779
1667
  msgid "Medium impact"
1668
  msgstr ""
1669
 
1670
  #. translators: %s name of a WP theme (eg: Enfold)
1671
+ #: inc/admin/admin-notifications-center.php:402
1672
  #, php-format
1673
  msgid "Generate automatic meta description for <strong>%s</strong> theme."
1674
  msgstr ""
1675
 
1676
+ #: inc/admin/admin-notifications-center.php:403
1677
  msgid ""
1678
  "Your theme is using shortcodes to save its data. To automatically generate "
1679
+ "your meta description based on your post content, go to our Compatibility "
1680
+ "Center."
1681
  msgstr ""
1682
 
1683
+ #: inc/admin/admin-notifications-center.php:441
1684
  msgid "Enfold theme is not correctly setup for SEO!"
1685
  msgstr ""
1686
 
1687
+ #: inc/admin/admin-notifications-center.php:442
1688
  msgid ""
1689
  "You must disable \"Meta tag robots\" option from Enfold settings (SEO "
1690
  "Support tab) to avoid any SEO issues."
1691
  msgstr ""
1692
 
1693
+ #: inc/admin/admin-notifications-center.php:473
1694
  msgid "Your site doesn't use an SSL certificate!"
1695
  msgstr ""
1696
 
1697
+ #: inc/admin/admin-notifications-center.php:474
1698
  msgid ""
1699
  "Https is considered by Google as a positive signal for the ranking of your "
1700
  "site. It also reassures your visitors for data security, and improves trust."
1701
  msgstr ""
1702
 
1703
+ #: inc/admin/admin-notifications-center.php:476
1704
  msgid "Low impact"
1705
  msgstr ""
1706
 
1707
+ #: inc/admin/admin-notifications-center.php:480
1708
  msgid "Buy an SSL!"
1709
  msgstr ""
1710
 
1711
+ #: inc/admin/admin-notifications-center.php:492
1712
  msgid "PHP module \"DOM\" is missing on your server."
1713
  msgstr ""
1714
 
1715
+ #: inc/admin/admin-notifications-center.php:493
1716
  msgid ""
1717
  "This PHP module, installed by default with PHP, is required by many plugins "
1718
  "including SEOPress. Please contact your host as soon as possible to solve "
1719
  "this."
1720
  msgstr ""
1721
 
1722
+ #: inc/admin/admin-notifications-center.php:535
1723
  msgid "Your site is not visible to Search Engines!"
1724
  msgstr ""
1725
 
1726
+ #: inc/admin/admin-notifications-center.php:536
1727
  msgid ""
1728
  "You have activated the blocking of the indexing of your site. If your site "
1729
  "is under development, this is probably normal. Otherwise, check your "
1731
  "not concerned."
1732
  msgstr ""
1733
 
1734
+ #: inc/admin/admin-notifications-center.php:554
1735
  msgid "Your site title is empty!"
1736
  msgstr ""
1737
 
1738
+ #: inc/admin/admin-notifications-center.php:555
1739
  msgid ""
1740
  "Your Site Title is used by WordPress, your theme and your plugins including "
1741
  "SEOPress. It is an essential component in the generation of title tags, but "
1742
  "not only. Enter one!"
1743
  msgstr ""
1744
 
1745
+ #: inc/admin/admin-notifications-center.php:571 inc/admin/admin.php:3014
1746
  msgid ""
1747
  "Your permalinks are not SEO Friendly! Enable pretty permalinks to fix this."
1748
  msgstr ""
1749
 
1750
+ #: inc/admin/admin-notifications-center.php:572
1751
+ #: inc/admin/admin-notifications-center.php:602
1752
  msgid ""
1753
  "Why is this important? Showing only the summary of each article "
1754
  "significantly reduces the theft of your content by third party sites. Not to "
1756
  "conversions..."
1757
  msgstr ""
1758
 
1759
+ #: inc/admin/admin-notifications-center.php:601
1760
  msgid "Your RSS feed shows full text!"
1761
  msgstr ""
1762
 
1763
+ #: inc/admin/admin-notifications-center.php:666
1764
  msgid ""
1765
  "You have activated Google Analytics tracking without adding identifiers!"
1766
  msgstr ""
1767
 
1768
+ #: inc/admin/admin-notifications-center.php:667
1769
  msgid ""
1770
  "Google Analytics will not track your visitors until you finish the "
1771
  "configuration."
1772
  msgstr ""
1773
 
1774
+ #: inc/admin/admin-notifications-center.php:697
1775
  msgid "You like SEOPress? Please help us by rating us 5 stars!"
1776
  msgstr ""
1777
 
1778
+ #: inc/admin/admin-notifications-center.php:698
1779
  msgid ""
1780
  "Support the development and improvement of the plugin by taking 15 seconds "
1781
  "of your time to leave us a user review on the official WordPress plugins "
1782
  "repository. Thank you!"
1783
  msgstr ""
1784
 
1785
+ #: inc/admin/admin-notifications-center.php:700
1786
  msgid "Information"
1787
  msgstr ""
1788
 
1789
+ #: inc/admin/admin-notifications-center.php:704
1790
  msgid "Rate us!"
1791
  msgstr ""
1792
 
1793
+ #: inc/admin/admin-notifications-center.php:727
1794
  msgid "Break comments into pages is ON!"
1795
  msgstr ""
1796
 
1797
+ #: inc/admin/admin-notifications-center.php:728
1798
  msgid ""
1799
  "Enabling this option will create duplicate content for each article beyond x "
1800
  "comments. This can have a disastrous effect by creating a large number of "
1802
  "ranking in search results."
1803
  msgstr ""
1804
 
1805
+ #: inc/admin/admin-notifications-center.php:734
1806
  msgid "Disable this!"
1807
  msgstr ""
1808
 
1809
+ #: inc/admin/admin-notifications-center.php:758
1810
  msgid "Display more posts per page on homepage and archives"
1811
  msgstr ""
1812
 
1813
+ #: inc/admin/admin-notifications-center.php:759
1814
  msgid ""
1815
  "To reduce the number pages search engines have to crawl to find all your "
1816
  "articles, it is recommended displaying more posts per page. This should not "
1818
  "than clicking on next page links."
1819
  msgstr ""
1820
 
1821
+ #: inc/admin/admin-notifications-center.php:776
1822
  msgid "You don't have an XML Sitemap!"
1823
  msgstr ""
1824
 
1825
+ #: inc/admin/admin-notifications-center.php:777
1826
  msgid ""
1827
  "XML Sitemaps are useful to facilitate the crawling of your content by search "
1828
  "engine robots. Indirectly, this can benefit your ranking by reducing the "
1829
  "crawl bugdet."
1830
  msgstr ""
1831
 
1832
+ #: inc/admin/admin-notifications-center.php:805
1833
  msgid "Do you have a Google My Business page? It's free!"
1834
  msgstr ""
1835
 
1836
+ #: inc/admin/admin-notifications-center.php:806
1837
  msgid ""
1838
  "Local Business websites should have a My Business page to improve visibility "
1839
  "in search results. Click on the cross on the right to delete this "
1840
  "notification if you are not concerned."
1841
  msgstr ""
1842
 
1843
+ #: inc/admin/admin-notifications-center.php:812
1844
  msgid "Create your page now!"
1845
  msgstr ""
1846
 
1847
+ #: inc/admin/admin-notifications-center.php:844
1848
  msgid "Add your site to Google. It's free!"
1849
  msgstr ""
1850
 
1851
+ #: inc/admin/admin-notifications-center.php:845
1852
  msgid ""
1853
  "Is your brand new site online? So reference it as quickly as possible on "
1854
  "Google to get your first visitors via Google Search Console. Already the "
1855
  "case? Click on the cross on the right to remove this alert."
1856
  msgstr ""
1857
 
1858
+ #: inc/admin/admin-notifications-center.php:851
1859
  msgid "Add your site to Search Console!"
1860
  msgstr ""
1861
 
1862
+ #: inc/admin/admin-notifications-center.php:862
1863
  msgid "Structured data types is not correctly enabled"
1864
  msgstr ""
1865
 
1866
+ #: inc/admin/admin-notifications-center.php:863
1867
  msgid ""
1868
  "Please enable <strong>Structured Data Types metabox for your posts, pages "
1869
  "and custom post types</strong> option in order to use automatic and manual "
1870
  "schemas. (SEO > PRO > Structured Data Types (schema.org)"
1871
  msgstr ""
1872
 
1873
+ #: inc/admin/admin-notifications-center.php:881
1874
  msgid "You have to enter your licence key to get updates and support"
1875
  msgstr ""
1876
 
1877
+ #: inc/admin/admin-notifications-center.php:882
1878
  msgid ""
1879
  "Please activate the SEOPress PRO license key to automatically receive "
1880
  "updates to guarantee you the best user experience possible."
1881
  msgstr ""
1882
 
1883
+ #: inc/admin/admin-notifications-center.php:911
1884
  msgid "Take your SEO to the next level with SEOPress PRO!"
1885
  msgstr ""
1886
 
1887
+ #: inc/admin/admin-notifications-center.php:912
1888
  msgid ""
1889
  "The PRO version of SEOPress allows you to easily manage your structured data "
1890
  "(schemas), add a breadcrumb optimized for SEO and accessibility, improve SEO "
1892
  "of your metadata and so much more."
1893
  msgstr ""
1894
 
1895
+ #: inc/admin/admin-notifications-center.php:919
1896
  msgid "Upgrade now!"
1897
  msgstr ""
1898
 
1899
+ #: inc/admin/admin-notifications-center.php:938
1900
  msgid "Check websites setup on your server"
1901
  msgstr ""
1902
 
1903
  #. Init
1904
+ #: inc/admin/admin-notifications-center.php:946
1905
  msgid "Not found"
1906
  msgstr ""
1907
 
1908
+ #: inc/admin/admin-notifications-center.php:951
1909
  msgid "No scrape."
1910
  msgstr ""
1911
 
1912
+ #: inc/admin/admin-notifications-center.php:956
1913
  msgid "No domain found."
1914
  msgstr ""
1915
 
1916
+ #: inc/admin/admin-notifications-center.php:966
1917
  msgid "Server IP Address: "
1918
  msgstr ""
1919
 
1920
+ #: inc/admin/admin-notifications-center.php:968
1921
  msgid "Last scrape: "
1922
  msgstr ""
1923
 
1924
+ #: inc/admin/admin-notifications-center.php:969
1925
  msgid "Number of websites on your server: "
1926
  msgstr ""
1927
 
1928
+ #: inc/admin/admin-notifications-center.php:982
1929
  msgid "Get list"
1930
  msgstr ""
1931
 
1932
+ #: inc/admin/admin-notifications-center.php:993
1933
  msgid "Our blog: SEO news, how-to, tips and tricks..."
1934
  msgstr ""
1935
 
1936
+ #: inc/admin/admin-notifications-center.php:994
1937
  msgid "Upload a list of links to disavow to Google"
1938
  msgstr ""
1939
 
1940
+ #: inc/admin/admin-notifications-center.php:997
1941
  msgid ""
1942
  "Image SEO plugin to optimize your image ALT texts and names for Search "
1943
  "Engines."
1944
  msgstr ""
1945
 
1946
+ #: inc/admin/admin-notifications-center.php:1001
1947
  msgid "Dareboost: Test, analyze and optimize your website"
1948
  msgstr ""
1949
 
1950
+ #: inc/admin/admin-notifications-center.php:1002
1951
  msgid "Google Campaign URL Builder tool"
1952
  msgstr ""
1953
 
1954
+ #: inc/admin/admin-wizard.php:114 seopress.php:324
1955
  msgid "Migration completed!"
1956
  msgstr ""
1957
 
1958
+ #: inc/admin/admin-wizard.php:115 seopress.php:325
1959
  msgid "Export completed!"
1960
  msgstr ""
1961
 
1962
+ #: inc/admin/admin-wizard.php:130
1963
  msgid "Import SEO settings"
1964
  msgstr ""
1965
 
1966
+ #: inc/admin/admin-wizard.php:135 inc/admin/admin-wizard.php:582
1967
  msgid "Your site"
1968
  msgstr ""
1969
 
1970
+ #: inc/admin/admin-wizard.php:140 inc/admin/admin-wizard.php:688
1971
  msgid "Indexing"
1972
  msgstr ""
1973
 
1974
+ #: inc/admin/admin-wizard.php:145 inc/admin/admin-wizard.php:853
1975
  msgid "Advanced options"
1976
  msgstr ""
1977
 
1978
+ #: inc/admin/admin-wizard.php:150
1979
  msgid "Ready!"
1980
  msgstr ""
1981
 
1982
+ #: inc/admin/admin-wizard.php:210
1983
  msgid "SEOPress &rsaquo; Setup Wizard"
1984
  msgstr ""
1985
 
1986
+ #: inc/admin/admin-wizard.php:226
1987
  msgid "Not right now"
1988
  msgstr ""
1989
 
1990
+ #: inc/admin/admin-wizard.php:228
1991
  msgid "Skip this step"
1992
  msgstr ""
1993
 
1994
+ #: inc/admin/admin-wizard.php:284
1995
  msgid "Welcome!"
1996
  msgstr ""
1997
 
1998
+ #: inc/admin/admin-wizard.php:285
1999
  msgid ""
2000
  "The following wizard will help you configure SEOPress and get you started "
2001
  "quickly."
2002
  msgstr ""
2003
 
2004
+ #: inc/admin/admin-wizard.php:286
2005
  msgid ""
2006
  "The first step is to import your previous settings from other plugins to "
2007
  "keep your SEO."
2008
  msgstr ""
2009
 
2010
+ #: inc/admin/admin-wizard.php:287
2011
  msgid "No data to migrate? Click \"Next step\" button!"
2012
  msgstr ""
2013
 
2014
+ #: inc/admin/admin-wizard.php:289 inc/admin/admin.php:768
2015
  msgid "Import posts and terms metadata from"
2016
  msgstr ""
2017
 
2018
+ #: inc/admin/admin-wizard.php:291 inc/admin/admin.php:770
2019
  msgid "Select an option"
2020
  msgstr ""
2021
 
2022
+ #: inc/admin/admin-wizard.php:292 inc/admin/admin.php:771
2023
  msgid "Yoast SEO"
2024
  msgstr ""
2025
 
2026
+ #: inc/admin/admin-wizard.php:293 inc/admin/admin.php:772
2027
  msgid "All In One SEO"
2028
  msgstr ""
2029
 
2030
+ #: inc/admin/admin-wizard.php:294 inc/admin/admin.php:773
2031
  msgid "The SEO Framework"
2032
  msgstr ""
2033
 
2034
+ #: inc/admin/admin-wizard.php:295 inc/admin/admin.php:774
2035
  msgid "Rank Math"
2036
  msgstr ""
2037
 
2038
+ #: inc/admin/admin-wizard.php:296 inc/admin/admin.php:775
2039
  msgid "Squirrly SEO"
2040
  msgstr ""
2041
 
2042
+ #: inc/admin/admin-wizard.php:297 inc/admin/admin.php:776
2043
  msgid "SEO Ultimate"
2044
  msgstr ""
2045
 
2046
+ #: inc/admin/admin-wizard.php:298 inc/admin/admin.php:777
2047
  msgid "WP Meta SEO"
2048
  msgstr ""
2049
 
2050
+ #: inc/admin/admin-wizard.php:299 inc/admin/admin.php:778
2051
  msgid "Premium SEO Pack"
2052
  msgstr ""
2053
 
2054
+ #: inc/admin/admin-wizard.php:300 inc/admin/admin.php:779
2055
  msgid "wpSEO"
2056
  msgstr ""
2057
 
2058
+ #: inc/admin/admin-wizard.php:301 inc/admin/admin.php:780
2059
+ msgid "Platinum SEO Pack"
2060
+ msgstr ""
2061
+
2062
+ #: inc/admin/admin-wizard.php:302 inc/admin/admin.php:781
2063
+ msgid "SmartCrawl"
2064
+ msgstr ""
2065
+
2066
+ #: inc/admin/admin-wizard.php:303 inc/admin/admin.php:782
2067
+ msgid "SEOPressor"
2068
+ msgstr ""
2069
+
2070
+ #: inc/admin/admin-wizard.php:308 inc/admin/admin.php:785
2071
+ msgid "You don't have to enable the selected SEO plugin to run the import."
2072
+ msgstr ""
2073
+
2074
+ #: inc/admin/admin-wizard.php:313 inc/admin/admin.php:790
2075
  msgid "Import posts and terms metadata from Yoast"
2076
  msgstr ""
2077
 
2078
+ #: inc/admin/admin-wizard.php:314 inc/admin/admin-wizard.php:334
2079
+ #: inc/admin/admin-wizard.php:353 inc/admin/admin-wizard.php:372
2080
+ #: inc/admin/admin-wizard.php:391 inc/admin/admin-wizard.php:409
2081
+ #: inc/admin/admin-wizard.php:426 inc/admin/admin-wizard.php:442
2082
+ #: inc/admin/admin-wizard.php:461 inc/admin/admin-wizard.php:482
2083
+ #: inc/admin/admin-wizard.php:505 inc/admin/admin-wizard.php:527
2084
+ #: inc/admin/admin.php:791 inc/admin/admin.php:813 inc/admin/admin.php:834
2085
+ #: inc/admin/admin.php:855 inc/admin/admin.php:876 inc/admin/admin.php:896
2086
+ #: inc/admin/admin.php:915 inc/admin/admin.php:933 inc/admin/admin.php:953
2087
+ #: inc/admin/admin.php:975 inc/admin/admin.php:998 inc/admin/admin.php:1020
2088
  msgid "By clicking Migrate, we'll import:"
2089
  msgstr ""
2090
 
2091
+ #: inc/admin/admin-wizard.php:316 inc/admin/admin-wizard.php:336
2092
+ #: inc/admin/admin-wizard.php:355 inc/admin/admin-wizard.php:374
2093
+ #: inc/admin/admin-wizard.php:393 inc/admin/admin-wizard.php:411
2094
+ #: inc/admin/admin-wizard.php:428 inc/admin/admin-wizard.php:444
2095
+ #: inc/admin/admin-wizard.php:463 inc/admin/admin-wizard.php:484
2096
+ #: inc/admin/admin-wizard.php:507 inc/admin/admin-wizard.php:529
2097
+ #: inc/admin/admin.php:793 inc/admin/admin.php:815 inc/admin/admin.php:836
2098
+ #: inc/admin/admin.php:857 inc/admin/admin.php:878 inc/admin/admin.php:898
2099
+ #: inc/admin/admin.php:917 inc/admin/admin.php:935 inc/admin/admin.php:955
2100
+ #: inc/admin/admin.php:977 inc/admin/admin.php:1000 inc/admin/admin.php:1022
2101
  msgid "Title tags"
2102
  msgstr ""
2103
 
2104
+ #: inc/admin/admin-wizard.php:318 inc/admin/admin-wizard.php:338
2105
+ #: inc/admin/admin-wizard.php:357 inc/admin/admin-wizard.php:376
2106
+ #: inc/admin/admin-wizard.php:395 inc/admin/admin-wizard.php:413
2107
+ #: inc/admin/admin-wizard.php:430 inc/admin/admin-wizard.php:446
2108
+ #: inc/admin/admin-wizard.php:465 inc/admin/admin-wizard.php:486
2109
+ #: inc/admin/admin-wizard.php:509 inc/admin/admin-wizard.php:531
2110
+ #: inc/admin/admin.php:795 inc/admin/admin.php:817 inc/admin/admin.php:838
2111
+ #: inc/admin/admin.php:859 inc/admin/admin.php:880 inc/admin/admin.php:900
2112
+ #: inc/admin/admin.php:919 inc/admin/admin.php:937 inc/admin/admin.php:957
2113
+ #: inc/admin/admin.php:979 inc/admin/admin.php:1002 inc/admin/admin.php:1024
2114
  msgid "Facebook Open Graph tags (title, description and image thumbnail)"
2115
  msgstr ""
2116
 
2117
+ #: inc/admin/admin-wizard.php:319 inc/admin/admin-wizard.php:339
2118
+ #: inc/admin/admin-wizard.php:358 inc/admin/admin-wizard.php:377
2119
+ #: inc/admin/admin-wizard.php:396 inc/admin/admin-wizard.php:414
2120
+ #: inc/admin/admin-wizard.php:431 inc/admin/admin-wizard.php:466
2121
+ #: inc/admin/admin-wizard.php:487 inc/admin/admin-wizard.php:510
2122
+ #: inc/admin/admin-wizard.php:532 inc/admin/admin.php:796
2123
+ #: inc/admin/admin.php:818 inc/admin/admin.php:839 inc/admin/admin.php:860
2124
+ #: inc/admin/admin.php:881 inc/admin/admin.php:901 inc/admin/admin.php:920
2125
+ #: inc/admin/admin.php:958 inc/admin/admin.php:980 inc/admin/admin.php:1003
2126
+ #: inc/admin/admin.php:1025
2127
  msgid "Twitter tags (title, description and image thumbnail)"
2128
  msgstr ""
2129
 
2130
+ #: inc/admin/admin-wizard.php:320 inc/admin/admin-wizard.php:340
2131
+ #: inc/admin/admin.php:797 inc/admin/admin.php:819
2132
  msgid "Meta Robots (noindex, nofollow...)"
2133
  msgstr ""
2134
 
2135
+ #: inc/admin/admin-wizard.php:322 inc/admin/admin-wizard.php:342
2136
+ #: inc/admin/admin-wizard.php:380 inc/admin/admin-wizard.php:449
2137
+ #: inc/admin/admin-wizard.php:536 inc/admin/admin.php:799
2138
+ #: inc/admin/admin.php:863 inc/admin/admin.php:940 inc/admin/admin.php:1007
2139
  msgid "Focus keywords"
2140
  msgstr ""
2141
 
2142
+ #: inc/admin/admin-wizard.php:323 inc/admin/admin-wizard.php:491
2143
+ #: inc/admin/admin.php:669 inc/admin/admin.php:705 inc/admin/admin.php:800
2144
+ #: inc/admin/admin.php:984
2145
  msgid "Primary category"
2146
  msgstr ""
2147
 
2148
+ #: inc/admin/admin-wizard.php:325 inc/admin/admin.php:802
2149
  msgid ""
2150
  "<strong>WARNING:</strong> Migration will delete / update all SEOPress posts "
2151
  "and terms metadata. Some dynamic variables will not be interpreted. We do "
2152
  "NOT delete any Yoast data."
2153
  msgstr ""
2154
 
2155
+ #: inc/admin/admin-wizard.php:326 inc/admin/admin-wizard.php:345
2156
+ #: inc/admin/admin-wizard.php:364 inc/admin/admin-wizard.php:383
2157
+ #: inc/admin/admin-wizard.php:401 inc/admin/admin-wizard.php:418
2158
+ #: inc/admin/admin-wizard.php:434 inc/admin/admin-wizard.php:452
2159
+ #: inc/admin/admin-wizard.php:473 inc/admin/admin-wizard.php:495
2160
+ #: inc/admin/admin-wizard.php:517 inc/admin/admin-wizard.php:539
2161
+ #: inc/admin/admin.php:803 inc/admin/admin.php:824 inc/admin/admin.php:845
2162
+ #: inc/admin/admin.php:866 inc/admin/admin.php:886 inc/admin/admin.php:905
2163
+ #: inc/admin/admin.php:923 inc/admin/admin.php:943 inc/admin/admin.php:965
2164
+ #: inc/admin/admin.php:988 inc/admin/admin.php:1010 inc/admin/admin.php:1032
2165
  msgid "Migrate now"
2166
  msgstr ""
2167
 
2168
+ #: inc/admin/admin-wizard.php:333 inc/admin/admin.php:812
2169
+ msgid "Import posts metadata from All In One SEO"
2170
  msgstr ""
2171
 
2172
+ #: inc/admin/admin-wizard.php:344 inc/admin/admin.php:823
 
 
 
 
 
 
 
 
 
 
2173
  msgid ""
2174
  "<strong>WARNING:</strong> Migration will update/delete all SEOPress posts "
2175
  "and terms metadata. Some dynamic variables will not be interpreted. We do "
2176
  "NOT delete any AIO data."
2177
  msgstr ""
2178
 
2179
+ #: inc/admin/admin-wizard.php:352 inc/admin/admin.php:833
2180
  msgid "Import posts and terms metadata from The SEO Framework"
2181
  msgstr ""
2182
 
2183
+ #: inc/admin/admin-wizard.php:359 inc/admin/admin.php:840
2184
  msgid "Meta Robots (noindex, nofollow, noarchive)"
2185
  msgstr ""
2186
 
2187
+ #: inc/admin/admin-wizard.php:361 inc/admin/admin-wizard.php:469
2188
+ #: inc/admin/admin-wizard.php:490 inc/admin/admin-wizard.php:513
2189
+ #: inc/admin/admin-wizard.php:535 inc/admin/admin.php:842
2190
+ #: inc/admin/admin.php:961 inc/admin/admin.php:983 inc/admin/admin.php:1006
2191
+ #: inc/admin/admin.php:1028 src/Actions/Admin/ManageColumn.php:57
2192
  msgid "Redirect URL"
2193
  msgstr ""
2194
 
2195
+ #: inc/admin/admin-wizard.php:363 inc/admin/admin.php:844
2196
  msgid ""
2197
  "<strong>WARNING:</strong> Migration will update / delete all SEOPress posts "
2198
  "and terms metadata. Some dynamic variables will not be interpreted. We do "
2199
  "NOT delete any SEO Framework data."
2200
  msgstr ""
2201
 
2202
+ #: inc/admin/admin-wizard.php:371 inc/admin/admin.php:854
2203
  msgid "Import posts and terms metadata from Rank Math"
2204
  msgstr ""
2205
 
2206
+ #: inc/admin/admin-wizard.php:378 inc/admin/admin.php:861
2207
  msgid "Meta Robots (noindex, nofollow, noarchive, noimageindex)"
2208
  msgstr ""
2209
 
2210
+ #: inc/admin/admin-wizard.php:382 inc/admin/admin.php:865
2211
  msgid ""
2212
  "<strong>WARNING:</strong> Migration will update / delete all SEOPress posts "
2213
  "and terms metadata. Some dynamic variables will not be interpreted. We do "
2214
  "NOT delete any Rank Math data."
2215
  msgstr ""
2216
 
2217
+ #: inc/admin/admin-wizard.php:390 inc/admin/admin.php:875
2218
  msgid "Import posts metadata from Squirrly SEO"
2219
  msgstr ""
2220
 
2221
+ #: inc/admin/admin-wizard.php:397 inc/admin/admin-wizard.php:415
2222
  #: inc/admin/admin.php:882 inc/admin/admin.php:902
2223
  msgid "Meta Robots (noindex or nofollow)"
2224
  msgstr ""
2225
 
2226
+ #: inc/admin/admin-wizard.php:400
2227
  msgid ""
2228
  "<strong>WARNING:</strong> Migration will update / delete all SEOPress posts "
2229
  "metadata. Some dynamic variables will not be interpreted. We do NOT delete "
2230
  "any Squirrly SEO data."
2231
  msgstr ""
2232
 
2233
+ #: inc/admin/admin-wizard.php:408 inc/admin/admin.php:895
2234
  msgid "Import posts metadata from SEO Ultimate"
2235
  msgstr ""
2236
 
2237
+ #: inc/admin/admin-wizard.php:417 inc/admin/admin.php:904
2238
  msgid ""
2239
  "<strong>WARNING:</strong> Migration will update / delete all SEOPress posts "
2240
  "metadata. Some dynamic variables will not be interpreted. We do NOT delete "
2241
  "any SEO Ultimate data."
2242
  msgstr ""
2243
 
2244
+ #: inc/admin/admin-wizard.php:425 inc/admin/admin.php:914
2245
  msgid "Import posts and terms metadata from WP Meta SEO"
2246
  msgstr ""
2247
 
2248
+ #: inc/admin/admin-wizard.php:433 inc/admin/admin.php:922
2249
  msgid ""
2250
  "<strong>WARNING:</strong> Migration will update / delete all SEOPress posts "
2251
  "metadata. Some dynamic variables will not be interpreted. We do NOT delete "
2252
  "any WP Meta SEO data."
2253
  msgstr ""
2254
 
2255
+ #: inc/admin/admin-wizard.php:441 inc/admin/admin.php:932
2256
  msgid "Import posts and terms metadata from Premium SEO Pack"
2257
  msgstr ""
2258
 
2259
+ #: inc/admin/admin-wizard.php:447 inc/admin/admin-wizard.php:467
2260
+ #: inc/admin/admin.php:938 inc/admin/admin.php:959
2261
+ msgid "Meta Robots (noindex, nofollow)"
2262
+ msgstr ""
2263
+
2264
+ #: inc/admin/admin-wizard.php:451 inc/admin/admin.php:942
2265
  msgid ""
2266
  "<strong>WARNING:</strong> Migration will update / delete all SEOPress posts "
2267
  "metadata. Some dynamic variables will not be interpreted. We do NOT delete "
2268
  "any Premium SEO Pack data."
2269
  msgstr ""
2270
 
2271
+ #: inc/admin/admin-wizard.php:460 inc/admin/admin.php:952
2272
  msgid "Import posts and terms metadata from wpSEO"
2273
  msgstr ""
2274
 
2275
+ #: inc/admin/admin-wizard.php:470 inc/admin/admin.php:962
2276
  msgid "Main keyword"
2277
  msgstr ""
2278
 
2279
+ #: inc/admin/admin-wizard.php:472 inc/admin/admin.php:964
2280
  msgid ""
2281
  "<strong>WARNING:</strong> Migration will update / delete all SEOPress posts "
2282
  "metadata. Some dynamic variables will not be interpreted. We do NOT delete "
2283
  "any wpSEO data."
2284
  msgstr ""
2285
 
2286
+ #: inc/admin/admin-wizard.php:481 inc/admin/admin.php:974
2287
+ msgid "Import posts and terms metadata from Platinum SEO Pack"
2288
+ msgstr ""
2289
+
2290
+ #: inc/admin/admin-wizard.php:488 inc/admin/admin.php:981
2291
+ msgid "Meta Robots (noindex, nofollow, noarchive, nosnippet, noimageindex)"
2292
+ msgstr ""
2293
+
2294
+ #: inc/admin/admin-wizard.php:492 inc/admin/admin-wizard.php:514
2295
+ #: inc/admin/admin.php:985 inc/admin/admin.php:1029
2296
+ msgid "Keywords"
2297
+ msgstr ""
2298
+
2299
+ #: inc/admin/admin-wizard.php:494 inc/admin/admin.php:987
2300
+ msgid ""
2301
+ "<strong>WARNING:</strong> Migration will update / delete all SEOPress posts "
2302
+ "metadata. Some dynamic variables will not be interpreted. We do NOT delete "
2303
+ "any Platinum SEO data."
2304
+ msgstr ""
2305
+
2306
+ #: inc/admin/admin-wizard.php:504 inc/admin/admin.php:1019
2307
+ msgid "Import posts metadata from SEOPressor"
2308
+ msgstr ""
2309
+
2310
+ #: inc/admin/admin-wizard.php:511 inc/admin/admin.php:1026
2311
+ msgid ""
2312
+ "Meta Robots (noindex, nofollow, noarchive, nosnippet, noodp, noimageindex)"
2313
+ msgstr ""
2314
+
2315
+ #: inc/admin/admin-wizard.php:516 inc/admin/admin.php:1031
2316
+ msgid ""
2317
+ "<strong>WARNING:</strong> Migration will update / delete all SEOPress posts "
2318
+ "metadata. Some dynamic variables will not be interpreted. We do NOT delete "
2319
+ "any SEOPressor data."
2320
+ msgstr ""
2321
+
2322
+ #: inc/admin/admin-wizard.php:526 inc/admin/admin.php:997
2323
+ msgid "Import posts and terms metadata from SmartCrawl"
2324
+ msgstr ""
2325
+
2326
+ #: inc/admin/admin-wizard.php:533 inc/admin/admin.php:1004
2327
+ msgid "Meta Robots (noindex, nofollow, noarchive, nosnippet)"
2328
+ msgstr ""
2329
+
2330
+ #: inc/admin/admin-wizard.php:538 inc/admin/admin.php:1009
2331
+ msgid ""
2332
+ "<strong>WARNING:</strong> Migration will update / delete all SEOPress posts "
2333
+ "metadata. Some dynamic variables will not be interpreted. We do NOT delete "
2334
+ "any SmartCrawl data."
2335
+ msgstr ""
2336
+
2337
+ #: inc/admin/admin-wizard.php:547 inc/admin/admin-wizard.php:1051
2338
  msgid "Next step"
2339
  msgstr ""
2340
 
2341
+ #: inc/admin/admin-wizard.php:584
2342
  msgid ""
2343
  "To build title tags and knowledge graph for Google, you need to fill out the "
2344
  "fields below to configure the general settings. "
2345
  msgstr ""
2346
 
2347
+ #: inc/admin/admin-wizard.php:587
2348
  msgid "eg: |"
2349
  msgstr ""
2350
 
2351
+ #: inc/admin/admin-wizard.php:590
2352
  #, php-format
2353
  msgid ""
2354
  "This separator will be used by the dynamic variable <strong>%%sep%%</strong> "
2355
  "in your title and meta description templates."
2356
  msgstr ""
2357
 
2358
+ #: inc/admin/admin-wizard.php:593
2359
  msgid "Home site title"
2360
  msgstr ""
2361
 
2362
+ #: inc/admin/admin-wizard.php:594
2363
  msgid "eg: My super website"
2364
  msgstr ""
2365
 
2366
  #. ID
2367
+ #: inc/admin/admin-wizard.php:596 inc/admin/admin.php:1637
2368
  msgid "Person or organization"
2369
  msgstr ""
2370
 
2371
+ #: inc/admin/admin-wizard.php:598
2372
  msgid "Choose a knowledge type"
2373
  msgstr ""
2374
 
2375
+ #: inc/admin/admin-wizard.php:608 inc/admin/admin.php:4510
2376
  msgid "Person"
2377
  msgstr ""
2378
 
2379
+ #: inc/admin/admin-wizard.php:613 inc/admin/admin.php:4515
2380
  msgid "Organization"
2381
  msgstr ""
2382
 
2383
  #. ID
2384
+ #: inc/admin/admin-wizard.php:616 inc/admin/admin.php:1645
2385
+ #: inc/admin/admin.php:4527
2386
  msgid "Your name/organization"
2387
  msgstr ""
2388
 
2389
+ #: inc/admin/admin-wizard.php:617
2390
  msgid "eg: My Company Name"
2391
  msgstr ""
2392
 
2393
  #. ID
2394
+ #: inc/admin/admin-wizard.php:619 inc/admin/admin.php:1653
2395
+ #: inc/admin/admin.php:4539
2396
  msgid "Your photo/organization logo"
2397
  msgstr ""
2398
 
2399
+ #: inc/admin/admin-wizard.php:620
2400
  msgid "eg: https://www.example.com/logo.png"
2401
  msgstr ""
2402
 
2403
+ #: inc/admin/admin-wizard.php:622
2404
  msgid "Facebook page URL"
2405
  msgstr ""
2406
 
2407
+ #: inc/admin/admin-wizard.php:623 inc/admin/admin.php:4669
2408
  msgid "eg: https://facebook.com/my-page-url"
2409
  msgstr ""
2410
 
2411
  #. ID
2412
+ #: inc/admin/admin-wizard.php:625 inc/admin/admin.php:1702
2413
  msgid "Twitter Username"
2414
  msgstr ""
2415
 
2416
+ #: inc/admin/admin-wizard.php:626 inc/admin/admin.php:4678
2417
  msgid "eg: @my_twitter_account"
2418
  msgstr ""
2419
 
2420
  #. ID
2421
+ #: inc/admin/admin-wizard.php:628 inc/admin/admin.php:1710
2422
+ #: inc/admin/admin.php:4687
2423
  msgid "Pinterest URL"
2424
  msgstr ""
2425
 
2426
+ #: inc/admin/admin-wizard.php:629 inc/admin/admin.php:4687
2427
  msgid "eg: https://pinterest.com/my-page-url/"
2428
  msgstr ""
2429
 
2430
  #. ID
2431
+ #: inc/admin/admin-wizard.php:631 inc/admin/admin.php:1718
2432
+ #: inc/admin/admin.php:4696
2433
  msgid "Instagram URL"
2434
  msgstr ""
2435
 
2436
+ #: inc/admin/admin-wizard.php:632 inc/admin/admin.php:4696
2437
  msgid "eg: https://www.instagram.com/my-page-url/"
2438
  msgstr ""
2439
 
2440
  #. ID
2441
+ #: inc/admin/admin-wizard.php:634 inc/admin/admin.php:1726
2442
+ #: inc/admin/admin.php:4705
2443
  msgid "YouTube URL"
2444
  msgstr ""
2445
 
2446
+ #: inc/admin/admin-wizard.php:635 inc/admin/admin.php:4705
2447
  msgid "eg: https://www.youtube.com/my-channel-url"
2448
  msgstr ""
2449
 
2450
  #. ID
2451
+ #: inc/admin/admin-wizard.php:637 inc/admin/admin.php:1734
2452
+ #: inc/admin/admin.php:4714
2453
  msgid "LinkedIn URL"
2454
  msgstr ""
2455
 
2456
+ #: inc/admin/admin-wizard.php:638 inc/admin/admin.php:4714
2457
  msgid "eg: http://linkedin.com/company/my-company-url/"
2458
  msgstr ""
2459
 
2460
+ #: inc/admin/admin-wizard.php:641 inc/admin/admin-wizard.php:785
2461
+ #: inc/admin/admin-wizard.php:963
2462
  msgid "Continue"
2463
  msgstr ""
2464
 
2465
+ #: inc/admin/admin-wizard.php:689
2466
  msgid "Specify to the search engines what you want to be indexed or not."
2467
  msgstr ""
2468
 
2469
+ #: inc/admin/admin-wizard.php:690
2470
  msgid "Avoid indexing duplicate or poor quality content."
2471
  msgstr ""
2472
 
2473
+ #: inc/admin/admin-wizard.php:691
2474
  msgid "Default: index"
2475
  msgstr ""
2476
 
2477
+ #: inc/admin/admin-wizard.php:696
2478
  msgid "For which single post types, should indexing be disabled?"
2479
  msgstr ""
2480
 
2481
+ #: inc/admin/admin-wizard.php:715
2482
  msgid ""
2483
  "Do not display this single post type in search engine "
2484
  "results <strong>(noindex)</strong>"
2485
  msgstr ""
2486
 
2487
+ #: inc/admin/admin-wizard.php:726
2488
  msgid "For which post type archives, should indexing be disabled?"
2489
  msgstr ""
2490
 
2491
+ #: inc/admin/admin-wizard.php:745
2492
  msgid ""
2493
  "Do not display this post type archive in search engine "
2494
  "results <strong>(noindex)</strong>"
2495
  msgstr ""
2496
 
2497
+ #: inc/admin/admin-wizard.php:757
2498
  msgid "For which taxonomy archives, should indexing be disabled?"
2499
  msgstr ""
2500
 
2501
+ #: inc/admin/admin-wizard.php:776
2502
  msgid ""
2503
  "Do not display this taxonomy archive in search engine "
2504
  "results <strong>(noindex)</strong>"
2505
  msgstr ""
2506
 
2507
+ #: inc/admin/admin-wizard.php:863 inc/admin/admin.php:3811
2508
  msgid ""
2509
  "Do not display author archives in search engine results <strong>(noindex)</"
2510
  "strong>"
2511
  msgstr ""
2512
 
2513
+ #: inc/admin/admin-wizard.php:867
2514
  msgid ""
2515
  "You only have one author on your site? Check this option to avoid duplicate "
2516
  "content."
2517
  msgstr ""
2518
 
2519
+ #: inc/admin/admin-wizard.php:876 inc/admin/admin.php:6004
2520
  msgid ""
2521
  "Redirect attachment pages to their file URL (https://www.example.com/my-"
2522
  "image-file.jpg)"
2523
  msgstr ""
2524
 
2525
+ #: inc/admin/admin-wizard.php:880
2526
  msgid ""
2527
  "By default, SEOPress redirects your Attachment pages to the parent post. "
2528
  "Optimize this by redirecting the user directly to the URL of the media file."
2529
  msgstr ""
2530
 
2531
+ #: inc/admin/admin-wizard.php:889 inc/admin/admin.php:6158
2532
  msgid "Remove /category/ in your permalinks"
2533
  msgstr ""
2534
 
2535
+ #: inc/admin/admin-wizard.php:893
2536
  msgid "Shorten your URLs by removing /category/ and improve your SEO."
2537
  msgstr ""
2538
 
2539
+ #: inc/admin/admin-wizard.php:898
2540
  msgid "Choose which SEO columns to display in post types list:"
2541
  msgstr ""
2542
 
2543
  #. ID
2544
+ #: inc/admin/admin-wizard.php:908 inc/admin/admin.php:2653
2545
  msgid "Show Title tag column in post types"
2546
  msgstr ""
2547
 
2548
  #. ID
2549
+ #: inc/admin/admin-wizard.php:918 inc/admin/admin.php:2661
2550
  msgid "Show Meta description column in post types"
2551
  msgstr ""
2552
 
2553
  #. ID
2554
+ #: inc/admin/admin-wizard.php:928 inc/admin/admin.php:2701
2555
  msgid "Show noindex column in post types"
2556
  msgstr ""
2557
 
2558
+ #: inc/admin/admin-wizard.php:932
2559
  msgid "Quickly know if a content is in noindex."
2560
  msgstr ""
2561
 
2562
  #. ID
2563
+ #: inc/admin/admin-wizard.php:941 inc/admin/admin.php:2709
2564
  msgid "Show nofollow column in post types"
2565
  msgstr ""
2566
 
2567
+ #: inc/admin/admin-wizard.php:945
2568
  msgid "Quickly know if a content is in nofollow."
2569
  msgstr ""
2570
 
2571
  #. ID
2572
+ #: inc/admin/admin-wizard.php:954 inc/admin/admin.php:2752
2573
  msgid "Show content analysis score column in post types"
2574
  msgstr ""
2575
 
2576
+ #: inc/admin/admin-wizard.php:958
2577
  msgid "Quickly know if a content is optimized for search engines."
2578
  msgstr ""
2579
 
2580
  #. Flush permalinks
2581
+ #: inc/admin/admin-wizard.php:1013
2582
  msgid "Your site is now ready for search engines!"
2583
  msgstr ""
2584
 
2585
+ #: inc/admin/admin-wizard.php:1019 inc/functions/options-advanced-admin.php:19
2586
  msgid "Welcome to SEOPress PRO!"
2587
  msgstr ""
2588
 
2589
+ #: inc/admin/admin-wizard.php:1022 inc/functions/options-advanced-admin.php:20
2590
  msgid ""
2591
  "Please activate your license to receive automatic updates and get premium "
2592
  "support."
2593
  msgstr ""
2594
 
2595
+ #: inc/admin/admin-wizard.php:1027 inc/functions/options-advanced-admin.php:21
2596
  msgid "Activate License"
2597
  msgstr ""
2598
 
2599
+ #: inc/admin/admin-wizard.php:1034
2600
  msgid "Go PRO with SEOPress PRO!"
2601
  msgstr ""
2602
 
2603
+ #: inc/admin/admin-wizard.php:1037
2604
  msgid ""
2605
  "When you upgrade to the PRO version, you get a lot of additional features, "
2606
  "like automatic and manual schemas, Video Sitemap, WooCommerce enhancements, "
2607
  "Analytics statistics in your Dashboard, breadcrumbs, redirections, and more."
2608
  msgstr ""
2609
 
2610
+ #: inc/admin/admin-wizard.php:1042
2611
  msgid "Buy SEOPress PRO - $39 / unlimited sites"
2612
  msgstr ""
2613
 
2614
+ #: inc/admin/admin-wizard.php:1052
2615
  msgid "Create your XML sitemaps"
2616
  msgstr ""
2617
 
2618
+ #: inc/admin/admin-wizard.php:1053
2619
  msgid "Build custom XML sitemaps to improve Google's crawling of your site."
2620
  msgstr ""
2621
 
2622
+ #: inc/admin/admin-wizard.php:1058
2623
  msgid "Configure your XML sitemaps"
2624
  msgstr ""
2625
 
2626
+ #: inc/admin/admin-wizard.php:1066
2627
  msgid "You can also:"
2628
  msgstr ""
2629
 
2630
+ #: inc/admin/admin-wizard.php:1071
2631
  msgid "Visit Dashboard"
2632
  msgstr ""
2633
 
2634
+ #: inc/admin/admin-wizard.php:1074
2635
  msgid "Review Settings"
2636
  msgstr ""
2637
 
2638
+ #: inc/admin/admin-wizard.php:1077
2639
  msgid "Knowledge base"
2640
  msgstr ""
2641
 
2642
+ #: inc/admin/admin.php:39
2643
  msgid "SEOPress Option Page"
2644
  msgstr ""
2645
 
2646
+ #: inc/admin/admin.php:40
2647
  msgid "Dashboard"
2648
  msgstr ""
2649
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2650
  #: inc/admin/admin.php:79
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2651
  msgid "Templates variables"
2652
  msgstr ""
2653
 
2654
+ #: inc/admin/admin.php:85
2655
  msgid "Edit your meta robots"
2656
  msgstr ""
2657
 
2658
+ #: inc/admin/admin.php:92 inc/admin/admin.php:100
2659
  msgid "Browse our guides"
2660
  msgstr ""
2661
 
2662
+ #: inc/admin/admin.php:93 inc/admin/admin.php:101
2663
  msgid "Read our FAQ"
2664
  msgstr ""
2665
 
2666
+ #: inc/admin/admin.php:94 inc/admin/admin.php:102
2667
  msgid "Check our website"
2668
  msgstr ""
2669
 
2670
+ #: inc/admin/admin.php:113
2671
  msgid ""
2672
  "Watch our video to learn how to enable XML sitemaps to improve crawling and "
2673
  "them to Google Search Console."
2674
  msgstr ""
2675
 
2676
+ #: inc/admin/admin.php:118 inc/admin/admin.php:147 inc/admin/admin.php:176
2677
  msgid "How-to"
2678
  msgstr ""
2679
 
2680
+ #: inc/admin/admin.php:142
2681
  msgid ""
2682
  "Watch our video to learn how to edit your Open Graph and Twitters Cards tags "
2683
  "to improve social sharing."
2684
  msgstr ""
2685
 
2686
+ #: inc/admin/admin.php:171
2687
  msgid ""
2688
  "Watch our video to learn how to connect your WordPress site with Google "
2689
  "Analytics and get statistics right in your dashboard (PRO only)."
2690
  msgstr ""
2691
 
2692
+ #: inc/admin/admin.php:205 inc/admin/admin.php:283 inc/admin/admin.php:355
2693
+ #: inc/admin/admin.php:532
2694
+ msgid "Your settings have been saved."
2695
  msgstr ""
2696
 
2697
+ #: inc/admin/admin.php:224 inc/admin/admin.php:228 inc/admin/admin.php:301
2698
+ #: inc/admin/admin.php:305 inc/admin/admin.php:374 inc/admin/admin.php:378
2699
+ #: inc/admin/admin.php:449 inc/admin/admin.php:453 inc/admin/admin.php:551
2700
+ #: inc/admin/admin.php:555
2701
  msgid "Click to disable this feature"
2702
  msgstr ""
2703
 
2704
+ #: inc/admin/admin.php:225 inc/admin/admin.php:227 inc/admin/admin.php:302
2705
+ #: inc/admin/admin.php:304 inc/admin/admin.php:375 inc/admin/admin.php:377
2706
+ #: inc/admin/admin.php:450 inc/admin/admin.php:452 inc/admin/admin.php:552
2707
+ #: inc/admin/admin.php:554
2708
  msgid "Click to enable this feature"
2709
  msgstr ""
2710
 
2711
+ #: inc/admin/admin.php:241
2712
  msgid "Home"
2713
  msgstr ""
2714
 
2715
+ #: inc/admin/admin.php:242
2716
  msgid "Single Post Types"
2717
  msgstr ""
2718
 
2719
+ #: inc/admin/admin.php:243
2720
  msgid "Archives"
2721
  msgstr ""
2722
 
2723
+ #: inc/admin/admin.php:244 inc/admin/admin.php:320
2724
  msgid "Taxonomies"
2725
  msgstr ""
2726
 
2727
+ #: inc/admin/admin.php:318 inc/admin/admin.php:467 inc/admin/admin.php:478
2728
  msgid "General"
2729
  msgstr ""
2730
 
2731
+ #: inc/admin/admin.php:319
2732
  msgid "Post Types"
2733
  msgstr ""
2734
 
2735
+ #: inc/admin/admin.php:321
2736
  msgid "HTML Sitemap"
2737
  msgstr ""
2738
 
2739
+ #: inc/admin/admin.php:391
2740
  msgid "Knowledge Graph"
2741
  msgstr ""
2742
 
2743
+ #: inc/admin/admin.php:392
2744
  msgid "Your social accounts"
2745
  msgstr ""
2746
 
2747
+ #: inc/admin/admin.php:393
2748
  msgid "Facebook (Open Graph)"
2749
  msgstr ""
2750
 
2751
+ #: inc/admin/admin.php:394
2752
  msgid "Twitter (Twitter card)"
2753
  msgstr ""
2754
 
2755
+ #: inc/admin/admin.php:429
2756
+ msgid "Your setting have been saved."
2757
+ msgstr ""
2758
+
2759
+ #: inc/admin/admin.php:468 inc/admin/admin.php:479
2760
  msgid "Tracking"
2761
  msgstr ""
2762
 
2763
+ #: inc/admin/admin.php:469
2764
  msgid "Ecommerce"
2765
  msgstr ""
2766
 
2767
+ #: inc/admin/admin.php:470 inc/admin/admin.php:480
2768
  msgid "Events"
2769
  msgstr ""
2770
 
2771
+ #: inc/admin/admin.php:471 inc/admin/admin.php:481
2772
  msgid "Custom Dimensions"
2773
  msgstr ""
2774
 
2775
+ #: inc/admin/admin.php:472
2776
  msgid "Stats in Dashboard"
2777
  msgstr ""
2778
 
2779
+ #: inc/admin/admin.php:473 inc/admin/admin.php:482
2780
  msgid "Cookie bar / GDPR"
2781
  msgstr ""
2782
 
2783
+ #: inc/admin/admin.php:474 inc/admin/admin.php:483
2784
  msgid "Matomo"
2785
  msgstr ""
2786
 
2787
+ #: inc/admin/admin.php:568
2788
+ msgid "Image SEO"
2789
+ msgstr ""
2790
+
2791
+ #: inc/admin/admin.php:570
2792
  msgid "Appearance"
2793
  msgstr ""
2794
 
2795
+ #: inc/admin/admin.php:571
2796
  msgid "Security"
2797
  msgstr ""
2798
 
2799
+ #: inc/admin/admin.php:613
2800
+ msgid "Compatibility Center"
2801
+ msgstr ""
2802
+
2803
+ #: inc/admin/admin.php:614
2804
  msgid "Data"
2805
  msgstr ""
2806
 
2807
+ #: inc/admin/admin.php:615 seopress.php:592
2808
  msgid "Settings"
2809
  msgstr ""
2810
 
2811
+ #: inc/admin/admin.php:616
2812
  msgid "Plugins"
2813
  msgstr ""
2814
 
2815
+ #: inc/admin/admin.php:618
2816
  msgid "Reset"
2817
  msgstr ""
2818
 
2819
+ #: inc/admin/admin.php:647
2820
  msgid "Import data from a CSV"
2821
  msgstr ""
2822
 
2823
+ #: inc/admin/admin.php:648
2824
  msgid ""
2825
  "Upload a CSV file to quickly import post (post, page, single post type) and "
2826
  "term metadata:"
2827
  msgstr ""
2828
 
2829
+ #: inc/admin/admin.php:657 inc/admin/admin.php:693
2830
  msgid "Meta robots (noindex, nofollow...)"
2831
  msgstr ""
2832
 
2833
+ #: inc/admin/admin.php:660 inc/admin/admin.php:696
2834
  msgid "Facebook Open Graph tags (title, description, image)"
2835
  msgstr ""
2836
 
2837
+ #: inc/admin/admin.php:663 inc/admin/admin.php:699
2838
  msgid "Twitter cards tags (title, description, image)"
2839
  msgstr ""
2840
 
2841
+ #: inc/admin/admin.php:666 inc/admin/admin.php:702
2842
  msgid "Redirection (enable, type, URL)"
2843
  msgstr ""
2844
 
2845
+ #: inc/admin/admin.php:678
2846
  msgid "Run the importer"
2847
  msgstr ""
2848
 
2849
+ #: inc/admin/admin.php:683
2850
  msgid "Export metadata to a CSV"
2851
  msgstr ""
2852
 
2853
+ #: inc/admin/admin.php:684
2854
  msgid ""
2855
  "Export your post (post, page, single post type) and term metadata for this "
2856
  "site as a .csv file."
2857
  msgstr ""
2858
 
2859
+ #: inc/admin/admin.php:718 inc/admin/admin.php:738
2860
  msgid "Export"
2861
  msgstr ""
2862
 
2863
+ #: inc/admin/admin.php:732
2864
  msgid "Export plugin settings"
2865
  msgstr ""
2866
 
2867
+ #: inc/admin/admin.php:733
2868
  msgid ""
2869
  "Export the plugin settings for this site as a .json file. This allows you to "
2870
  "easily import the configuration into another site."
2871
  msgstr ""
2872
 
2873
+ #: inc/admin/admin.php:746
2874
  msgid "Import plugin settings"
2875
  msgstr ""
2876
 
2877
+ #: inc/admin/admin.php:747
2878
  msgid ""
2879
  "Import the plugin settings from a .json file. This file can be obtained by "
2880
  "exporting the settings on another site using the form above."
2881
  msgstr ""
2882
 
2883
+ #: inc/admin/admin.php:755
2884
  msgid "Import"
2885
  msgstr ""
2886
 
2887
+ #: inc/admin/admin.php:757
2888
  msgid "Import completed!"
2889
  msgstr ""
2890
 
2891
+ #: inc/admin/admin.php:821
2892
+ msgid "Focus keyword"
2893
+ msgstr ""
2894
+
2895
  #: inc/admin/admin.php:885
2896
  msgid ""
2897
  "<strong>WARNING:</strong> Migration will update/delete all SEOPress posts "
2899
  "any Squirrly SEO data."
2900
  msgstr ""
2901
 
2902
+ #: inc/admin/admin.php:1045
2903
  msgid "Redirections feature is disabled. Please activate it from the PRO page."
2904
  msgstr ""
2905
 
2906
+ #: inc/admin/admin.php:1046
2907
  msgid "Activate Redirections"
2908
  msgstr ""
2909
 
2910
+ #: inc/admin/admin.php:1055
2911
  msgid "Reset All Notices From Notifications Center"
2912
  msgstr ""
2913
 
2914
+ #: inc/admin/admin.php:1056
2915
  msgid ""
2916
  "By clicking Reset Notices, all notices in the notifications center will be "
2917
  "set to their initial status."
2918
  msgstr ""
2919
 
2920
+ #: inc/admin/admin.php:1061
2921
  msgid "Reset notices"
2922
  msgstr ""
2923
 
2924
+ #: inc/admin/admin.php:1069
2925
  msgid "Reset All Settings"
2926
  msgstr ""
2927
 
2928
+ #: inc/admin/admin.php:1070
2929
  msgid ""
2930
  "<strong>WARNING:</strong> Delete all options related to this plugin in your "
2931
  "database AND set settings to their default values."
2932
  msgstr ""
2933
 
2934
+ #: inc/admin/admin.php:1075
2935
  msgid "Reset settings"
2936
  msgstr ""
2937
 
2938
  #. ID
2939
+ #: inc/admin/admin.php:1198 inc/admin/admin.php:3206
2940
  msgid "Site title"
2941
  msgstr ""
2942
 
2943
  #. ID
2944
+ #: inc/admin/admin.php:1417 inc/admin/admin.php:3987
2945
  msgid "noindex"
2946
  msgstr ""
2947
 
2948
  #. ID
2949
+ #: inc/admin/admin.php:1425 inc/admin/admin.php:4009
2950
  msgid "nofollow"
2951
  msgstr ""
2952
 
2953
  #. ID
2954
+ #: inc/admin/admin.php:1433 inc/admin/admin.php:4029
2955
  msgid "noodp"
2956
  msgstr ""
2957
 
2958
  #. ID
2959
+ #: inc/admin/admin.php:1441 inc/admin/admin.php:4049
2960
  msgid "noimageindex"
2961
  msgstr ""
2962
 
2963
  #. ID
2964
+ #: inc/admin/admin.php:1449 inc/admin/admin.php:4069
2965
  msgid "noarchive"
2966
  msgstr ""
2967
 
2968
  #. ID
2969
+ #: inc/admin/admin.php:1457 inc/admin/admin.php:4089
2970
  msgid "nosnippet"
2971
  msgstr ""
2972
 
2973
  #. ID
2974
+ #: inc/admin/admin.php:1465 inc/admin/admin.php:4109
2975
  msgid "nositelinkssearchbox"
2976
  msgstr ""
2977
 
2978
  #. ID
2979
+ #: inc/admin/admin.php:1473
2980
  msgid "Indicate paginated content to Google"
2981
  msgstr ""
2982
 
2983
  #. ID
2984
+ #: inc/admin/admin.php:1481
2985
  msgid "noindex on paged archives"
2986
  msgstr ""
2987
 
2988
  #. ID
2989
+ #: inc/admin/admin.php:1498 inc/admin/admin.php:4167
2990
  msgid "Enable XML Sitemap"
2991
  msgstr ""
2992
 
2993
  #. ID
2994
+ #: inc/admin/admin.php:1506
2995
  msgid "Enable XML Image Sitemaps"
2996
  msgstr ""
2997
 
2998
  #. ID
2999
+ #: inc/admin/admin.php:1515
3000
  msgid "Enable XML Video Sitemaps"
3001
  msgstr ""
3002
 
3003
  #. ID
3004
+ #: inc/admin/admin.php:1524 inc/admin/admin.php:4251
3005
  msgid "Enable Author Sitemap"
3006
  msgstr ""
3007
 
3008
  #. ID
3009
+ #: inc/admin/admin.php:1532 inc/admin/admin.php:4271
3010
  msgid "Enable HTML Sitemap"
3011
  msgstr ""
3012
 
3013
  #. ID
3014
+ #: inc/admin/admin.php:1548
3015
  msgid "Check to INCLUDE Post Types"
3016
  msgstr ""
3017
 
3018
  #. ID
3019
+ #: inc/admin/admin.php:1564
3020
  msgid "Check to INCLUDE Taxonomies"
3021
  msgstr ""
3022
 
3023
  #. ID
3024
+ #: inc/admin/admin.php:1580 inc/admin/admin.php:4376
3025
  msgid "Enter a post, page or custom post type ID(s) to display the sitemap"
3026
  msgstr ""
3027
 
3028
  #. ID
3029
+ #: inc/admin/admin.php:1588 inc/admin/admin.php:4393
3030
  msgid "Exclude some Posts, Pages, Custom Post Types or Terms IDs"
3031
  msgstr ""
3032
 
3033
  #. ID
3034
+ #: inc/admin/admin.php:1596
3035
  msgid "Sort order"
3036
  msgstr ""
3037
 
3038
  #. ID
3039
+ #: inc/admin/admin.php:1604
3040
  msgid "Order posts by"
3041
  msgstr ""
3042
 
3043
  #. ID
3044
+ #: inc/admin/admin.php:1612
3045
  msgid "Disable the display of the publication date"
3046
  msgstr ""
3047
 
3048
  #. ID
3049
+ #: inc/admin/admin.php:1620
3050
+ msgid "Remove links from archive pages"
3051
+ msgstr ""
3052
+
3053
+ #. ID
3054
+ #: inc/admin/admin.php:1661 inc/admin/admin.php:4569
3055
  msgid "Organization's phone number (only for Organizations)"
3056
  msgstr ""
3057
 
3058
  #. ID
3059
+ #: inc/admin/admin.php:1669
3060
  msgid "Contact type (only for Organizations)"
3061
  msgstr ""
3062
 
3063
  #. ID
3064
+ #: inc/admin/admin.php:1677
3065
  msgid "Contact option (only for Organizations)"
3066
  msgstr ""
3067
 
3068
  #. ID
3069
+ #: inc/admin/admin.php:1694 inc/admin/admin.php:4669
3070
  msgid "Facebook Page URL"
3071
  msgstr ""
3072
 
3073
  #. ID
3074
+ #: inc/admin/admin.php:1751
3075
  msgid "Enable Open Graph Data"
3076
  msgstr ""
3077
 
3078
  #. ID
3079
+ #: inc/admin/admin.php:1759 inc/admin/admin.php:4742 inc/admin/admin.php:4795
3080
  msgid "Select a default image"
3081
  msgstr ""
3082
 
3083
  #. ID
3084
+ #: inc/admin/admin.php:1767
3085
  msgid "Apply this image to all your og:image tag"
3086
  msgstr ""
3087
 
3088
  #. ID
3089
+ #: inc/admin/admin.php:1775
3090
  msgid "Define custom og:image tag for post type archive pages"
3091
  msgstr ""
3092
 
3093
  #. ID
3094
+ #: inc/admin/admin.php:1783
3095
  msgid "Facebook Link Ownership ID"
3096
  msgstr ""
3097
 
3098
  #. ID
3099
+ #: inc/admin/admin.php:1791
3100
  msgid "Facebook Admin ID"
3101
  msgstr ""
3102
 
3103
  #. ID
3104
+ #: inc/admin/admin.php:1799
3105
  msgid "Facebook App ID"
3106
  msgstr ""
3107
 
3108
  #. ID
3109
+ #: inc/admin/admin.php:1816
3110
  msgid "Enable Twitter Card"
3111
  msgstr ""
3112
 
3113
  #. ID
3114
+ #: inc/admin/admin.php:1824
3115
  msgid "Use Open Graph if no Twitter Card is filled"
3116
  msgstr ""
3117
 
3118
  #. ID
3119
+ #: inc/admin/admin.php:1832 inc/admin/admin.php:4890
3120
  msgid "Default Twitter Image"
3121
  msgstr ""
3122
 
3123
  #. ID
3124
+ #: inc/admin/admin.php:1840
3125
  msgid "Image size for Twitter Summary card"
3126
  msgstr ""
3127
 
3128
  #. ID
3129
+ #: inc/admin/admin.php:1857
3130
  msgid "Enable Google Analytics tracking"
3131
  msgstr ""
3132
 
3133
  #. ID
3134
+ #: inc/admin/admin.php:1865 inc/admin/admin.php:2305 inc/admin/admin.php:4948
3135
  msgid "Enter your tracking ID"
3136
  msgstr ""
3137
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3138
  #. ID
3139
  #: inc/admin/admin.php:1873
3140
+ msgid "Enter your measurement ID (GA4)"
3141
  msgstr ""
3142
 
3143
  #. ID
3144
  #: inc/admin/admin.php:1881
3145
+ msgid "Exclude user roles from tracking (Google Analytics and Matomo)"
 
 
 
 
 
 
 
 
 
 
3146
  msgstr ""
3147
 
3148
  #. ID
3149
+ #: inc/admin/admin.php:1898
3150
+ msgid "Where to display the cookie bar?"
3151
  msgstr ""
3152
 
3153
  #. ID
3154
+ #: inc/admin/admin.php:1906
3155
+ msgid "Analytics tracking opt-in"
3156
  msgstr ""
3157
 
3158
  #. ID
3159
+ #: inc/admin/admin.php:1922
3160
+ msgid "Allow user to change its choice"
3161
  msgstr ""
3162
 
3163
  #. ID
3164
+ #: inc/admin/admin.php:1930
3165
+ msgid "Consent message for user tracking"
3166
  msgstr ""
3167
 
3168
  #. ID
3169
+ #: inc/admin/admin.php:1938
3170
+ msgid "Accept button for user tracking"
3171
  msgstr ""
3172
 
3173
  #. ID
3174
+ #: inc/admin/admin.php:1946
3175
+ msgid "Close button"
3176
  msgstr ""
3177
 
3178
  #. ID
3179
+ #: inc/admin/admin.php:1954
3180
+ msgid "Edit cookies button"
3181
  msgstr ""
3182
 
3183
  #. ID
3184
+ #: inc/admin/admin.php:1962
3185
+ msgid "User consent cookie expiration date"
3186
  msgstr ""
3187
 
3188
  #. ID
3189
+ #: inc/admin/admin.php:1970
3190
+ msgid "Cookie bar position"
3191
  msgstr ""
3192
 
3193
  #. ID
3194
+ #: inc/admin/admin.php:1978
3195
+ msgid "Text alignment"
3196
  msgstr ""
3197
 
3198
  #. ID
3199
+ #: inc/admin/admin.php:1986
3200
+ msgid "Cookie bar width"
3201
  msgstr ""
3202
 
3203
  #. ID
3204
+ #: inc/admin/admin.php:2108
3205
  msgid "Enable Google Optimize"
3206
  msgstr ""
3207
 
3208
  #. ID
3209
+ #: inc/admin/admin.php:2116
3210
  msgid "Enable Google Ads"
3211
  msgstr ""
3212
 
3213
  #. ID
3214
+ #: inc/admin/admin.php:2124
3215
+ msgid "[HEAD] Add an additional tracking code (like Facebook Pixel, Hotjar...)"
3216
  msgstr ""
3217
 
3218
  #. ID
3219
+ #: inc/admin/admin.php:2132
3220
  msgid "[BODY] Add an additional tracking code (like Google Tag Manager...)"
3221
  msgstr ""
3222
 
3223
  #. ID
3224
+ #: inc/admin/admin.php:2140
3225
  msgid ""
3226
  "[BODY (FOOTER)] Add an additional tracking code (like Google Tag Manager...)"
3227
  msgstr ""
3228
 
3229
  #. ID
3230
+ #: inc/admin/admin.php:2148 inc/admin/admin.php:5470
3231
  msgid "Enable remarketing, demographics, and interests reporting"
3232
  msgstr ""
3233
 
3234
  #. ID
3235
+ #: inc/admin/admin.php:2156 inc/admin/admin.php:5493
3236
  msgid "Enable IP Anonymization"
3237
  msgstr ""
3238
 
3239
  #. ID
3240
+ #: inc/admin/admin.php:2164 inc/admin/admin.php:5516
3241
  msgid "Enhanced Link Attribution"
3242
  msgstr ""
3243
 
3244
  #. ID
3245
+ #: inc/admin/admin.php:2172 inc/admin/admin.php:5539
3246
  msgid "Enable cross-domain tracking"
3247
  msgstr ""
3248
 
3249
  #. ID
3250
+ #: inc/admin/admin.php:2180 inc/admin/admin.php:5555 inc/admin/admin.php:5890
3251
  msgid "Cross domains"
3252
  msgstr ""
3253
 
3254
  #. ID
3255
+ #: inc/admin/admin.php:2198 inc/admin/admin.php:5571
3256
  msgid "Enable external links tracking"
3257
  msgstr ""
3258
 
3259
  #. ID
3260
+ #: inc/admin/admin.php:2206
3261
  msgid "Enable downloads tracking (eg: PDF, XLSX, DOCX...)"
3262
  msgstr ""
3263
 
3264
  #. ID
3265
+ #: inc/admin/admin.php:2214 inc/admin/admin.php:5600
3266
  msgid "Track downloads' clicks"
3267
  msgstr ""
3268
 
3269
  #. ID
3270
+ #: inc/admin/admin.php:2222
3271
  msgid "Enable affiliate/outbound links tracking (eg: aff, go, out, recommends)"
3272
  msgstr ""
3273
 
3274
  #. ID
3275
+ #: inc/admin/admin.php:2230 inc/admin/admin.php:5630
3276
  msgid "Track affiliate/outbound links"
3277
  msgstr ""
3278
 
3279
  #. ID
3280
+ #: inc/admin/admin.php:2248
3281
  msgid "Track Authors"
3282
  msgstr ""
3283
 
3284
  #. ID
3285
+ #: inc/admin/admin.php:2256
3286
  msgid "Track Categories"
3287
  msgstr ""
3288
 
3289
  #. ID
3290
+ #: inc/admin/admin.php:2264
3291
  msgid "Track Tags"
3292
  msgstr ""
3293
 
3294
  #. ID
3295
+ #: inc/admin/admin.php:2272
3296
  msgid "Track Post Types"
3297
  msgstr ""
3298
 
3299
  #. ID
3300
+ #: inc/admin/admin.php:2280
3301
  msgid "Track Logged In Users"
3302
  msgstr ""
3303
 
3304
  #. ID
3305
+ #: inc/admin/admin.php:2297
3306
  msgid "Enable Matomo tracking"
3307
  msgstr ""
3308
 
3309
  #. ID
3310
+ #: inc/admin/admin.php:2313
3311
  msgid "Enter your site ID"
3312
  msgstr ""
3313
 
3314
  #. ID
3315
+ #: inc/admin/admin.php:2321
3316
  msgid "Track visitors across all subdomains"
3317
  msgstr ""
3318
 
3319
  #. ID
3320
+ #: inc/admin/admin.php:2329
3321
  msgid "Prepend the site domain"
3322
  msgstr ""
3323
 
3324
  #. ID
3325
+ #: inc/admin/admin.php:2337 inc/admin/admin.php:5859
3326
  msgid "Track users with JavaScript disabled"
3327
  msgstr ""
3328
 
3329
  #. ID
3330
+ #: inc/admin/admin.php:2345 inc/admin/admin.php:5877
3331
  msgid "Enables cross domain linking"
3332
  msgstr ""
3333
 
3334
  #. ID
3335
+ #: inc/admin/admin.php:2353
3336
  msgid "Cross domain"
3337
  msgstr ""
3338
 
3339
  #. ID
3340
+ #: inc/admin/admin.php:2360
3341
  msgid "Enable DoNotTrack detection"
3342
  msgstr ""
3343
 
3344
  #. ID
3345
+ #: inc/admin/admin.php:2368
3346
  msgid "Disable all tracking cookies"
3347
  msgstr ""
3348
 
3349
  #. ID
3350
+ #: inc/admin/admin.php:2376
3351
  msgid "Download & Outlink tracking"
3352
  msgstr ""
3353
 
3354
  #. ID
3355
+ #: inc/admin/admin.php:2384
3356
  msgid "Disable all heatmaps and session recordings"
3357
  msgstr ""
3358
 
3359
  #. ID
3360
+ #: inc/admin/admin.php:2401
3361
  msgid "Redirect attachment pages to post parent"
3362
  msgstr ""
3363
 
3364
  #. ID
3365
+ #: inc/admin/admin.php:2409
3366
  msgid "Redirect attachment pages to their file URL"
3367
  msgstr ""
3368
 
3369
  #. ID
3370
+ #: inc/admin/admin.php:2417
3371
  msgid "Remove ?replytocom link to avoid duplicate content"
3372
  msgstr ""
3373
 
3374
  #. ID
3375
+ #: inc/admin/admin.php:2425
3376
  msgid "Automatically set the image Title"
3377
  msgstr ""
3378
 
3379
  #. ID
3380
+ #: inc/admin/admin.php:2433
3381
  msgid "Automatically set the image Alt text"
3382
  msgstr ""
3383
 
3384
  #. ID
3385
+ #: inc/admin/admin.php:2441
3386
  msgid "Automatically set the image Alt text from target keywords"
3387
  msgstr ""
3388
 
3389
  #. ID
3390
+ #: inc/admin/admin.php:2449
3391
  msgid "Automatically set the image Caption"
3392
  msgstr ""
3393
 
3394
  #. ID
3395
+ #: inc/admin/admin.php:2457
3396
  msgid "Automatically set the image Description"
3397
  msgstr ""
3398
 
3399
  #. ID
3400
+ #: inc/admin/admin.php:2474
3401
  msgid "Add WP Editor to taxonomy description textarea"
3402
  msgstr ""
3403
 
3404
  #. ID
3405
+ #: inc/admin/admin.php:2482
3406
  msgid "Remove /category/ in URL"
3407
  msgstr ""
3408
 
3409
  #. ID
3410
+ #: inc/admin/admin.php:2490 inc/admin/admin.php:6176
3411
  msgid "Disable trailing slash for metas"
3412
  msgstr ""
3413
 
3414
  #. ID
3415
+ #: inc/admin/admin.php:2498
3416
  msgid "Remove WordPress generator meta tag"
3417
  msgstr ""
3418
 
3419
  #. ID
3420
+ #: inc/admin/admin.php:2506
3421
  msgid "Remove hentry post class"
3422
  msgstr ""
3423
 
3424
  #. ID
3425
+ #: inc/admin/admin.php:2514
3426
  msgid "Remove author URL"
3427
  msgstr ""
3428
 
3429
  #. ID
3430
+ #: inc/admin/admin.php:2522
3431
  msgid "Remove website field in comment form"
3432
  msgstr ""
3433
 
3434
  #. ID
3435
+ #: inc/admin/admin.php:2530
3436
  msgid "Remove WordPress shortlink meta tag"
3437
  msgstr ""
3438
 
3439
  #. ID
3440
+ #: inc/admin/admin.php:2538
3441
  msgid "Remove Windows Live Writer meta tag"
3442
  msgstr ""
3443
 
3444
  #. ID
3445
+ #: inc/admin/admin.php:2546
3446
  msgid "Remove RSD meta tag"
3447
  msgstr ""
3448
 
3449
  #. ID
3450
+ #: inc/admin/admin.php:2554 inc/admin/admin.php:6315
3451
  msgid "Google site verification"
3452
  msgstr ""
3453
 
3454
  #. ID
3455
+ #: inc/admin/admin.php:2562 inc/admin/admin.php:6326
3456
  msgid "Bing site verification"
3457
  msgstr ""
3458
 
3459
  #. ID
3460
+ #: inc/admin/admin.php:2570 inc/admin/admin.php:6336
3461
  msgid "Pinterest site verification"
3462
  msgstr ""
3463
 
3464
  #. ID
3465
+ #: inc/admin/admin.php:2578 inc/admin/admin.php:6345
3466
  msgid "Yandex site verification"
3467
  msgstr ""
3468
 
3469
  #. ID
3470
+ #: inc/admin/admin.php:2595
3471
  msgid "SEO in admin bar"
3472
  msgstr ""
3473
 
3474
  #. ID
3475
+ #: inc/admin/admin.php:2603
3476
  msgid "Noindex in admin bar"
3477
  msgstr ""
3478
 
3479
  #. ID
3480
+ #: inc/admin/admin.php:2611
3481
  msgid "Move SEO metabox's position"
3482
  msgstr ""
3483
 
3484
  #. ID
3485
+ #: inc/admin/admin.php:2620
3486
  msgid "Set default tab for Structured data metabox"
3487
  msgstr ""
3488
 
3489
  #. ID
3490
+ #: inc/admin/admin.php:2629
3491
  msgid "Hide Notifications Center"
3492
  msgstr ""
3493
 
3494
  #. ID
3495
+ #: inc/admin/admin.php:2637
3496
  msgid "Hide SEO tools"
3497
  msgstr ""
3498
 
3499
  #. ID
3500
+ #: inc/admin/admin.php:2645
3501
  msgid "Hide Useful Links"
3502
  msgstr ""
3503
 
3504
  #. ID
3505
+ #: inc/admin/admin.php:2669
3506
  msgid "Show Redirection Enable column in post types"
3507
  msgstr ""
3508
 
3509
  #. ID
3510
+ #: inc/admin/admin.php:2677
3511
  msgid "Show Redirect URL column in post types"
3512
  msgstr ""
3513
 
3514
  #. ID
3515
+ #: inc/admin/admin.php:2685
3516
  msgid "Show canonical URL column in post types"
3517
  msgstr ""
3518
 
3519
  #. ID
3520
+ #: inc/admin/admin.php:2693
3521
  msgid "Show Target Keyword column in post types"
3522
  msgstr ""
3523
 
3524
  #. ID
3525
+ #: inc/admin/admin.php:2717
3526
  msgid "Show total number of words column in post types"
3527
  msgstr ""
3528
 
3529
  #. ID
3530
+ #: inc/admin/admin.php:2725
3531
  msgid "Show W3C validator column in post types"
3532
  msgstr ""
3533
 
3534
  #. ID
3535
+ #: inc/admin/admin.php:2733
3536
  msgid "Show Google Page Speed column in post types"
3537
  msgstr ""
3538
 
3539
  #. ID
3540
+ #: inc/admin/admin.php:2743
3541
  msgid "Show Insights column in post types"
3542
  msgstr ""
3543
 
3544
  #. ID
3545
+ #: inc/admin/admin.php:2760 inc/admin/admin.php:6742
3546
+ msgid "Remove Content Analysis Metabox"
3547
+ msgstr ""
3548
+
3549
+ #. ID
3550
+ #: inc/admin/admin.php:2768
3551
  msgid "Hide Genesis SEO Metabox"
3552
  msgstr ""
3553
 
3554
  #. ID
3555
+ #: inc/admin/admin.php:2776
3556
  msgid "Hide Genesis SEO Settings link"
3557
  msgstr ""
3558
 
3559
  #. ID
3560
+ #: inc/admin/admin.php:2784
3561
  msgid "Hide advice in Structured Data Types metabox"
3562
  msgstr ""
3563
 
3564
  #. ID
3565
+ #: inc/admin/admin.php:2801
3566
  msgid "Block SEO metabox to user roles"
3567
  msgstr ""
3568
 
3569
  #. ID
3570
+ #: inc/admin/admin.php:2809
3571
  msgid "Block Content analysis metabox to user roles"
3572
  msgstr ""
3573
 
3574
+ #. ID
3575
+ #: inc/admin/admin.php:2828
3576
+ msgid "Oxygen Builder compatibility"
3577
+ msgstr ""
3578
+
3579
+ #. ID
3580
+ #: inc/admin/admin.php:2836
3581
+ msgid "Divi Builder compatibility"
3582
+ msgstr ""
3583
+
3584
+ #. ID
3585
+ #: inc/admin/admin.php:2844
3586
+ msgid "WP Bakery Builder compatibility"
3587
+ msgstr ""
3588
+
3589
+ #. ID
3590
+ #: inc/admin/admin.php:2852
3591
+ msgid "Avia Layout Builder compatibility"
3592
+ msgstr ""
3593
+
3594
+ #. ID
3595
+ #: inc/admin/admin.php:2860
3596
+ msgid "Fusion Builder compatibility"
3597
+ msgstr ""
3598
+
3599
+ #: inc/admin/admin.php:2983
3600
  msgid "<p>Customize your title & meta description for homepage</p>"
3601
  msgstr ""
3602
 
3603
+ #: inc/admin/admin.php:2996
3604
  msgid "<p>Customize your titles & metas for Single Custom Post Types</p>"
3605
  msgstr ""
3606
 
3607
+ #: inc/admin/admin.php:3000
3608
  msgid "<p>Customize your metas for all pages</p>"
3609
  msgstr ""
3610
 
3611
+ #: inc/admin/admin.php:3004
3612
  msgid "<p>Customize your metas for all taxonomies archives</p>"
3613
  msgstr ""
3614
 
3615
+ #: inc/admin/admin.php:3008
3616
  msgid "<p>Customize your metas for all archives</p>"
3617
  msgstr ""
3618
 
3619
+ #: inc/admin/admin.php:3015
3620
  msgid "Change this settings"
3621
  msgstr ""
3622
 
3623
+ #: inc/admin/admin.php:3018
3624
  msgid ""
3625
  "To view your sitemap, enable permalinks (not default one), and save settings "
3626
  "to flush them."
3627
  msgstr ""
3628
 
3629
  #. IF NGINX
3630
+ #: inc/admin/admin.php:3024
3631
  msgid ""
3632
  "Your server uses NGINX. If XML Sitemaps doesn't work properly, you need to "
3633
  "add this rule to your configuration:"
3634
  msgstr ""
3635
 
3636
+ #: inc/admin/admin.php:3038
3637
  msgid "Noindex content will not be displayed in Sitemaps."
3638
  msgstr ""
3639
 
3640
+ #: inc/admin/admin.php:3039
3641
  msgid ""
3642
  "If you disable globally this feature (using the blue toggle from above), the "
3643
  "native WordPress XML sitemaps will be re-activated."
3644
  msgstr ""
3645
 
3646
+ #: inc/admin/admin.php:3051
3647
  msgid "Blank sitemap?"
3648
  msgstr ""
3649
 
3650
+ #: inc/admin/admin.php:3052
3651
  msgid "404 error?"
3652
  msgstr ""
3653
 
3654
+ #: inc/admin/admin.php:3053
3655
  msgid "HTML error? Exclude XML and XSL from caching plugins!"
3656
  msgstr ""
3657
 
3658
+ #: inc/admin/admin.php:3055
3659
  msgid "View your sitemap"
3660
  msgstr ""
3661
 
3662
+ #: inc/admin/admin.php:3057
3663
  msgid "Ping Google manually"
3664
  msgstr ""
3665
 
3666
+ #: inc/admin/admin.php:3059
3667
  msgid "Flush permalinks"
3668
  msgstr ""
3669
 
3670
+ #: inc/admin/admin.php:3064
3671
  msgid "<p>Create an HTML Sitemap for your visitors and boost your SEO.</p>"
3672
  msgstr ""
3673
 
3674
+ #: inc/admin/admin.php:3065
3675
  msgid ""
3676
  "<p>Limited to 1,000 posts per post type. You can change the order and "
3677
  "sorting criteria below.</p>"
3678
  msgstr ""
3679
 
3680
+ #: inc/admin/admin.php:3073 inc/admin/admin.php:4279
3681
  msgid "Guide to enable a HTML Sitemap - new window"
3682
  msgstr ""
3683
 
3684
+ #: inc/admin/admin.php:3077
3685
  msgid "<p>Include/Exclude Post Types.</p>"
3686
  msgstr ""
3687
 
3688
+ #: inc/admin/admin.php:3081
3689
  msgid "<p>Include/Exclude Taxonomies.</p>"
3690
  msgstr ""
3691
 
3692
+ #: inc/admin/admin.php:3085
3693
  msgid "<p>Configure Google Knowledge Graph.</p>"
3694
  msgstr ""
3695
 
3696
+ #: inc/admin/admin.php:3086
3697
  msgid "Learn more on Google official website."
3698
  msgstr ""
3699
 
3700
+ #: inc/admin/admin.php:3090
3701
  msgid ""
3702
  "<p>Link your site with your social accounts. Use markup on your website to "
3703
  "add your social profile information to a Google Knowledge panel. Knowledge "
3707
  "network links.</p>"
3708
  msgstr ""
3709
 
3710
+ #: inc/admin/admin.php:3094
3711
  msgid "<p>Manage Open Graph data.</p>"
3712
  msgstr ""
3713
 
3714
+ #: inc/admin/admin.php:3096
3715
  msgid "<p>We generate the <strong>og:image</strong> meta in this order:</p>"
3716
  msgstr ""
3717
 
3718
+ #: inc/admin/admin.php:3100
3719
  msgid "Custom OG Image from SEO metabox"
3720
  msgstr ""
3721
 
3722
+ #: inc/admin/admin.php:3101 inc/admin/admin.php:3115
3723
+ msgid "Post thumbnail / Product category thumbnail"
3724
  msgstr ""
3725
 
3726
+ #: inc/admin/admin.php:3102 inc/admin/admin.php:3116
3727
  msgid "First image of your post content"
3728
  msgstr ""
3729
 
3730
+ #: inc/admin/admin.php:3103
3731
  msgid "Global OG Image set in SEO > Social > Open Graph"
3732
  msgstr ""
3733
 
3734
+ #: inc/admin/admin.php:3108
3735
  msgid "<p>Manage your Twitter card.</p>"
3736
  msgstr ""
3737
 
3738
+ #: inc/admin/admin.php:3110
3739
  msgid ""
3740
  "<p>We generate the <strong>twitter:image</strong> meta in this order:</p>"
3741
  msgstr ""
3742
 
3743
+ #: inc/admin/admin.php:3114
3744
  msgid "Custom Twitter image from SEO metabox"
3745
  msgstr ""
3746
 
3747
+ #: inc/admin/admin.php:3117
3748
  msgid "Global Twitter:image set in SEO > Social > Twitter Card"
3749
  msgstr ""
3750
 
3751
+ #: inc/admin/admin.php:3122
3752
  msgid ""
3753
  "<p>Link your Google Analytics to your website. The tracking code will be "
3754
  "automatically added to your site.</p>"
3755
  msgstr ""
3756
 
3757
+ #: inc/admin/admin.php:3126
3758
  msgid ""
3759
  "<p>Manage user consent for GDPR and customize your cookie bar easily.</p>"
3760
  msgstr ""
3761
 
3762
+ #: inc/admin/admin.php:3127
3763
  msgid ""
3764
  "Works with <strong>Google Analytics</strong> and <strong>Matomo</strong>."
3765
  msgstr ""
3766
 
3767
+ #: inc/admin/admin.php:3131
3768
  msgid "<p>Configure your Google Analytics tracking code.</p>"
3769
  msgstr ""
3770
 
3771
+ #: inc/admin/admin.php:3135
3772
  msgid "<p>Track events in Google Analytics.</p>"
3773
  msgstr ""
3774
 
3775
+ #: inc/admin/admin.php:3139
3776
  msgid ""
3777
  "<p>Configure your Google Analytics custom dimensions. <br>Custom dimensions "
3778
  "and custom metrics are like the default dimensions and metrics in your "
3782
  "account. More info by clicking on the help icon."
3783
  msgstr ""
3784
 
3785
+ #: inc/admin/admin.php:3141
3786
  msgid "Custom dimensions also work with <strong>Matomo</strong> tracking code."
3787
  msgstr ""
3788
 
3789
+ #: inc/admin/admin.php:3149
3790
  msgid "Guide to create custom dimensions in Google Analytics - new window"
3791
  msgstr ""
3792
 
3793
+ #: inc/admin/admin.php:3153
3794
+ msgid "Use Matomo to track your users with privacy in mind."
3795
  msgstr ""
3796
 
3797
+ #: inc/admin/admin.php:3155
3798
  msgid ""
3799
  "Your <strong>Custom Dimensions</strong> will also work with Matomo tracking "
3800
+ "code."
3801
  msgstr ""
3802
 
3803
+ #: inc/admin/admin.php:3159
3804
+ msgid "Image SEO options."
3805
  msgstr ""
3806
 
3807
+ #: inc/admin/admin.php:3163
3808
+ msgid "Advanced SEO options."
3809
  msgstr ""
3810
 
3811
+ #: inc/admin/admin.php:3167
3812
+ msgid "Customize the plugin to fit your needs."
3813
  msgstr ""
3814
 
3815
+ #: inc/admin/admin.php:3171
3816
+ msgid "Manage security for user roles."
3817
+ msgstr ""
3818
+
3819
+ #: inc/admin/admin.php:3175
3820
+ msgid ""
3821
+ "Our <strong>Compatibility Center</strong> makes it easy to integrate "
3822
+ "SEOPress with your favorite tools."
3823
+ msgstr ""
3824
+
3825
+ #: inc/admin/admin.php:3176
3826
+ msgid ""
3827
+ "Even though a lot of things are completely transparent to you and automated, "
3828
+ "sometimes it is necessary to leave the final choice to you."
3829
+ msgstr ""
3830
+
3831
+ #: inc/admin/admin.php:3177
3832
+ msgid ""
3833
+ "<span class=\"dashicons dashicons-info\"></span> <strong>Warning</strong>: "
3834
+ "always test your site after activating one of these options. Running "
3835
+ "shortcodes to automatically generate meta title / description can have side "
3836
+ "effects. Clear your cache if necessary."
3837
+ msgstr ""
3838
+
3839
+ #: inc/admin/admin.php:3185
3840
+ msgid "Learn more about automatic meta descriptions"
3841
+ msgstr ""
3842
+
3843
+ #: inc/admin/admin.php:3197
3844
  msgid "Enter your separator, eg: \"-\""
3845
  msgstr ""
3846
 
3847
+ #: inc/admin/admin.php:3201
3848
  #, php-format
3849
  msgid "Use this separator with %%sep%% in your title and meta description."
3850
  msgstr ""
3851
 
3852
+ #: inc/admin/admin.php:3206
3853
  msgid "My awesome website"
3854
  msgstr ""
3855
 
3856
+ #: inc/admin/admin.php:3218
 
 
 
 
 
 
 
3857
  msgid "This is a cool website about Wookiees"
3858
  msgstr ""
3859
 
3860
+ #: inc/admin/admin.php:3226
3861
  msgid "Looking to edit your blog page?"
3862
  msgstr ""
3863
 
3864
+ #: inc/admin/admin.php:3250 inc/admin/admin.php:3254 inc/admin/admin.php:3256
3865
+ #: inc/admin/admin.php:3261
3866
  msgid "Click to hide any SEO metaboxes / columns for this post type"
3867
  msgstr ""
3868
 
3869
+ #: inc/admin/admin.php:3253 inc/admin/admin.php:3257 inc/admin/admin.php:3260
3870
  msgid "Click to display any SEO metaboxes / columns for this post type"
3871
  msgstr ""
3872
 
3873
+ #: inc/admin/admin.php:3285 inc/admin/admin.php:3434 inc/admin/admin.php:3542
3874
+ #: inc/admin/admin.php:3679 inc/admin/admin.php:3774 inc/admin/admin.php:3839
3875
+ #: inc/admin/admin.php:3904 inc/admin/admin.php:3951
3876
  msgid "Title template"
3877
  msgstr ""
3878
 
3879
+ #: inc/admin/admin.php:3323 inc/admin/admin.php:3453 inc/admin/admin.php:3585
3880
+ #: inc/admin/admin.php:3714 inc/admin/admin.php:3789 inc/admin/admin.php:3854
3881
+ #: inc/admin/admin.php:3919 inc/admin/admin.php:3964
3882
  msgid "Meta description template"
3883
  msgstr ""
3884
 
3885
+ #: inc/admin/admin.php:3348
3886
  msgid ""
3887
  "Do not display this single post type in search engine results "
3888
  "<strong>(noindex)</strong>"
3889
  msgstr ""
3890
 
3891
+ #: inc/admin/admin.php:3353
3892
+ msgid ""
3893
+ "This custom post type is <strong>NOT</strong> excluded from your XML "
3894
+ "sitemaps despite the fact that it is set to <strong>NOINDEX</strong>. We "
3895
+ "recommend that you check this out."
3896
+ msgstr ""
3897
+
3898
+ #: inc/admin/admin.php:3375
3899
  msgid ""
3900
  "Do not follow links for this single post type <strong>(nofollow)</strong>"
3901
  msgstr ""
3902
 
3903
+ #: inc/admin/admin.php:3396
3904
+ msgid ""
3905
+ "Display date in Google search results by adding <code>article:"
3906
+ "published_time</code> and <code>article:modified_time</code> meta?"
3907
+ msgstr ""
3908
+
3909
+ #: inc/admin/admin.php:3398
3910
+ msgid ""
3911
+ "Unchecking this doesn't prevent Google to display post date in search "
3912
+ "results."
3913
  msgstr ""
3914
 
3915
+ #: inc/admin/admin.php:3419
3916
  msgid "Display post thumbnail in Google Custom Search results?"
3917
  msgstr ""
3918
 
3919
+ #: inc/admin/admin.php:3432
3920
  msgid "BuddyPress groups"
3921
  msgstr ""
3922
 
3923
+ #: inc/admin/admin.php:3477
3924
  msgid ""
3925
  "Do not display BuddyPress groups in search engine results <strong>(noindex)</"
3926
  "strong>"
3927
  msgstr ""
3928
 
3929
+ #: inc/admin/admin.php:3505 inc/admin/admin.php:3509 inc/admin/admin.php:3511
3930
+ #: inc/admin/admin.php:3516
3931
  msgid "Click to hide any SEO metaboxes for this taxonomy"
3932
  msgstr ""
3933
 
3934
+ #: inc/admin/admin.php:3508 inc/admin/admin.php:3512 inc/admin/admin.php:3515
3935
  msgid "Click to display any SEO metaboxes for this taxonomy"
3936
  msgstr ""
3937
 
3938
+ #: inc/admin/admin.php:3565
3939
  msgid "Category Title"
3940
  msgstr ""
3941
 
3942
+ #: inc/admin/admin.php:3567
3943
  msgid "Tag Title"
3944
  msgstr ""
3945
 
3946
+ #: inc/admin/admin.php:3602
3947
  msgid "Category Description"
3948
  msgstr ""
3949
 
3950
+ #: inc/admin/admin.php:3604
3951
  msgid "Tag Description"
3952
  msgstr ""
3953
 
3954
+ #: inc/admin/admin.php:3606
3955
  msgid "Term Description"
3956
  msgstr ""
3957
 
3958
+ #: inc/admin/admin.php:3626
3959
  msgid ""
3960
  "Do not display this taxonomy archive in search engine results "
3961
  "<strong>(noindex)</strong>"
3962
  msgstr ""
3963
 
3964
+ #: inc/admin/admin.php:3631
3965
+ msgid ""
3966
+ "This custom taxonomy is <strong>NOT</strong> excluded from your XML sitemaps "
3967
+ "despite the fact that it is set to <strong>NOINDEX</strong>. We recommend "
3968
+ "that you check this out."
3969
+ msgstr ""
3970
+
3971
+ #: inc/admin/admin.php:3653
3972
  msgid ""
3973
  "Do not follow links for this taxonomy archive <strong>(nofollow)</strong>"
3974
  msgstr ""
3975
 
3976
+ #: inc/admin/admin.php:3671
3977
  msgid "See archive"
3978
  msgstr ""
3979
 
3980
+ #: inc/admin/admin.php:3701
3981
  msgid "Post Type Archive Name"
3982
  msgstr ""
3983
 
3984
+ #: inc/admin/admin.php:3739
3985
  msgid ""
3986
  "Do not display this post type archive in search engine results "
3987
  "<strong>(noindex)</strong>"
3988
  msgstr ""
3989
 
3990
+ #: inc/admin/admin.php:3760
3991
  msgid ""
3992
  "Do not follow links for this post type archive <strong>(nofollow)</strong>"
3993
  msgstr ""
3994
 
3995
+ #: inc/admin/admin.php:3772
3996
  msgid "Author archives"
3997
  msgstr ""
3998
 
3999
+ #: inc/admin/admin.php:3829
4000
  msgid "Disable author archives"
4001
  msgstr ""
4002
 
4003
+ #: inc/admin/admin.php:3837 inc/admin/admin.php:3847
4004
  msgid "Date archives"
4005
  msgstr ""
4006
 
4007
+ #: inc/admin/admin.php:3876
4008
  msgid ""
4009
  "Do not display date archives in search engine results <strong>(noindex)</"
4010
  "strong>"
4011
  msgstr ""
4012
 
4013
+ #: inc/admin/admin.php:3894
4014
  msgid "Disable date archives"
4015
  msgstr ""
4016
 
4017
+ #: inc/admin/admin.php:3902
4018
  msgid "Search archives"
4019
  msgstr ""
4020
 
4021
+ #: inc/admin/admin.php:3912
4022
  msgid "Search Keywords"
4023
  msgstr ""
4024
 
4025
+ #: inc/admin/admin.php:3941
4026
  msgid ""
4027
  "Do not display search archives in search engine results <strong>(noindex)</"
4028
  "strong>"
4029
  msgstr ""
4030
 
4031
+ #: inc/admin/admin.php:3949
4032
  msgid "404 archives"
4033
  msgstr ""
4034
 
4035
+ #: inc/admin/admin.php:3989
4036
  msgid ""
4037
  "Do not display all pages of the site in Google search results and do not "
4038
  "display \"Cached\" links in search results."
4039
  msgstr ""
4040
 
4041
+ #: inc/admin/admin.php:3991
4042
  #, php-format
4043
  msgid ""
4044
  "Check also the <strong>\"Search engine visibility\"</strong> setting from "
4045
  "the <a href=\"%s\">WordPress Reading page</a>."
4046
  msgstr ""
4047
 
4048
+ #: inc/admin/admin.php:4011
4049
  msgid "Do not follow links for all pages."
4050
  msgstr ""
4051
 
4052
+ #: inc/admin/admin.php:4031
4053
  msgid ""
4054
  "Do not use Open Directory project metadata for titles or excerpts for all "
4055
  "pages."
4056
  msgstr ""
4057
 
4058
+ #: inc/admin/admin.php:4051
4059
  msgid "Do not index images from the entire site."
4060
  msgstr ""
4061
 
4062
+ #: inc/admin/admin.php:4071
4063
  msgid "Do not display a \"Cached\" link in the Google search results."
4064
  msgstr ""
4065
 
4066
+ #: inc/admin/admin.php:4091
4067
  msgid ""
4068
  "Do not display a description in the Google search results for all pages."
4069
  msgstr ""
4070
 
4071
+ #: inc/admin/admin.php:4111
4072
  msgid ""
4073
  "Prevents Google to display a sitelinks searchbox in search results. Enable "
4074
  "this option will remove the \"Website\" schema from your source code."
4075
  msgstr ""
4076
 
4077
+ #: inc/admin/admin.php:4129
4078
  msgid "Add rel next/prev link in head of paginated archive pages"
4079
  msgstr ""
4080
 
4081
+ #: inc/admin/admin.php:4147
4082
  msgid "Add a \"noindex\" meta robots for all paginated archive pages"
4083
  msgstr ""
4084
 
4085
+ #: inc/admin/admin.php:4149
4086
  msgid "eg: https://example.com/category/my-category/page/2/"
4087
  msgstr ""
4088
 
4089
+ #: inc/admin/admin.php:4175
4090
  msgid "Guide to enable XML Sitemaps - new window"
4091
  msgstr ""
4092
 
4093
+ #: inc/admin/admin.php:4193
4094
  msgid ""
4095
  "Enable Image Sitemaps (standard images, image galleries, featured image, "
4096
  "WooCommerce product images)"
4097
  msgstr ""
4098
 
4099
+ #: inc/admin/admin.php:4195
4100
  msgid "Images in XML sitemaps are visible only from the source code."
4101
  msgstr ""
4102
 
4103
+ #: inc/admin/admin.php:4203
4104
  msgid "Guide to enable XML image sitemaps - new window"
4105
  msgstr ""
4106
 
4107
+ #: inc/admin/admin.php:4222
4108
  msgid "Enable Video Sitemaps"
4109
  msgstr ""
4110
 
4111
+ #: inc/admin/admin.php:4230
4112
  #, php-format
4113
  msgid ""
4114
  "Your video sitemap is empty? Read our guide to learn more about <a href=\"%s"
4115
  "\" target=\"_blank\">adding videos to your sitemap.</a>"
4116
  msgstr ""
4117
 
4118
+ #: inc/admin/admin.php:4232
4119
  msgid "Guide to enable XML video sitemaps - new window"
4120
  msgstr ""
4121
 
4122
+ #: inc/admin/admin.php:4253
4123
  msgid ""
4124
  "Make sure to enable author archive from SEO, titles and metas, archives tab."
4125
  "</a>"
4126
  msgstr ""
4127
 
4128
+ #: inc/admin/admin.php:4319 inc/admin/admin.php:4362
4129
  msgid "Include"
4130
  msgstr ""
4131
 
4132
+ #: inc/admin/admin.php:4322
4133
  msgid ""
4134
  "You should never include attachment post type in your sitemap. Be careful if "
4135
  "you checked this."
4136
  msgstr ""
4137
 
4138
+ #: inc/admin/admin.php:4376
4139
  msgid "eg: 2, 28, 68"
4140
  msgstr ""
4141
 
4142
+ #: inc/admin/admin.php:4380
4143
  msgid "You can also use this shortcode:"
4144
  msgstr ""
4145
 
4146
+ #: inc/admin/admin.php:4384
4147
+ msgid "To include specific custom post types, use the CPT attribute:"
4148
+ msgstr ""
4149
+
4150
+ #: inc/admin/admin.php:4393
4151
  msgid "eg: 13, 8, 38"
4152
  msgstr ""
4153
 
4154
+ #: inc/admin/admin.php:4408
4155
  msgid ""
4156
  "DESC (descending order from highest to lowest values (3, 2, 1; c, b, a))"
4157
  msgstr ""
4158
 
4159
+ #: inc/admin/admin.php:4413
4160
  msgid "ASC (ascending order from lowest to highest values (1, 2, 3; a, b, c))"
4161
  msgstr ""
4162
 
4163
+ #: inc/admin/admin.php:4431
4164
  msgid "Default (date)"
4165
  msgstr ""
4166
 
4167
+ #: inc/admin/admin.php:4441
4168
  msgid "Modified date"
4169
  msgstr ""
4170
 
4171
+ #: inc/admin/admin.php:4446
4172
  msgid "Post ID"
4173
  msgstr ""
4174
 
4175
+ #: inc/admin/admin.php:4451
4176
  msgid "Menu order"
4177
  msgstr ""
4178
 
4179
+ #: inc/admin/admin.php:4470
4180
  msgid "Disable date after each post, page, post type?"
4181
  msgstr ""
4182
 
4183
+ #: inc/admin/admin.php:4488
4184
+ msgid "Remove links from archive pages (eg: Products)"
4185
+ msgstr ""
4186
+
4187
+ #: inc/admin/admin.php:4527
4188
  msgid "eg: Miremont"
4189
  msgstr ""
4190
 
4191
+ #: inc/admin/admin.php:4539
4192
  msgid "Select your logo"
4193
  msgstr ""
4194
 
4195
+ #: inc/admin/admin.php:4543
4196
  msgid "JPG, PNG, and GIF allowed."
4197
  msgstr ""
4198
 
4199
+ #: inc/admin/admin.php:4569
4200
  msgid "eg: +33123456789 (internationalized version required)"
4201
  msgstr ""
4202
 
4203
+ #: inc/admin/admin.php:4584
4204
  msgid "Customer support"
4205
  msgstr ""
4206
 
4207
+ #: inc/admin/admin.php:4589
4208
  msgid "Technical support"
4209
  msgstr ""
4210
 
4211
+ #: inc/admin/admin.php:4594
4212
  msgid "Billing support"
4213
  msgstr ""
4214
 
4215
+ #: inc/admin/admin.php:4599
4216
  msgid "Bill payment"
4217
  msgstr ""
4218
 
4219
+ #: inc/admin/admin.php:4604
4220
  msgid "Sales"
4221
  msgstr ""
4222
 
4223
+ #: inc/admin/admin.php:4609
4224
  msgid "Credit card support"
4225
  msgstr ""
4226
 
4227
+ #: inc/admin/admin.php:4614
4228
  msgid "Emergency"
4229
  msgstr ""
4230
 
4231
+ #: inc/admin/admin.php:4619
4232
  msgid "Baggage tracking"
4233
  msgstr ""
4234
 
4235
+ #: inc/admin/admin.php:4624
4236
  msgid "Roadside assistance"
4237
  msgstr ""
4238
 
4239
+ #: inc/admin/admin.php:4629
4240
  msgid "Package tracking"
4241
  msgstr ""
4242
 
4243
+ #: inc/admin/admin.php:4647 inc/admin/admin.php:5648 inc/admin/admin.php:5674
4244
+ #: inc/admin/admin.php:5700 inc/admin/admin.php:5726 inc/admin/admin.php:5752
4245
  msgid "None"
4246
  msgstr ""
4247
 
4248
+ #: inc/admin/admin.php:4652
4249
  msgid "Toll Free"
4250
  msgstr ""
4251
 
4252
+ #: inc/admin/admin.php:4657
4253
  msgid "Hearing impaired supported"
4254
  msgstr ""
4255
 
4256
+ #: inc/admin/admin.php:4678
4257
  msgid "Twitter Page URL"
4258
  msgstr ""
4259
 
4260
+ #: inc/admin/admin.php:4730
4261
  msgid "Enable OG data"
4262
  msgstr ""
4263
 
4264
+ #: inc/admin/admin.php:4764
4265
  msgid ""
4266
  "Override every <strong>og:image</strong> tag with this default image (except "
4267
  "if a custom og:image has already been set from the SEO metabox)."
4268
  msgstr ""
4269
 
4270
+ #: inc/admin/admin.php:4769
4271
  msgid "Please define a default OG Image from the field above"
4272
  msgstr ""
4273
 
4274
+ #: inc/admin/admin.php:4787
4275
  msgid "WooCommerce Shop Page."
4276
  msgstr ""
4277
 
4278
+ #: inc/admin/admin.php:4805
4279
  msgid "No custom post type to configure."
4280
  msgstr ""
4281
 
4282
+ #: inc/admin/admin.php:4816
4283
  msgid ""
4284
  "One or more Facebook Page IDs that are associated with a URL in order to "
4285
  "enable link editing and instant article publishing."
4286
  msgstr ""
4287
 
4288
+ #: inc/admin/admin.php:4820
4289
  msgid "How do I find my Facebook Page ID?"
4290
  msgstr ""
4291
 
4292
+ #: inc/admin/admin.php:4829
4293
  msgid ""
4294
  "The ID (or comma-separated list for properties that can accept multiple IDs) "
4295
  "of an app, person using the app, or Page Graph API object."
4296
  msgstr ""
4297
 
4298
+ #: inc/admin/admin.php:4840
4299
  msgid ""
4300
  "The Facebook app ID of the site's app. In order to use Facebook Insights you "
4301
  "must add the app ID to your page. Insights lets you view analytics for "
4305
  "\"seopress-help dashicons dashicons-external\"></span>"
4306
  msgstr ""
4307
 
4308
+ #: inc/admin/admin.php:4844
4309
  msgid "How to create a Facebook App ID"
4310
  msgstr ""
4311
 
4312
+ #: inc/admin/admin.php:4858
4313
  msgid "Enable Twitter card"
4314
  msgstr ""
4315
 
4316
+ #: inc/admin/admin.php:4876
4317
  msgid "Use OG if no Twitter Cards"
4318
  msgstr ""
4319
 
4320
+ #: inc/admin/admin.php:4911 seopress.php:357
4321
  msgid "Default"
4322
  msgstr ""
4323
 
4324
+ #: inc/admin/admin.php:4916
4325
  msgid "Large"
4326
  msgstr ""
4327
 
4328
+ #: inc/admin/admin.php:4919
4329
  msgid ""
4330
  "The Summary Card with <strong>Large Image</strong> features a large, full-"
4331
  "width prominent image alongside a tweet. It is designed to give the reader a "
4333
  "website."
4334
  msgstr ""
4335
 
4336
+ #: inc/admin/admin.php:4937
4337
  msgid "Enable Google Analytics tracking (Global Site Tag: gtag.js)"
4338
  msgstr ""
4339
 
4340
+ #: inc/admin/admin.php:4948
4341
  msgid "Enter your Tracking ID (UA-XXXX-XX)"
4342
  msgstr ""
4343
 
4344
+ #: inc/admin/admin.php:4952
4345
  msgid "Find your tracking ID"
4346
  msgstr ""
4347
 
4348
+ #: inc/admin/admin.php:4959
4349
  msgid "Enter your measurement ID (G-XXXXXXXXXX)"
4350
  msgstr ""
4351
 
4352
+ #: inc/admin/admin.php:4959
4353
  msgid "Enter your measurement ID"
4354
  msgstr ""
4355
 
4356
+ #: inc/admin/admin.php:4963
4357
  msgid "Find your measurement ID"
4358
  msgstr ""
4359
 
4360
+ #: inc/admin/admin.php:4976
4361
+ msgid "After the opening body tag (recommended)"
4362
+ msgstr ""
4363
+
4364
+ #: inc/admin/admin.php:4981
4365
+ msgid "Footer"
4366
+ msgstr ""
4367
+
4368
+ #: inc/admin/admin.php:4986
4369
+ msgid "Head (not recommended)"
4370
+ msgstr ""
4371
+
4372
+ #: inc/admin/admin.php:4989
4373
+ msgid ""
4374
+ "Your theme must be compatible with wp_body_open hook introduced in WordPress "
4375
+ "5.2 if \"opening body tag\" option selected."
4376
+ msgstr ""
4377
+
4378
+ #: inc/admin/admin.php:5007
4379
  msgid "Request user's consent for analytics tracking (required by GDPR)"
4380
  msgstr ""
4381
 
4382
+ #: inc/admin/admin.php:5009
4383
  msgid ""
4384
  "<strong>The user must click the Accept button to allow tracking.</strong>"
4385
  msgstr ""
4386
 
4387
+ #: inc/admin/admin.php:5011
4388
  msgid ""
4389
  "User roles excluded from tracking will not see the consent message.<br> If "
4390
  "you use a caching plugin, you have to exclude this JS file in your settings: "
4392
  "js</strong> <br>and this cookie <strong>seopress-user-consent-accept</strong>"
4393
  msgstr ""
4394
 
4395
+ #: inc/admin/admin.php:5019
4396
  msgid "Hook to add custom tracking code with user consent - new window"
4397
  msgstr ""
4398
 
4399
+ #: inc/admin/admin.php:5037
4400
  msgid ""
4401
  "Display and automatically accept the user‘s consent on page load (not fully "
4402
  "GDPR)"
4403
  msgstr ""
4404
 
4405
+ #: inc/admin/admin.php:5039
4406
  msgid "The previous option must be checked to use this."
4407
  msgstr ""
4408
 
4409
+ #: inc/admin/admin.php:5057
4410
+ msgid "Allow user to change its choice about cookies"
4411
+ msgstr ""
4412
+
4413
+ #: inc/admin/admin.php:5069
4414
  msgid "Enter your message (HTML allowed)"
4415
  msgstr ""
4416
 
4417
+ #: inc/admin/admin.php:5069
4418
  msgid "This message will only appear if request user's consent is enabled."
4419
  msgstr ""
4420
 
4421
+ #: inc/admin/admin.php:5078
4422
  msgid "Hook to filter user consent message - new window"
4423
  msgstr ""
4424
 
4425
+ #: inc/admin/admin.php:5080
4426
  msgid "HTML tags allowed: strong, em, br, a href / target"
4427
  msgstr ""
4428
 
4429
+ #: inc/admin/admin.php:5081
4430
  msgid ""
4431
  "Shortcode allowed to get the privacy page set in WordPress settings: "
4432
  "[seopress_privacy_page]"
4433
  msgstr ""
4434
 
4435
+ #: inc/admin/admin.php:5088 inc/functions/options-google-analytics.php:277
4436
  msgid "Accept"
4437
  msgstr ""
4438
 
4439
+ #: inc/admin/admin.php:5088
4440
  msgid "Change the button value"
4441
  msgstr ""
4442
 
4443
+ #: inc/admin/admin.php:5097
4444
  msgid "default: X"
4445
  msgstr ""
4446
 
4447
+ #: inc/admin/admin.php:5097
4448
  msgid "Change the close button value"
4449
  msgstr ""
4450
 
4451
+ #: inc/admin/admin.php:5106
4452
+ msgid "default: Manage cookies"
4453
+ msgstr ""
4454
+
4455
+ #: inc/admin/admin.php:5106
4456
+ msgid "Change the edit button value"
4457
+ msgstr ""
4458
+
4459
+ #: inc/admin/admin.php:5126
4460
  msgid "Default: 30 days before the cookie expiration."
4461
  msgstr ""
4462
 
4463
+ #: inc/admin/admin.php:5139
4464
  msgid "Bottom (default)"
4465
  msgstr ""
4466
 
4467
+ #: inc/admin/admin.php:5144
4468
  msgid "Middle"
4469
  msgstr ""
4470
 
4471
+ #: inc/admin/admin.php:5149
4472
  msgid "Top"
4473
  msgstr ""
4474
 
4475
+ #: inc/admin/admin.php:5167
4476
  msgid "Left"
4477
  msgstr ""
4478
 
4479
+ #: inc/admin/admin.php:5172
4480
  msgid "Center (default)"
4481
  msgstr ""
4482
 
4483
+ #: inc/admin/admin.php:5177
4484
  msgid "Right"
4485
  msgstr ""
4486
 
4487
+ #: inc/admin/admin.php:5189
4488
  msgid "Change the cookie bar width"
4489
  msgstr ""
4490
 
4491
+ #: inc/admin/admin.php:5193
4492
  msgid ""
4493
  "Default unit is Pixels. Add % just after your custom value to use "
4494
  "percentages (eg: 80%)."
4495
  msgstr ""
4496
 
4497
+ #: inc/admin/admin.php:5201
4498
+ msgid "Backdrop"
4499
+ msgstr ""
4500
+
4501
+ #: inc/admin/admin.php:5203
4502
+ msgid "Customize the cookie bar <strong>backdrop</strong>."
4503
+ msgstr ""
4504
+
4505
+ #: inc/admin/admin.php:5211
4506
  msgid "Display a backdrop with the cookie bar"
4507
  msgstr ""
4508
 
4509
+ #: inc/admin/admin.php:5221 inc/admin/admin.php:5235 inc/admin/admin.php:5271
4510
+ #: inc/admin/admin.php:5319
4511
+ msgid "Background color: "
4512
+ msgstr ""
4513
+
4514
+ #: inc/admin/admin.php:5223
4515
  msgid "Change the background color of the backdrop"
4516
  msgstr ""
4517
 
4518
+ #: inc/admin/admin.php:5231
4519
+ msgid "Main settings"
4520
+ msgstr ""
4521
+
4522
+ #: inc/admin/admin.php:5233
4523
+ msgid "Customize the general settings of the <strong>cookie bar</strong>."
4524
+ msgstr ""
4525
+
4526
+ #: inc/admin/admin.php:5238
4527
  msgid "Change the color of the cookie bar background"
4528
  msgstr ""
4529
 
4530
+ #: inc/admin/admin.php:5246 inc/admin/admin.php:5293 inc/admin/admin.php:5341
4531
+ msgid "Text color: "
4532
+ msgstr ""
4533
+
4534
+ #: inc/admin/admin.php:5249
4535
  msgid "Change the color of the cookie bar text"
4536
  msgstr ""
4537
 
4538
+ #: inc/admin/admin.php:5257
4539
+ msgid "Link color: "
4540
+ msgstr ""
4541
+
4542
+ #: inc/admin/admin.php:5260
4543
  msgid "Change the color of the cookie bar link"
4544
  msgstr ""
4545
 
4546
+ #: inc/admin/admin.php:5267
4547
+ msgid "Primary button"
4548
+ msgstr ""
4549
+
4550
+ #: inc/admin/admin.php:5269
4551
+ msgid "Customize the <strong>Accept button</strong>."
4552
+ msgstr ""
4553
+
4554
+ #: inc/admin/admin.php:5274
4555
  msgid "Change the color of the cookie bar button background"
4556
  msgstr ""
4557
 
4558
+ #: inc/admin/admin.php:5282 inc/admin/admin.php:5330
4559
+ msgid "Background color on hover: "
4560
+ msgstr ""
4561
+
4562
+ #: inc/admin/admin.php:5285
4563
  msgid "Change the color of the cookie bar button hover background"
4564
  msgstr ""
4565
 
4566
+ #: inc/admin/admin.php:5296
4567
  msgid "Change the color of the cookie bar button"
4568
  msgstr ""
4569
 
4570
+ #: inc/admin/admin.php:5304 inc/admin/admin.php:5352
4571
+ msgid "Text color on hover: "
4572
+ msgstr ""
4573
+
4574
+ #: inc/admin/admin.php:5307
4575
  msgid "Change the color of the cookie bar button hover"
4576
  msgstr ""
4577
 
4578
+ #: inc/admin/admin.php:5315
4579
+ msgid "Secondary button"
4580
+ msgstr ""
4581
+
4582
+ #: inc/admin/admin.php:5317
4583
+ msgid "Customize the <strong>Close button</strong>."
4584
+ msgstr ""
4585
+
4586
+ #: inc/admin/admin.php:5322
4587
  msgid "Change the color of the cookie bar secondary button background"
4588
  msgstr ""
4589
 
4590
+ #: inc/admin/admin.php:5333
4591
  msgid "Change the color of the cookie bar secondary button hover background"
4592
  msgstr ""
4593
 
4594
+ #: inc/admin/admin.php:5344
4595
  msgid "Change the color of the cookie bar secondary button"
4596
  msgstr ""
4597
 
4598
+ #: inc/admin/admin.php:5355
4599
  msgid "Change the color of the cookie bar secondary button hover"
4600
  msgstr ""
4601
 
4602
+ #: inc/admin/admin.php:5390
4603
  msgid "Enter your Google Optimize container ID"
4604
  msgstr ""
4605
 
4606
+ #: inc/admin/admin.php:5390
4607
  msgid "GTM-XXXXXXX"
4608
  msgstr ""
4609
 
4610
+ #: inc/admin/admin.php:5393
4611
  msgid ""
4612
  "Google Optimize offers A/B testing, website testing & personalization tools."
4613
  msgstr ""
4614
 
4615
+ #: inc/admin/admin.php:5404
4616
  msgid "Enter your Google Ads conversion ID (eg: AW-123456789)"
4617
  msgstr ""
4618
 
4619
+ #: inc/admin/admin.php:5404
4620
  msgid "AW-XXXXXXXXX"
4621
  msgstr ""
4622
 
4623
+ #: inc/admin/admin.php:5415
4624
  msgid "Learn how to find your Google Ads Conversion ID"
4625
  msgstr ""
4626
 
4627
+ #: inc/admin/admin.php:5424
4628
  msgid "Paste your tracking code here like Google Tag Manager (head)"
4629
  msgstr ""
4630
 
4631
+ #: inc/admin/admin.php:5424
4632
  msgid "Additional tracking code field"
4633
  msgstr ""
4634
 
4635
+ #: inc/admin/admin.php:5427
4636
  msgid "This code will be added in the head section of your page."
4637
  msgstr ""
4638
 
4639
+ #: inc/admin/admin.php:5434
4640
  msgid "Paste your tracking code here like Google Tag Manager (body)"
4641
  msgstr ""
4642
 
4643
+ #: inc/admin/admin.php:5434
4644
  msgid "Additional tracking code field added to body"
4645
  msgstr ""
4646
 
4647
+ #: inc/admin/admin.php:5437
4648
  msgid "This code will be added just after the opening body tag of your page."
4649
  msgstr ""
4650
 
4651
+ #: inc/admin/admin.php:5438
4652
  msgid ""
4653
  "You don‘t see your code? Make sure to call <strong>wp_body_open();</strong> "
4654
  "just after the opening body tag in your theme."
4655
  msgstr ""
4656
 
4657
+ #: inc/admin/admin.php:5453
4658
  msgid "Paste your tracking code here (body footer)"
4659
  msgstr ""
4660
 
4661
+ #: inc/admin/admin.php:5453
4662
  msgid "Additional tracking code field added to body footer"
4663
  msgstr ""
4664
 
4665
+ #: inc/admin/admin.php:5456
4666
  msgid "This code will be added just after the closing body tag of your page."
4667
  msgstr ""
4668
 
4669
+ #: inc/admin/admin.php:5472
4670
  msgid ""
4671
  "A remarketing audience is a list of cookies or mobile-advertising IDs that "
4672
  "represents a group of users you want to re-engage because of their "
4673
  "likelihood to convert."
4674
  msgstr ""
4675
 
4676
+ #: inc/admin/admin.php:5495
4677
  msgid ""
4678
  "When a customer of Analytics requests IP address anonymization, Analytics "
4679
  "anonymizes the address as soon as technically feasible at the earliest "
4680
  "possible stage of the collection network."
4681
  msgstr ""
4682
 
4683
+ #: inc/admin/admin.php:5518
4684
  msgid ""
4685
  "Enhanced Link Attribution improves the accuracy of your In-Page Analytics "
4686
  "report by automatically differentiating between multiple links to the same "
4687
  "URL on a single page by using link element IDs."
4688
  msgstr ""
4689
 
4690
+ #: inc/admin/admin.php:5541
4691
  msgid ""
4692
  "Cross domain tracking makes it possible for Analytics to see sessions on two "
4693
  "related sites (such as an ecommerce site and a separate shopping cart site) "
4694
  "as a single session. This is sometimes called site linking."
4695
  msgstr ""
4696
 
4697
+ #: inc/admin/admin.php:5555 inc/admin/admin.php:5890
4698
  msgid "Enter your domains: seopress.org,sub.seopress.org,sub2.seopress.org"
4699
  msgstr ""
4700
 
4701
+ #: inc/admin/admin.php:5589
4702
  msgid "Enable download tracking"
4703
  msgstr ""
4704
 
4705
+ #: inc/admin/admin.php:5600
4706
  msgid "pdf|docx|pptx|zip"
4707
  msgstr ""
4708
 
4709
+ #: inc/admin/admin.php:5604
4710
  msgid "Separate each file type extensions with a pipe \"|\""
4711
  msgstr ""
4712
 
4713
+ #: inc/admin/admin.php:5619
4714
  msgid "Enable affiliate/outbound tracking"
4715
  msgstr ""
4716
 
4717
+ #: inc/admin/admin.php:5630
4718
  msgid "aff|go|out"
4719
  msgstr ""
4720
 
4721
+ #: inc/admin/admin.php:5634
4722
  msgid "Separate each keyword with a pipe \"|\""
4723
  msgstr ""
4724
 
4725
+ #: inc/admin/admin.php:5655 inc/admin/admin.php:5681 inc/admin/admin.php:5707
4726
+ #: inc/admin/admin.php:5733 inc/admin/admin.php:5759
4727
  #, php-format
4728
  msgid "Custom Dimension #%d"
4729
  msgstr ""
4730
 
4731
+ #: inc/admin/admin.php:5779
4732
  msgid "Enable Matomo tracking (Matomo account required)"
4733
  msgstr ""
4734
 
4735
+ #: inc/admin/admin.php:5790
4736
  msgid "Enter \"example\" if you Matomo account URL is \"example.matomo.cloud\""
4737
  msgstr ""
4738
 
4739
+ #: inc/admin/admin.php:5790
4740
  msgid "Matomo Cloud URL"
4741
  msgstr ""
4742
 
4743
+ #: inc/admin/admin.php:5794
4744
  msgid "Enter only the <strong>host</strong> like this example.matomo.cloud"
4745
  msgstr ""
4746
 
4747
+ #: inc/admin/admin.php:5801
4748
  msgid "Enter your site ID here"
4749
  msgstr ""
4750
 
4751
+ #: inc/admin/admin.php:5801
4752
  msgid "Matomo Site ID"
4753
  msgstr ""
4754
 
4755
+ #: inc/admin/admin.php:5805
4756
  msgid ""
4757
  "To find your site ID, go to your <strong>Matomo Cloud account, Websites, "
4758
  "Manage page</strong>. Look at \"Site ID\" on the right part."
4759
  msgstr ""
4760
 
4761
+ #: inc/admin/admin.php:5819
4762
  msgid "Tracking one domain and its subdomains in the same website"
4763
  msgstr ""
4764
 
4765
+ #: inc/admin/admin.php:5821
4766
  msgid ""
4767
  "If one visitor visits x.example.com and y.example.com, they will be counted "
4768
  "as a unique visitor."
4769
  msgstr ""
4770
 
4771
+ #: inc/admin/admin.php:5839
4772
  msgid "Prepend the site domain to the page title when tracking"
4773
  msgstr ""
4774
 
4775
+ #: inc/admin/admin.php:5841
4776
  msgid ""
4777
  "If someone visits the 'About' page on blog.example.com it will be recorded "
4778
  "as 'blog / About'. This is the easiest way to get an overview of your "
4779
  "traffic by sub-domain."
4780
  msgstr ""
4781
 
4782
+ #: inc/admin/admin.php:5879
4783
  msgid ""
4784
  "By default, the visitor ID that identifies a unique visitor is stored in the "
4785
  "browser's first party cookies which can only be accessed by pages on the "
4790
  "Visitor ID."
4791
  msgstr ""
4792
 
4793
+ #: inc/admin/admin.php:5906
4794
  msgid "Enable client side DoNotTrack detection"
4795
  msgstr ""
4796
 
4797
+ #: inc/admin/admin.php:5908
4798
  msgid ""
4799
  "Tracking requests will not be sent if visitors do not wish to be tracked."
4800
  msgstr ""
4801
 
4802
+ #: inc/admin/admin.php:5926
4803
  msgid ""
4804
  "Disables all first party cookies. Existing Matomo cookies for this website "
4805
  "will be deleted on the next page view."
4806
  msgstr ""
4807
 
4808
+ #: inc/admin/admin.php:5944
4809
  msgid "Enabling Download & Outlink tracking"
4810
  msgstr ""
4811
 
4812
+ #: inc/admin/admin.php:5946
4813
  msgid ""
4814
  "By default, any file ending with one of these extensions will be considered "
4815
  "a \"download\" in the Matomo interface: 7z|aac|arc|arj|apk|asf|asx|avi|bin|"
4820
  "\t\ttbz|tbz2|tgz|torrent|txt|wav|wma|wmv|wpd|xls|xml|z|zip"
4821
  msgstr ""
4822
 
4823
+ #: inc/admin/admin.php:5968
4824
  msgid "Disabling all heatmaps and session recordings"
4825
  msgstr ""
4826
 
4827
+ #: inc/admin/admin.php:5986
4828
  msgid "Redirect attachment pages to post parent (or homepage if none)"
4829
  msgstr ""
4830
 
4831
+ #: inc/admin/admin.php:6006
4832
  msgid ""
4833
  "If this option is checked, it will take precedence over the redirection of "
4834
  "attachments to the post's parent."
4835
  msgstr ""
4836
 
4837
+ #: inc/admin/admin.php:6024
4838
  msgid "Remove ?replytocom link in source code"
4839
  msgstr ""
4840
 
4841
+ #: inc/admin/admin.php:6042
4842
  msgid ""
4843
  "When sending an image file, automatically set the title based on the filename"
4844
  msgstr ""
4845
 
4846
+ #: inc/admin/admin.php:6060
4847
  msgid ""
4848
  "When sending an image file, automatically set the alternative text based on "
4849
  "the filename"
4850
  msgstr ""
4851
 
4852
+ #: inc/admin/admin.php:6064
4853
  msgid ""
4854
  "We recommend Image SEO plugin to optimize your image ALT texts and names for "
4855
  "Search Engines using AI and Machine Learning. Starting from just €4.99."
4856
  msgstr ""
4857
 
4858
+ #: inc/admin/admin.php:6084
4859
  msgid "Use the target keywords if not alternative text set for the image"
4860
  msgstr ""
4861
 
4862
+ #: inc/admin/admin.php:6086
4863
  msgid ""
4864
  "This setting will be applied to images without any alt text on frontend "
4865
  "only. This setting is retroactive. If you turn it off, alt texts that were "
4866
  "previously empty will be empty again."
4867
  msgstr ""
4868
 
4869
+ #: inc/admin/admin.php:6104
4870
  msgid ""
4871
  "When sending an image file, automatically set the caption based on the "
4872
  "filename"
4873
  msgstr ""
4874
 
4875
+ #: inc/admin/admin.php:6122
4876
  msgid ""
4877
  "When sending an image file, automatically set the description based on the "
4878
  "filename"
4879
  msgstr ""
4880
 
4881
+ #: inc/admin/admin.php:6140
4882
  msgid "Add TINYMCE editor to term description"
4883
  msgstr ""
4884
 
4885
+ #: inc/admin/admin.php:6158
4886
  msgid "You have to flush your permalinks each time you change this settings"
4887
  msgstr ""
4888
 
4889
+ #: inc/admin/admin.php:6176
4890
  msgid ""
4891
  "You must check this box if the structure of your permalinks DOES NOT contain "
4892
  "a slash at the end (eg: /%postname%)"
4893
  msgstr ""
4894
 
4895
+ #: inc/admin/admin.php:6194
4896
  msgid "Remove WordPress meta generator in source code"
4897
  msgstr ""
4898
 
4899
+ #: inc/admin/admin.php:6212
4900
  msgid ""
4901
  "Remove hentry post class to prevent Google from seeing this as structured "
4902
  "data (schema)"
4903
  msgstr ""
4904
 
4905
+ #: inc/admin/admin.php:6230
4906
  msgid ""
4907
  "Remove comment author URL in comments if the website is filled from profile "
4908
  "page"
4909
  msgstr ""
4910
 
4911
+ #: inc/admin/admin.php:6248
4912
  msgid "Remove website field from comment form to reduce spam"
4913
  msgstr ""
4914
 
4915
+ #: inc/admin/admin.php:6266
4916
  msgid "Remove WordPress shortlink meta tag in source code (eg:"
4917
  msgstr ""
4918
 
4919
+ #: inc/admin/admin.php:6284
4920
  msgid "Remove Windows Live Writer meta tag in source code (eg:"
4921
  msgstr ""
4922
 
4923
+ #: inc/admin/admin.php:6302
4924
  msgid "Remove Really Simple Discovery meta tag in source code (eg:"
4925
  msgstr ""
4926
 
4927
+ #: inc/admin/admin.php:6304
4928
+ msgid ""
4929
+ "WordPress Site Health feature will return a HTTPS warning if you enable this "
4930
+ "option. This is a false positive of course."
4931
+ msgstr ""
4932
+
4933
+ #: inc/admin/admin.php:6315
4934
  msgid "Enter Google meta value site verification"
4935
  msgstr ""
4936
 
4937
+ #: inc/admin/admin.php:6319
4938
  msgid ""
4939
  "If your site is already verified in <strong>Google Search Console</strong>, "
4940
  "you can leave this field empty."
4941
  msgstr ""
4942
 
4943
+ #: inc/admin/admin.php:6326
4944
  msgid "Enter Bing meta value site verification"
4945
  msgstr ""
4946
 
4947
+ #: inc/admin/admin.php:6329
4948
  msgid ""
4949
  "If your site is already verified in <strong>Bing Webmaster tools</strong>, "
4950
  "you can leave this field empty."
4951
  msgstr ""
4952
 
4953
+ #: inc/admin/admin.php:6336
4954
  msgid "Enter Pinterest meta value site verification"
4955
  msgstr ""
4956
 
4957
+ #: inc/admin/admin.php:6345
4958
  msgid "Enter Yandex meta value site verification"
4959
  msgstr ""
4960
 
4961
+ #: inc/admin/admin.php:6361
4962
  msgid "Remove SEO from Admin Bar in backend and frontend"
4963
  msgstr ""
4964
 
4965
+ #: inc/admin/admin.php:6379
4966
  msgid "Remove noindex item from Admin Bar in backend and frontend"
4967
  msgstr ""
4968
 
4969
+ #: inc/admin/admin.php:6396
4970
  msgid "High priority (top)"
4971
  msgstr ""
4972
 
4973
+ #: inc/admin/admin.php:6401
4974
  msgid "Normal priority (default)"
4975
  msgstr ""
4976
 
4977
+ #: inc/admin/admin.php:6406
4978
  msgid "Low priority"
4979
  msgstr ""
4980
 
4981
+ #: inc/admin/admin.php:6425
4982
  msgid "Automatic tab (default)"
4983
  msgstr ""
4984
 
4985
+ #: inc/admin/admin.php:6430
4986
  msgid "Manual tab"
4987
  msgstr ""
4988
 
4989
+ #: inc/admin/admin.php:6450
4990
  msgid "Hide Notifications Center in SEO Dashboard page"
4991
  msgstr ""
4992
 
4993
+ #: inc/admin/admin.php:6468
4994
  msgid "Hide SEO tools in SEO Dashboard page"
4995
  msgstr ""
4996
 
4997
+ #: inc/admin/admin.php:6486
4998
  msgid "Hide Useful Links in SEO dashboard page"
4999
  msgstr ""
5000
 
5001
+ #: inc/admin/admin.php:6504
5002
  msgid "Add title column"
5003
  msgstr ""
5004
 
5005
+ #: inc/admin/admin.php:6522
5006
  msgid "Add meta description column"
5007
  msgstr ""
5008
 
5009
+ #: inc/admin/admin.php:6540
5010
  msgid "Add redirection enable column"
5011
  msgstr ""
5012
 
5013
+ #: inc/admin/admin.php:6558
5014
  msgid "Add redirection URL column"
5015
  msgstr ""
5016
 
5017
+ #: inc/admin/admin.php:6576
5018
  msgid "Add canonical URL column"
5019
  msgstr ""
5020
 
5021
+ #: inc/admin/admin.php:6594
5022
  msgid "Add target keyword column"
5023
  msgstr ""
5024
 
5025
+ #: inc/admin/admin.php:6612
5026
  msgid "Display noindex status"
5027
  msgstr ""
5028
 
5029
+ #: inc/admin/admin.php:6630
5030
  msgid "Display nofollow status"
5031
  msgstr ""
5032
 
5033
+ #: inc/admin/admin.php:6648
5034
  msgid "Display total number of words in content"
5035
  msgstr ""
5036
 
5037
+ #: inc/admin/admin.php:6666
5038
  msgid "Display W3C column to check code quality"
5039
  msgstr ""
5040
 
5041
+ #: inc/admin/admin.php:6685
5042
  msgid "Display Page Speed column to check performances"
5043
  msgstr ""
5044
 
5045
+ #: inc/admin/admin.php:6705
5046
  msgid "Display SEO Insights column to check rankings"
5047
  msgstr ""
5048
 
5049
+ #: inc/admin/admin.php:6724
5050
  msgid ""
5051
  "Display Content Analysis results column (\"Good\" or \"Should be improved\")"
5052
  msgstr ""
5053
 
5054
+ #: inc/admin/admin.php:6760
5055
  msgid "Remove Genesis SEO Metabox"
5056
  msgstr ""
5057
 
5058
+ #: inc/admin/admin.php:6778
5059
  msgid "Remove Genesis SEO link in WP Admin Menu"
5060
  msgstr ""
5061
 
5062
+ #: inc/admin/admin.php:6796
5063
  msgid "Remove the advice if None schema selected"
5064
  msgstr ""
5065
 
5066
+ #: inc/admin/admin.php:6832 inc/admin/admin.php:6865
5067
  msgid ""
5068
  "Hook to filter structured data types metabox call by post type - new window"
5069
  msgstr ""
5070
 
5071
+ #: inc/admin/admin.php:6880
5072
+ msgid "Enable Oxygen Builder compatibility"
5073
+ msgstr ""
5074
+
5075
+ #: inc/admin/admin.php:6882
5076
+ #, php-format
5077
+ msgid ""
5078
+ "Enable automatic meta description with <strong>%%oxygen%%</strong> dynamic "
5079
+ "variable."
5080
+ msgstr ""
5081
+
5082
+ #: inc/admin/admin.php:6900
5083
+ msgid "Enable Divi Builder compatibility"
5084
+ msgstr ""
5085
+
5086
+ #: inc/admin/admin.php:6902
5087
+ #, php-format
5088
+ msgid ""
5089
+ "Enable automatic meta description with <strong>%%divi%%</strong> dynamic "
5090
+ "variable."
5091
+ msgstr ""
5092
+
5093
+ #: inc/admin/admin.php:6920
5094
+ msgid "Enable WP Bakery Builder compatibility"
5095
+ msgstr ""
5096
+
5097
+ #: inc/admin/admin.php:6922
5098
+ #, php-format
5099
+ msgid ""
5100
+ "Enable automatic meta description with <strong>%%wpbakery%%</strong> dynamic "
5101
+ "variable."
5102
+ msgstr ""
5103
+
5104
+ #: inc/admin/admin.php:6940
5105
+ msgid "Enable Avia Layout Builder compatibility"
5106
+ msgstr ""
5107
+
5108
+ #: inc/admin/admin.php:6942
5109
+ #, php-format
5110
+ msgid ""
5111
+ "Enable automatic meta description with <strong>%%aviabuilder%%</strong> "
5112
+ "dynamic variable."
5113
+ msgstr ""
5114
+
5115
+ #: inc/admin/admin.php:6960
5116
+ msgid "Enable Fusion Builder compatibility"
5117
+ msgstr ""
5118
+
5119
+ #: inc/admin/admin.php:6962
5120
+ #, php-format
5121
+ msgid ""
5122
+ "Enable automatic meta description with <strong>%%fusionbuilder%%</strong> "
5123
+ "dynamic variable."
5124
+ msgstr ""
5125
+
5126
  #: inc/admin/adminbar.php:53 inc/admin/adminbar.php:93
5127
+ #: src/Actions/Admin/ManageColumn.php:141
5128
  msgid "noindex is on!"
5129
  msgstr ""
5130
 
5139
  msgid "noindex is off."
5140
  msgstr ""
5141
 
5142
+ #: inc/admin/adminbar.php:105 src/Actions/Admin/ManageColumn.php:147
5143
  msgid "nofollow is on!"
5144
  msgstr ""
5145
 
5165
  "content analysis."
5166
  msgstr ""
5167
 
5168
+ #: inc/admin/ajax.php:116
5169
  msgid "To get your Google snippet preview, publish your post!"
5170
  msgstr ""
5171
 
5172
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:112
5173
  msgid "SEO Title / Description"
5174
  msgstr ""
5175
 
5176
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:140
5177
  msgid "Meta Description"
5178
  msgstr ""
5179
 
5180
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:181
5181
  msgid "SEO Advanced"
5182
  msgstr ""
5183
 
5184
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:199
5185
  msgid ""
5186
  "Do not display this page in search engine results / XML - HTML sitemaps "
5187
  "(noindex)"
5188
  msgstr ""
5189
 
5190
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:210
5191
  msgid "Do not follow links for this page (nofollow)"
5192
  msgstr ""
5193
 
5194
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:221
5195
  msgid ""
5196
  "Do not use Open Directory project metadata for titles or excerpts for this "
5197
  "page (noodp)"
5198
  msgstr ""
5199
 
5200
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:232
5201
  msgid "Do not index images for this page (noimageindex)"
5202
  msgstr ""
5203
 
5204
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:243
5205
  msgid ""
5206
  "Do not display a \"Cached\" link in the Google search results (noarchive)"
5207
  msgstr ""
5208
 
5209
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:254
5210
  msgid ""
5211
  "Do not display a description in search results for this page (nosnippet)"
5212
  msgstr ""
5213
 
5214
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:338
5215
  msgid "SEO Social"
5216
  msgstr ""
5217
 
5218
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:358
5219
  msgid ""
5220
  "<p class=\"elementor-control-field-description\"><span class=\"dashicons "
5221
  "dashicons-external\"></span><a href=\"https://developers.facebook.com/tools/"
5222
  "debug/sharing/?q="
5223
  msgstr ""
5224
 
5225
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:368
5226
  msgid ""
5227
  "<p class=\"elementor-control-field-description\"><strong>Did you know?</"
5228
  "strong> LinkedIn, Instagram and Pinterest use the same social metadata as "
5230
  "p>"
5231
  msgstr ""
5232
 
5233
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:486
5234
  msgid "SEO Redirection"
5235
  msgstr ""
5236
 
5237
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:550
5238
  msgid "SEO Content Analysis"
5239
  msgstr ""
5240
 
5241
+ #: inc/admin/page-builders/elementor/inc/admin/class-document-settings-section.php:562
5242
  msgid ""
5243
  "<p class=\"elementor-control-field-description\">Enter a few keywords for "
5244
  "analysis to help you write optimized content.</p><p class=\"elementor-"
5248
  "affected.</p>"
5249
  msgstr ""
5250
 
5251
+ #: inc/admin/page-builders/elementor/inc/controls/class-social-preview-control.php:49
5252
  msgid ". The closer to 1.91 the better."
5253
  msgstr ""
5254
 
5255
+ #: inc/admin/page-builders/elementor/inc/controls/class-social-preview-control.php:58
5256
  msgid "By"
5257
  msgstr ""
5258
 
5259
+ #: inc/admin/page-builders/elementor/inc/controls/class-social-preview-control.php:73
5260
  msgid ". The closer to 1 the better (with large card, 2 is better)."
5261
  msgstr ""
5262
 
5436
  "is optimized for SEO (NOT Plain)."
5437
  msgstr ""
5438
 
5439
+ #: inc/functions/options-advanced-admin.php:499
5440
  msgid "Enable noindex"
5441
  msgstr ""
5442
 
5443
+ #: inc/functions/options-advanced-admin.php:554
5444
  msgid "Enable index"
5445
  msgstr ""
5446
 
5447
+ #: inc/functions/options-advanced-admin.php:609
5448
  msgid "Enable nofollow"
5449
  msgstr ""
5450
 
5451
+ #: inc/functions/options-advanced-admin.php:663
5452
  msgid "Enable follow"
5453
  msgstr ""
5454
 
5455
+ #: inc/functions/options-advanced-admin.php:712
5456
  msgid "Enable redirection"
5457
  msgstr ""
5458
 
5459
+ #: inc/functions/options-advanced-admin.php:753
5460
  msgid "Disable redirection"
5461
  msgstr ""
5462
 
5463
+ #: inc/functions/options-advanced-admin.php:805
5464
+ #: src/Actions/Admin/ManageColumn.php:48
5465
  msgid "Title tag"
5466
  msgstr ""
5467
 
5468
+ #: inc/functions/options-advanced-admin.php:829
5469
+ #: src/Actions/Admin/ManageColumn.php:60
5470
  msgid "Canonical"
5471
  msgstr ""
5472
 
5473
+ #: inc/functions/options-advanced-admin.php:989
5474
  msgid "Description"
5475
  msgstr ""
5476
 
5477
+ #: inc/functions/options-advanced-admin.php:997
5478
  msgid ""
5479
  "The description is not prominent by default; however, some themes may show "
5480
  "it."
5481
  msgstr ""
5482
 
5483
+ #: inc/functions/options-google-analytics.php:262
5484
  msgid ""
5485
  "By visiting our site, you agree to our privacy policy regarding cookies, "
5486
+ "tracking statistics, etc.&nbsp;<a href=\"[seopress_privacy_page]\">Read "
5487
+ "more</a>"
5488
  msgstr ""
5489
 
5490
+ #: inc/functions/options-google-analytics.php:264
5491
  msgid ""
5492
  "By visiting our site, you agree to our privacy policy regarding cookies, "
5493
  "tracking statistics, etc."
5494
  msgstr ""
5495
 
5496
+ #: inc/functions/options-google-analytics.php:283
5497
  msgid "X"
5498
  msgstr ""
5499
 
5500
+ #: inc/functions/options-google-analytics.php:306
5501
+ msgid "Manage cookies"
5502
+ msgstr ""
5503
+
5504
+ #: inc/functions/options-google-analytics.php:902
5505
  #: inc/functions/options-matomo.php:223
5506
  msgid "Authors"
5507
  msgstr ""
5508
 
5509
+ #: inc/functions/options-google-analytics.php:921
5510
  #: inc/functions/options-matomo.php:237
5511
  msgid "Categories"
5512
  msgstr ""
5513
 
5514
+ #: inc/functions/options-google-analytics.php:947
5515
  #: inc/functions/options-matomo.php:257
5516
  msgid "Tags"
5517
  msgstr ""
5518
 
5519
+ #: inc/functions/options-google-analytics.php:961
5520
  #: inc/functions/options-matomo.php:266
5521
  msgid "Post types"
5522
  msgstr ""
5523
 
5524
+ #: inc/functions/options-google-analytics.php:975
5525
  #: inc/functions/options-matomo.php:275
5526
  msgid "Connected users"
5527
  msgstr ""
5528
 
5529
+ #: inc/functions/options-import-export.php:60
5530
+ #: inc/functions/options-import-export.php:439
5531
  msgid "Please upload a valid .json file"
5532
  msgstr ""
5533
 
5534
+ #: inc/functions/options-import-export.php:65
5535
+ #: inc/functions/options-import-export.php:137
5536
+ #: inc/functions/options-import-export.php:241
5537
+ #: inc/functions/options-import-export.php:443
5538
+ #: inc/functions/options-import-export.php:512
5539
  msgid "Please upload a file to import"
5540
  msgstr ""
5541
 
5542
+ #: inc/functions/options-import-export.php:133
5543
+ #: inc/functions/options-import-export.php:237
5544
  msgid "Please upload a valid .csv file"
5545
  msgstr ""
5546
 
5547
+ #: inc/functions/options-import-export.php:141
5548
  msgid "Please choose a separator"
5549
  msgstr ""
5550
 
5551
+ #: inc/functions/options-import-export.php:150
5552
  msgid "Invalid separator"
5553
  msgstr ""
5554
 
5555
+ #: inc/functions/options-import-export.php:508
5556
  msgid "Please upload a valid .txt file"
5557
  msgstr ""
5558
 
5575
  msgstr ""
5576
 
5577
  #. translators: %d current page (eg: 2) %2$d total number of pages (eg: 30)
5578
+ #: inc/functions/variables/dynamic-variables.php:74 src/Tags/Page.php:31
5579
  #, php-format
5580
  msgid "Page %d of %2$d"
5581
  msgstr ""
5774
  msgid "Did you mean %s?"
5775
  msgstr ""
5776
 
5777
+ #: seopress.php:235
5778
  msgid "has been successfully updated!"
5779
  msgstr ""
5780
 
5781
+ #: seopress.php:355
5782
  msgid "Clear"
5783
  msgstr ""
5784
 
5785
+ #: seopress.php:356
5786
  msgid "Clear color"
5787
  msgstr ""
5788
 
5789
+ #: seopress.php:358
5790
  msgid "Select default color"
5791
  msgstr ""
5792
 
5793
+ #: seopress.php:359
5794
  msgid "Select Color"
5795
  msgstr ""
5796
 
5797
+ #: seopress.php:360
5798
  msgid "Color value"
5799
  msgstr ""
5800
 
5801
+ #: seopress.php:531
5802
  msgid "You like SEOPress? Don't forget to rate it 5 stars!"
5803
  msgstr ""
5804
 
5805
+ #: seopress.php:593
5806
  msgid "Docs"
5807
  msgstr ""
5808
 
5809
+ #: seopress.php:594
5810
  msgid "Configuration Wizard"
5811
  msgstr ""
5812
 
5813
+ #: seopress.php:596
5814
  msgid "GO PRO!"
5815
  msgstr ""
5816
 
5817
+ #: seopress.php:1352
5818
  msgid "Follow us:"
5819
  msgstr ""
5820
 
5821
+ #: seopress.php:1359
5822
  msgid "Like our Facebook page"
5823
  msgstr ""
5824
 
5825
+ #: seopress.php:1371
5826
  msgid "Watch our guided tour videos to learn more about SEOPress"
5827
  msgstr ""
5828
 
5829
+ #: seopress.php:1383
5830
  msgid "Read our blog posts about SEO concepts, tutorials and more"
5831
  msgstr ""
5832
 
5833
+ #: seopress.php:1395
5834
  msgid "The off side of SEOPress"
5835
  msgstr ""
5836
 
5837
+ #: src/Actions/Admin/ManageColumn.php:51
5838
  msgid "Meta Desc."
5839
  msgstr ""
5840
 
5841
+ #: src/Actions/Admin/ManageColumn.php:54
5842
  msgid "Redirect?"
5843
  msgstr ""
5844
 
5845
+ #: src/Actions/Admin/ManageColumn.php:63
5846
  msgid "Target Kw"
5847
  msgstr ""
5848
 
5849
+ #: src/Actions/Admin/ManageColumn.php:66
5850
  msgid "noindex?"
5851
  msgstr ""
5852
 
5853
+ #: src/Actions/Admin/ManageColumn.php:69
5854
  msgid "nofollow?"
5855
  msgstr ""
5856
 
5857
+ #: src/Actions/Admin/ManageColumn.php:72
5858
  msgid "Score"
5859
  msgstr ""
5860
 
5861
+ #: src/Actions/Admin/ManageColumn.php:75
5862
  msgid "Words"
5863
  msgstr ""
5864
 
5865
+ #: src/Actions/Admin/ManageColumn.php:78
5866
  msgid "W3C check"
5867
  msgstr ""
5868
 
5869
+ #: src/Actions/Admin/ManageColumn.php:81
5870
  msgid "Page Speed"
5871
  msgstr ""
5872
 
5873
+ #: src/Actions/Admin/ManageColumn.php:160
5874
  msgid "Check code quality of this page"
5875
  msgstr ""
5876
 
5877
+ #: src/Actions/Admin/ManageColumn.php:164
5878
  msgid "Analyze this page with Google Page Speed"
5879
  msgstr ""
5880
 
5881
+ #: src/Actions/Admin/ManageColumn.php:175
5882
  #: src/Services/ContentAnalysis/RenderContentAnalysis.php:26
5883
  msgid "Good"
5884
  msgstr ""
5885
 
5886
+ #: src/Actions/Admin/ManageColumn.php:180
5887
  #: src/Services/ContentAnalysis/RenderContentAnalysis.php:23
5888
  msgid "Should be improved"
5889
  msgstr ""
5890
 
5891
+ #: src/Actions/Admin/ManageColumn.php:221
5892
  msgid "Insights from these keywords:"
5893
  msgstr ""
5894
 
5895
  #. Average position
5896
+ #: src/Actions/Admin/ManageColumn.php:227
5897
  msgid "Average position: "
5898
  msgstr ""
5899
 
5900
  #. Latest position
5901
+ #: src/Actions/Admin/ManageColumn.php:253
5902
  msgid "Latest position: "
5903
  msgstr ""
5904
 
5905
  #. 404
5906
+ #: src/Actions/Options/Init.php:261
5907
  msgid "404 - Page not found"
5908
  msgstr ""
5909
 
5951
  msgid "Outbound Links"
5952
  msgstr ""
5953
 
5954
+ #: src/Helpers/ContentAnalysis.php:83
5955
+ msgid "Inbound Links"
5956
+ msgstr ""
5957
+
5958
+ #: src/Helpers/OpeningHoursHelper.php:12
5959
+ msgid "Monday"
5960
+ msgstr ""
5961
+
5962
+ #: src/Helpers/OpeningHoursHelper.php:13
5963
+ msgid "Tuesday"
5964
+ msgstr ""
5965
+
5966
+ #: src/Helpers/OpeningHoursHelper.php:14
5967
+ msgid "Wednesday"
5968
+ msgstr ""
5969
+
5970
+ #: src/Helpers/OpeningHoursHelper.php:15
5971
+ msgid "Thursday"
5972
+ msgstr ""
5973
+
5974
+ #: src/Helpers/OpeningHoursHelper.php:16
5975
+ msgid "Friday"
5976
+ msgstr ""
5977
+
5978
+ #: src/Helpers/OpeningHoursHelper.php:17
5979
+ msgid "Saturday"
5980
+ msgstr ""
5981
+
5982
+ #: src/Helpers/OpeningHoursHelper.php:18
5983
+ msgid "Sunday"
5984
+ msgstr ""
5985
+
5986
  #: src/Services/ContentAnalysis/GetContent.php:21
5987
  msgid "We found these schemas in the source code of this page:"
5988
  msgstr ""
6071
  msgid "You should add one of your target keyword in your permalink."
6072
  msgstr ""
6073
 
6074
+ #. H1
6075
+ #: src/Services/ContentAnalysis/GetContent.php:170
6076
  msgid "H1 (Heading 1)"
6077
  msgstr ""
6078
 
6079
+ #: src/Services/ContentAnalysis/GetContent.php:178
6080
  msgid "Target keywords were found in Heading 1 (H1)."
6081
  msgstr ""
6082
 
6083
+ #: src/Services/ContentAnalysis/GetContent.php:187
6084
+ #: src/Services/ContentAnalysis/GetContent.php:226
6085
+ #: src/Services/ContentAnalysis/GetContent.php:247
6086
+ #: src/Services/ContentAnalysis/GetContent.php:282
6087
+ #: src/Services/ContentAnalysis/GetContent.php:328
6088
  #, php-format
6089
  msgid "%s was found %d times."
6090
  msgstr ""
6091
 
6092
+ #: src/Services/ContentAnalysis/GetContent.php:192
6093
  #, php-format
6094
  msgid "We found %d Heading 1 (H1) in your content."
6095
  msgstr ""
6096
 
6097
+ #: src/Services/ContentAnalysis/GetContent.php:193
6098
  msgid ""
6099
  "You should not use more than one H1 heading in your post content. The rule "
6100
  "is simple: only one H1 for each web page. It is better for both SEO and "
6101
  "accessibility. Below, the list:"
6102
  msgstr ""
6103
 
6104
+ #: src/Services/ContentAnalysis/GetContent.php:206
6105
+ msgid ""
6106
+ "No Heading 1 (H1) found in your content. This is required for both SEO and "
6107
+ "Acessibility!"
6108
+ msgstr ""
6109
+
6110
  #: src/Services/ContentAnalysis/GetContent.php:209
6111
+ msgid "None of your target keywords were found in Heading 1 (H1)."
6112
+ msgstr ""
6113
+
6114
+ #. H2
6115
+ #: src/Services/ContentAnalysis/GetContent.php:216
6116
  msgid "H2 (Heading 2)"
6117
  msgstr ""
6118
 
6119
+ #: src/Services/ContentAnalysis/GetContent.php:218
6120
  msgid "Target keywords were found in Heading 2 (H2)."
6121
  msgstr ""
6122
 
6123
+ #: src/Services/ContentAnalysis/GetContent.php:230
6124
  msgid "None of your target keywords were found in Heading 2 (H2)."
6125
  msgstr ""
6126
 
6127
  #. H3
6128
+ #: src/Services/ContentAnalysis/GetContent.php:237
6129
  msgid "H3 (Heading 3)"
6130
  msgstr ""
6131
 
6132
+ #: src/Services/ContentAnalysis/GetContent.php:239
6133
  msgid "Target keywords were found in Heading 3 (H3)."
6134
  msgstr ""
6135
 
6136
+ #: src/Services/ContentAnalysis/GetContent.php:251
6137
  msgid "None of your target keywords were found in Heading 3 (H3)."
6138
  msgstr ""
6139
 
6140
+ #: src/Services/ContentAnalysis/GetContent.php:274
6141
  msgid "Target keywords were found in the Meta Title."
6142
  msgstr ""
6143
 
6144
+ #: src/Services/ContentAnalysis/GetContent.php:288
6145
  msgid "None of your target keywords were found in the Meta Title."
6146
  msgstr ""
6147
 
6148
+ #: src/Services/ContentAnalysis/GetContent.php:293
6149
  msgid "Your custom title is too long."
6150
  msgstr ""
6151
 
6152
+ #: src/Services/ContentAnalysis/GetContent.php:296
6153
  msgid "The length of your title is correct"
6154
  msgstr ""
6155
 
6156
+ #: src/Services/ContentAnalysis/GetContent.php:301
6157
  msgid ""
6158
  "No custom title is set for this post. If the global meta title suits you, "
6159
  "you can ignore this recommendation."
6160
  msgstr ""
6161
 
6162
+ #: src/Services/ContentAnalysis/GetContent.php:320
6163
  msgid "Target keywords were found in the Meta description."
6164
  msgstr ""
6165
 
6166
+ #: src/Services/ContentAnalysis/GetContent.php:334
6167
  msgid "None of your target keywords were found in the Meta description."
6168
  msgstr ""
6169
 
6170
+ #: src/Services/ContentAnalysis/GetContent.php:339
6171
  msgid "You custom meta description is too long."
6172
  msgstr ""
6173
 
6174
+ #: src/Services/ContentAnalysis/GetContent.php:342
6175
  msgid "The length of your meta description is correct"
6176
  msgstr ""
6177
 
6178
+ #: src/Services/ContentAnalysis/GetContent.php:347
6179
  msgid ""
6180
  "No custom meta description is set for this post. If the global meta "
6181
  "description suits you, you can ignore this recommendation."
6182
  msgstr ""
6183
 
6184
+ #: src/Services/ContentAnalysis/GetContent.php:364
6185
  msgid "Open Graph Title"
6186
  msgstr ""
6187
 
6188
+ #: src/Services/ContentAnalysis/GetContent.php:373
6189
  #, php-format
6190
  msgid "We found %d og:title in your content."
6191
  msgstr ""
6192
 
6193
+ #: src/Services/ContentAnalysis/GetContent.php:374
6194
  msgid ""
6195
  "You should not use more than one og:title in your post content to avoid "
6196
  "conflicts when sharing on social networks. Facebook will take the last og:"
6197
  "title tag from your source code. Below, the list:"
6198
  msgstr ""
6199
 
6200
+ #: src/Services/ContentAnalysis/GetContent.php:377
6201
  msgid "Your Open Graph Title tag is empty!"
6202
  msgstr ""
6203
 
6204
+ #: src/Services/ContentAnalysis/GetContent.php:379
6205
  msgid "We found an Open Graph Title tag in your source code."
6206
  msgstr ""
6207
 
6208
+ #: src/Services/ContentAnalysis/GetContent.php:391
6209
  msgid "Your Open Graph Title is missing!"
6210
  msgstr ""
6211
 
6212
  #. og:description
6213
+ #: src/Services/ContentAnalysis/GetContent.php:395
6214
  msgid "Open Graph Description"
6215
  msgstr ""
6216
 
6217
+ #: src/Services/ContentAnalysis/GetContent.php:404
6218
  #, php-format
6219
  msgid "We found %d og:description in your content."
6220
  msgstr ""
6221
 
6222
+ #: src/Services/ContentAnalysis/GetContent.php:405
6223
  msgid ""
6224
  "You should not use more than one og:description in your post content to "
6225
  "avoid conflicts when sharing on social networks. Facebook will take the last "
6226
  "og:description tag from your source code. Below, the list:"
6227
  msgstr ""
6228
 
6229
+ #: src/Services/ContentAnalysis/GetContent.php:408
6230
  msgid "Your Open Graph Description tag is empty!"
6231
  msgstr ""
6232
 
6233
+ #: src/Services/ContentAnalysis/GetContent.php:410
6234
  msgid "We found an Open Graph Description tag in your source code."
6235
  msgstr ""
6236
 
6237
+ #: src/Services/ContentAnalysis/GetContent.php:422
6238
  msgid "Your Open Graph Description is missing!"
6239
  msgstr ""
6240
 
6241
  #. og:image
6242
+ #: src/Services/ContentAnalysis/GetContent.php:426
6243
  msgid "Open Graph Image"
6244
  msgstr ""
6245
 
6246
+ #: src/Services/ContentAnalysis/GetContent.php:434
6247
  #, php-format
6248
  msgid "We found %d og:image in your content."
6249
  msgstr ""
6250
 
6251
+ #: src/Services/ContentAnalysis/GetContent.php:440
6252
  msgid "Your Open Graph Image tag is empty!"
6253
  msgstr ""
6254
 
6255
+ #: src/Services/ContentAnalysis/GetContent.php:452
6256
  msgid "Your Open Graph Image is missing!"
6257
  msgstr ""
6258
 
6259
  #. og:url
6260
+ #: src/Services/ContentAnalysis/GetContent.php:456
6261
  msgid "Open Graph URL"
6262
  msgstr ""
6263
 
6264
+ #: src/Services/ContentAnalysis/GetContent.php:465
6265
  #, php-format
6266
  msgid "We found %d og:url in your content."
6267
  msgstr ""
6268
 
6269
+ #: src/Services/ContentAnalysis/GetContent.php:466
6270
  msgid ""
6271
  "You should not use more than one og:url in your post content to avoid "
6272
  "conflicts when sharing on social networks. Facebook will take the last og:"
6273
  "url tag from your source code. Below, the list:"
6274
  msgstr ""
6275
 
6276
+ #: src/Services/ContentAnalysis/GetContent.php:469
6277
  msgid "Your Open Graph URL tag is empty!"
6278
  msgstr ""
6279
 
6280
+ #: src/Services/ContentAnalysis/GetContent.php:471
6281
  msgid "We found an Open Graph URL tag in your source code."
6282
  msgstr ""
6283
 
6284
+ #: src/Services/ContentAnalysis/GetContent.php:483
6285
  msgid "Your Open Graph URL is missing!"
6286
  msgstr ""
6287
 
6288
  #. og:site_name
6289
+ #: src/Services/ContentAnalysis/GetContent.php:487
6290
  msgid "Open Graph Site Name"
6291
  msgstr ""
6292
 
6293
+ #: src/Services/ContentAnalysis/GetContent.php:496
6294
  #, php-format
6295
  msgid "We found %d og:site_name in your content."
6296
  msgstr ""
6297
 
6298
+ #: src/Services/ContentAnalysis/GetContent.php:497
6299
  msgid ""
6300
  "You should not use more than one og:site_name in your post content to avoid "
6301
  "conflicts when sharing on social networks. Facebook will take the last og:"
6302
  "site_name tag from your source code. Below, the list:"
6303
  msgstr ""
6304
 
6305
+ #: src/Services/ContentAnalysis/GetContent.php:500
6306
  msgid "Your Open Graph Site Name tag is empty!"
6307
  msgstr ""
6308
 
6309
+ #: src/Services/ContentAnalysis/GetContent.php:502
6310
  msgid "We found an Open Graph Site Name tag in your source code."
6311
  msgstr ""
6312
 
6313
+ #: src/Services/ContentAnalysis/GetContent.php:514
6314
  msgid "Your Open Graph Site Name is missing!"
6315
  msgstr ""
6316
 
6317
+ #: src/Services/ContentAnalysis/GetContent.php:527
6318
  #, php-format
6319
  msgid "We found %d twitter:title in your content."
6320
  msgstr ""
6321
 
6322
+ #: src/Services/ContentAnalysis/GetContent.php:528
6323
  msgid ""
6324
  "You should not use more than one twitter:title in your post content to avoid "
6325
  "conflicts when sharing on social networks. Twitter will take the last "
6326
  "twitter:title tag from your source code. Below, the list:"
6327
  msgstr ""
6328
 
6329
+ #: src/Services/ContentAnalysis/GetContent.php:531
6330
  msgid "Your Twitter Title tag is empty!"
6331
  msgstr ""
6332
 
6333
+ #: src/Services/ContentAnalysis/GetContent.php:533
6334
  msgid "We found a Twitter Title tag in your source code."
6335
  msgstr ""
6336
 
6337
+ #: src/Services/ContentAnalysis/GetContent.php:545
6338
  msgid "Your Twitter Title is missing!"
6339
  msgstr ""
6340
 
6341
  #. twitter:description
6342
+ #: src/Services/ContentAnalysis/GetContent.php:549
6343
  msgid "Twitter Description"
6344
  msgstr ""
6345
 
6346
+ #: src/Services/ContentAnalysis/GetContent.php:558
6347
  #, php-format
6348
  msgid "We found %d twitter:description in your content."
6349
  msgstr ""
6350
 
6351
+ #: src/Services/ContentAnalysis/GetContent.php:559
6352
  msgid ""
6353
  "You should not use more than one twitter:description in your post content to "
6354
  "avoid conflicts when sharing on social networks. Twitter will take the last "
6355
  "twitter:description tag from your source code. Below, the list:"
6356
  msgstr ""
6357
 
6358
+ #: src/Services/ContentAnalysis/GetContent.php:562
6359
  msgid "Your Twitter Description tag is empty!"
6360
  msgstr ""
6361
 
6362
+ #: src/Services/ContentAnalysis/GetContent.php:564
6363
  msgid "We found a Twitter Description tag in your source code."
6364
  msgstr ""
6365
 
6366
+ #: src/Services/ContentAnalysis/GetContent.php:576
6367
  msgid "Your Twitter Description is missing!"
6368
  msgstr ""
6369
 
6370
  #. twitter:image
6371
+ #: src/Services/ContentAnalysis/GetContent.php:580
6372
  msgid "Twitter Image"
6373
  msgstr ""
6374
 
6375
+ #: src/Services/ContentAnalysis/GetContent.php:588
6376
  #, php-format
6377
  msgid "We found %d twitter:image in your content."
6378
  msgstr ""
6379
 
6380
+ #: src/Services/ContentAnalysis/GetContent.php:594
6381
  msgid "Your Twitter Image tag is empty!"
6382
  msgstr ""
6383
 
6384
+ #: src/Services/ContentAnalysis/GetContent.php:606
6385
  msgid "Your Twitter Image is missing!"
6386
  msgstr ""
6387
 
6388
+ #: src/Services/ContentAnalysis/GetContent.php:630
6389
  #, php-format
6390
  msgid ""
6391
  "We found %s meta robots in your page. There is probably something wrong with "
6392
  "your theme!"
6393
  msgstr ""
6394
 
6395
+ #: src/Services/ContentAnalysis/GetContent.php:635
6396
  msgid "noindex is on! Search engines can't index this page."
6397
  msgstr ""
6398
 
6399
+ #: src/Services/ContentAnalysis/GetContent.php:637
6400
  msgid "noindex is off. Search engines will index this page."
6401
  msgstr ""
6402
 
6403
+ #: src/Services/ContentAnalysis/GetContent.php:642
6404
  msgid "nofollow is on! Search engines can't follow your links on this page."
6405
  msgstr ""
6406
 
6407
+ #: src/Services/ContentAnalysis/GetContent.php:644
6408
  msgid "nofollow is off. Search engines will follow links on this page."
6409
  msgstr ""
6410
 
6411
+ #: src/Services/ContentAnalysis/GetContent.php:651
6412
  msgid "noarchive is on! Search engines will not cache your page."
6413
  msgstr ""
6414
 
6415
+ #: src/Services/ContentAnalysis/GetContent.php:653
6416
  msgid "noarchive is off. Search engines will probably cache your page."
6417
  msgstr ""
6418
 
6419
+ #: src/Services/ContentAnalysis/GetContent.php:660
6420
  msgid ""
6421
  "nosnippet is on! Search engines will not display a snippet of this page in "
6422
  "search results."
6423
  msgstr ""
6424
 
6425
+ #: src/Services/ContentAnalysis/GetContent.php:662
6426
  msgid ""
6427
  "nosnippet is off. Search engines will display a snippet of this page in "
6428
  "search results."
6429
  msgstr ""
6430
 
6431
+ #: src/Services/ContentAnalysis/GetContent.php:665
6432
  msgid ""
6433
  "We found no meta robots on this page. It means, your page is index,follow. "
6434
  "Search engines will index it, and follow links. "
6435
  msgstr ""
6436
 
6437
+ #: src/Services/ContentAnalysis/GetContent.php:674
6438
  msgid ""
6439
  "noimageindex is on! Google will not index your images on this page (but if "
6440
  "someone makes a direct link to one of your image in this page, it will be "
6441
  "indexed)."
6442
  msgstr ""
6443
 
6444
+ #: src/Services/ContentAnalysis/GetContent.php:676
6445
+ #: src/Services/ContentAnalysis/GetContent.php:688
6446
  msgid "noimageindex is off. Google will index the images on this page."
6447
  msgstr ""
6448
 
6449
+ #: src/Services/ContentAnalysis/GetContent.php:683
6450
  msgid ""
6451
  "nositelinkssearchbox is on! Google will not display a sitelinks searchbox in "
6452
  "search results."
6453
  msgstr ""
6454
 
6455
+ #: src/Services/ContentAnalysis/GetContent.php:685
6456
+ #: src/Services/ContentAnalysis/GetContent.php:690
6457
  msgid ""
6458
  "nositelinkssearchbox is off. Google will probably display a sitelinks "
6459
  "searchbox in search results."
6460
  msgstr ""
6461
 
6462
+ #: src/Services/ContentAnalysis/GetContent.php:713
6463
  msgid ""
6464
  "No alternative text found for these images. Alt tags are important for both "
6465
  "SEO and accessibility. Edit your images using the media library or your "
6466
  "favorite page builder and fill in alternative text fields."
6467
  msgstr ""
6468
 
6469
+ #: src/Services/ContentAnalysis/GetContent.php:724
6470
  msgid "All alternative tags are filled in. Good work!"
6471
  msgstr ""
6472
 
6473
+ #: src/Services/ContentAnalysis/GetContent.php:731
6474
  msgid ""
6475
  "We could not find any image in your content. Content with media is a plus "
6476
  "for your SEO."
6477
  msgstr ""
6478
 
6479
+ #: src/Services/ContentAnalysis/GetContent.php:748
6480
  #, php-format
6481
  msgid ""
6482
  "We found %d links with nofollow attribute in your page. Do not overuse "
6483
  "nofollow attribute in links. Below, the list:"
6484
  msgstr ""
6485
 
6486
+ #: src/Services/ContentAnalysis/GetContent.php:759
6487
  msgid "This page doesn't have any nofollow links."
6488
  msgstr ""
6489
 
6490
+ #: src/Services/ContentAnalysis/GetContent.php:773
6491
  msgid ""
6492
  "Internet is built on the principle of hyperlink. It is therefore perfectly "
6493
  "normal to make links between different websites. However, avoid making links "
6495
  "site, add the attribute \"nofollow\" to your link."
6496
  msgstr ""
6497
 
6498
+ #: src/Services/ContentAnalysis/GetContent.php:777
6499
  #, php-format
6500
  msgid "We found %s outbound links in your page. Below, the list:"
6501
  msgstr ""
6502
 
6503
+ #: src/Services/ContentAnalysis/GetContent.php:787
6504
  msgid "This page doesn't have any outbound links."
6505
  msgstr ""
6506
 
6507
+ #: src/Services/ContentAnalysis/GetContent.php:802
6508
+ msgid ""
6509
+ "Internal linking is important for SEO and user experience. Always try to "
6510
+ "link your content together, with quality link anchors."
6511
+ msgstr ""
6512
+
6513
+ #: src/Services/ContentAnalysis/GetContent.php:806
6514
+ #, php-format
6515
+ msgid "We found %s inbound links to this page."
6516
+ msgstr ""
6517
+
6518
+ #: src/Services/ContentAnalysis/GetContent.php:813
6519
+ #, php-format
6520
+ msgid "edit %s"
6521
+ msgstr ""
6522
+
6523
+ #: src/Services/ContentAnalysis/GetContent.php:820
6524
+ msgid ""
6525
+ "This page doesn't have any inbound links from other content. Links from "
6526
+ "archive pages are not considered inbound links due to lack of context."
6527
+ msgstr ""
6528
+
6529
+ #: src/Services/ContentAnalysis/GetContent.php:835
6530
  msgid ""
6531
  "A canonical URL is required by search engines to handle duplicate content."
6532
  msgstr ""
6533
 
6534
+ #: src/Services/ContentAnalysis/GetContent.php:839
6535
  #, php-format
6536
  msgid "We found %s canonical URL in your source code. Below, the list:"
6537
  msgstr ""
6538
 
6539
+ #: src/Services/ContentAnalysis/GetContent.php:848
6540
  msgid "You must fix this. Canonical URL duplication is bad for SEO."
6541
  msgstr ""
6542
 
6543
+ #: src/Services/ContentAnalysis/GetContent.php:853
6544
  msgid ""
6545
  "This page doesn't have any canonical URL because your post is set to "
6546
  "<strong>noindex</strong>. This is normal."
6547
  msgstr ""
6548
 
6549
+ #: src/Services/ContentAnalysis/GetContent.php:856
6550
  msgid "This page doesn't have any canonical URL."
6551
  msgstr ""
6552
 
6563
  #: src/Services/ContentAnalysis/RenderContentAnalysis.php:37
6564
  msgid "Close"
6565
  msgstr ""
6566
+
6567
+ #: src/Services/Settings/Roles/SectionPagesSEOPress.php:35
6568
+ msgid "Check a user role to authorized it to edit a specific SEO page."
6569
+ msgstr ""
readme.txt CHANGED
@@ -6,7 +6,7 @@ Tags: SEO, XML sitemap, meta title, open graph, content analysis, knowledge grap
6
  Requires at least: 4.7+
7
  Tested up to: 5.7
8
  Requires PHP: 5.6
9
- Stable tag: 4.5.1
10
  License: GPLv2 or later
11
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
12
 
@@ -61,7 +61,7 @@ SEOPress is a powerful WordPress SEO plugin to optimize your SEO, boost your tra
61
  <li>Redirect attachment pages to their file URL</li>
62
  <li><strong>Image SEO</strong>: Automatically set the image title / alt / caption / description</li>
63
  <li>Import / Export settings from site to site.</li>
64
- <li>Import posts and terms metadata from Yoast SEO, All In One SEO, SEO Framework, Rank Math, SEO Ultimate, WP Meta SEO, Premium SEO Pack and Squirrly</li>
65
  <li>...</li>
66
  </ul>
67
 
@@ -199,7 +199,7 @@ Help localize SEOPress even further by adding your locale – visit <a href="htt
199
 
200
  <a href="https://www.seopress.org/integrations/?utm_source=w.org&utm_campaign=seopress&utm_medium=readme" target="_blank">All our integrations</a>
201
 
202
- <h3>Import your post and term metadata from other SEO plugins in 1-click</h3>
203
  <ul>
204
  <li><a href="https://www.seopress.org/support/guides/import-post-terms-metadatas-yoast-seo-seopress/?utm_source=w.org&utm_campaign=seopress&utm_medium=readme" target="_blank">Yoast SEO</a></li>
205
  <li><a href="https://www.seopress.org/support/guides/import-post-and-terms-metadatas-from-all-in-one-seo-to-seopress/?utm_source=w.org&utm_campaign=seopress&utm_medium=readme" target="_blank">All In One SEO</a></li>
@@ -324,68 +324,68 @@ You're theme is probably using a deprecated function to handle the title. <a hre
324
  9. Schemas metabox
325
 
326
  == Changelog ==
327
- = 4.5.1 (08/04/2021) =
328
- * NEW Where to display the cookie bar? option from SEO, Analytics, Cookie bar tab
329
- * INFO Stop loading the CSS for the admin bar if it doesn't show up
330
- * INFO Allow HTML in Homepage field for Breadcrumbs
331
- * FIX Fatal error: Call to undefined function seopress_xml_sitemap_video_enable_option()
332
- * FIX Opening hours for Local Business widget
333
- * FIX Heading 1 in content analysis if no target keywords
334
- * FIX SEO columns design in posts list
335
- * FIX Quick edit design issue on save
336
- * FIX SmartCrawl import tool
337
- * FIX PHP Warning: count(): Parameter must be an array or an object that implements in XML sitemaps
338
- * FIX Warning: date() expects parameter 2 to be int, string given
339
- * FIX Redirections capabilities on older versions of WordPress (< 5.0)
340
- * FIX White Label links in plugins list
341
- * FIX Primary category hierarchy in breadcrumbs
342
- * FIX Oxygen compatibility for Word counters / Keyword density
343
- * FIX i18n
344
- = 4.5.0.2 =
345
- * FIX PHP Error: Call to undefined function seopress_white_label_help_links_option()
346
- = 4.5.0.1 =
347
- * FIX PHP Fatal error: Uncaught Error: Call to undefined function SEOPress\Tags\Schema\seopress_social_knowledge_phone_number_option()
348
- = 4.5 (25/03/2021) https://www.seopress.org/blog/seopress-4-5/ =
349
- * NEW HTML sitemap enhancements: add HTML classes
350
- * NEW HTML sitemap enhancements: new option to remove links from archive pages
351
- * NEW HTML sitemap enhancements: new shortcode attribute to request specific custom post types
352
- * NEW Dynamic variable: %%target_keyword%%
353
- * NEW Import tools: Platinum SEO Pack, SmartCrawl and SEOPressor
354
- * NEW Allow user to change its choice about cookies (SEO, Analytics, Cookie bar tab to enable the option)
355
- * NEW Compatibility center (SEO, Tools) for better integration with other plugins (eg: Page Builders) without adding code
356
- * NEW Add our dynamic variables dropdown to global meta title / meta description settings page
357
- * NEW Add heading 1 (H1) check to Content Analysis feature
358
- * NEW Add Inbound links / Orphaned pages check to Content Analysis feature
359
- * NEW Use dynamic variables in social metadata (Open Graph and Twitter cards)
360
- * NEW Multiple opening hours (morning / afternoon) for global Local Business schema (PRO)
361
- * NEW 'seopress_resize_panel_elementor' hook to prevent SEOPress resizes the Elementor Panel (https://www.seopress.org/support/hooks/disable-automatic-resizing-of-elementor-panel/)
362
- * NEW 'seopress_titles_robots_attrs' hook to add meta robots attributes (https://www.seopress.org/support/hooks/filter-meta-robots-attributes/)
363
- * NEW 'seopress_sitemaps_no_archive_link' hook to remove archive links in XML sitemaps (https://www.seopress.org/support/hooks/filter-custom-post-type-archive-link-in-xml-single-sitemaps/)
364
- * NEW 'seopress_breadcrumbs_force_archive_name' hook to force archive name display on CPT with no archive (https://www.seopress.org/support/hooks/force-the-display-of-the-custom-post-type-archive-page-even-if-it-does-not-exist-in-breadcrumbs/)
365
- * NEW 'seopress_sitemaps_html_remove_archive' hook to filter archive names in HTML sitemap (https://www.seopress.org/support/hooks/remove-archive-links-per-post-type-in-html-sitemap/)
366
- * NEW 'seopress_auto_image_alt_target_kw' hook to use target keywords for the alternative texts of the images (https://www.seopress.org/support/hooks/filter-automatic-image-alt-tag-with-target-keywords/)
367
- * NEW 'seopress_export_redirections_query' hook to filter export redirections query (https://www.seopress.org/support/hooks/filter-export-redirections-query/)
368
- * NEW 'seopress_gtag_ec_status' hook to change status of WC orders sent to Google Analytics Enhanced Ecommerce (https://www.seopress.org/support/hooks/filter-woocommerce-order-status-sent-to-google-analytics-enhanced-ecommerce/)
369
- * INFO Improve accessibility for cookie bar
370
- * INFO Improve SEO columns display for posts, pages, custom post type lists
371
- * INFO Improve UI to warn users if some content are set to noindex and still included in XML sitemaps
372
- * INFO Improve UI / i18n for Google Analytics widget
373
- * INFO Improve UI if error on license activation
374
- * INFO Improve UI for BlogPosting schema
375
- * INFO Improve UI for global LocalBusiness schema
376
- * INFO Automatically add custom fields created with Toolset plugin to our Schema feature
377
- * INFO SEO and Content Analysis metaboxes are now completely independent (and prevent a lot of errors / warnings)
378
- * INFO Strengthening security
379
- * FIX Quick edit JS errors if noindex/nofollow columns are blocked (props to @mbis)
380
- * FIX i18n for Type of Employment on non English languages
381
- * FIX Webarx graph conflict
382
- * FIX Broken link checker error with 404 links
383
- * FIX PHP 8 errors with DIVI
384
- * FIX PHP 8 error with Google Preview for terms taxonomy
385
- * FIX Product variable price sent to Add to cart GA Enhanced Ecommerce event
386
- * FIX Elementor synchronization when duplicating posts
387
- * FIX Attachment XML sitemaps
388
- * FIX Oxygen content analysis in specific cases
389
- * FIX AIO import tool
390
 
391
  <a href="https://www.seopress.org/changelog/" target="_blank">View our complete changelog</a>
6
  Requires at least: 4.7+
7
  Tested up to: 5.7
8
  Requires PHP: 5.6
9
+ Stable tag: 4.6.0
10
  License: GPLv2 or later
11
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
12
 
61
  <li>Redirect attachment pages to their file URL</li>
62
  <li><strong>Image SEO</strong>: Automatically set the image title / alt / caption / description</li>
63
  <li>Import / Export settings from site to site.</li>
64
+ <li><a href="https://www.seopress.org/migrate-to-seopress/?utm_source=w.org&utm_campaign=seopress&utm_medium=readme">Import posts and terms metadata</a> from Yoast SEO, All In One SEO, SEO Framework, Rank Math, SEO Ultimate, WP Meta SEO, Premium SEO Pack, Squirrly and many other SEO plugins</li>
65
  <li>...</li>
66
  </ul>
67
 
199
 
200
  <a href="https://www.seopress.org/integrations/?utm_source=w.org&utm_campaign=seopress&utm_medium=readme" target="_blank">All our integrations</a>
201
 
202
+ <h3><a href="https://www.seopress.org/migrate-to-seopress/?utm_source=w.org&utm_campaign=seopress&utm_medium=readme" target="_blank">Import your post and term metadata from other SEO plugins in 1-click</a></h3>
203
  <ul>
204
  <li><a href="https://www.seopress.org/support/guides/import-post-terms-metadatas-yoast-seo-seopress/?utm_source=w.org&utm_campaign=seopress&utm_medium=readme" target="_blank">Yoast SEO</a></li>
205
  <li><a href="https://www.seopress.org/support/guides/import-post-and-terms-metadatas-from-all-in-one-seo-to-seopress/?utm_source=w.org&utm_campaign=seopress&utm_medium=readme" target="_blank">All In One SEO</a></li>
324
  9. Schemas metabox
325
 
326
  == Changelog ==
327
+ = 4.6 (29/04/2021) - https://www.seopress.org/blog/seopress-4-6/ =
328
+ * NEW Custom capabilities 🎉 (SEO, Advanced, Security)
329
+ * NEW Bricks compatibility with our content analysis feature
330
+ * NEW %%author_first_name%% dynamic variable to request user first name
331
+ * NEW %%author_last_name%% dynamic variable to request user last name
332
+ * NEW %%author_website%% dynamic variable to request user website
333
+ * NEW %%author_nickname%% dynamic variable to request user nickname
334
+ * NEW %%_ucf_your_user_meta%% dynamic variable to request user meta
335
+ * NEW Complete refactoring of the manual schema module
336
+ * NEW "Display a text before the Breadcrumbs" option
337
+ * NEW Add og:locale and og:locale:alternate support for WPML
338
+ * NEW Option to disable content analysis metabox (SEO, Advanced, Advanced tab)
339
+ * NEW "seopress_remove_category_base" hook to filter /category/ slug
340
+ * NEW Hooks to filter manual schemas:
341
+ * seopress_get_json_data_organization
342
+ * seopress_get_json_data_image
343
+ * seopress_get_json_data_contact_point
344
+ * seopress_pro_get_json_data_author
345
+ * seopress_pro_get_json_data_article
346
+ * seopress_pro_get_json_data_aggreagate_rating
347
+ * seopress_pro_get_json_data_brand
348
+ * seopress_pro_get_json_data_course
349
+ * seopress_pro_get_json_data_event
350
+ * seopress_pro_get_json_data_faq
351
+ * seopress_pro_get_json_data_geo
352
+ * seopress_pro_get_json_data_how_to_step
353
+ * seopress_pro_get_json_data_job
354
+ * seopress_pro_get_json_data_local_business
355
+ * seopress_pro_get_json_data_main_entity
356
+ * seopress_pro_get_json_data_main_entity_of_page
357
+ * seopress_pro_get_json_data_monetary_amount
358
+ * seopress_pro_get_json_data_nutrition_information
359
+ * seopress_pro_get_json_data_offer
360
+ * seopress_pro_get_json_data_opening_hours
361
+ * seopress_pro_get_json_data_person
362
+ * seopress_pro_get_json_data_place
363
+ * seopress_pro_get_json_data_postal_address
364
+ * seopress_pro_get_json_data_product
365
+ * seopress_pro_get_json_data_rating
366
+ * seopress_pro_get_json_data_recipe
367
+ * seopress_pro_get_json_data_review
368
+ * seopress_pro_get_json_data_service
369
+ * seopress_pro_get_json_data_site_navigation_element
370
+ * seopress_pro_get_json_data_software_app
371
+ * seopress_pro_get_json_data_thing
372
+ * seopress_pro_get_json_data_video
373
+ * seopress_pro_get_json_data_virtual_location
374
+ * INFO Improve Themify Builer compatibility with Content Analysis
375
+ * INFO Improve Oxygen compatibility in specific cases
376
+ * INFO Allow to show taxonomies in Breadcrumbs for Page post type
377
+ * INFO Elementor Dark mode compatibility
378
+ * FIX Duplicated meta robots on WC pages (checkout, cart, account)
379
+ * FIX Remove /category/ slug with WPML if the slug is translated
380
+ * FIX Fatal error when connecting Google Analytics / Google Console if no permission
381
+ * FIX Google Analytics widget logout after view lock
382
+ * FIX Google Analytics listing properties error handling
383
+ * FIX Canonical URL on paginated pages (is_singular && is_paged)
384
+ * FIX PHP notice queried object
385
+ * FIX JS Encoding for Google Preview
386
+ * FIX Missing compatibility center options in export file
387
+ * FIX Undefined index: image with FAQ Block (props to @audrasjb)
388
+ * FIX LocalBusiness widget in specific cases
389
+ * FIX SEOPress metaboxes not loaded in specific cases (props to @J-Brk)
390
 
391
  <a href="https://www.seopress.org/changelog/" target="_blank">View our complete changelog</a>
seopress.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: SEOPress
4
  Plugin URI: https://www.seopress.org/
5
  Description: One of the best SEO plugins for WordPress.
6
  Author: SEOPress
7
- Version: 4.5.1
8
  Author URI: https://www.seopress.org/
9
  License: GPLv2
10
  Text Domain: wp-seopress
@@ -13,49 +13,49 @@ Domain Path: /languages
13
 
14
  /* Copyright 2016 - 2021 - Benjamin Denis (email : contact@seopress.org)
15
 
16
- This program is free software; you can redistribute it and/or modify
17
- it under the terms of the GNU General Public License, version 2, as
18
- published by the Free Software Foundation.
19
 
20
- This program is distributed in the hope that it will be useful,
21
- but WITHOUT ANY WARRANTY; without even the implied warranty of
22
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23
- GNU General Public License for more details.
24
 
25
- You should have received a copy of the GNU General Public License
26
- along with this program; if not, write to the Free Software
27
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
28
  */
29
 
30
  // To prevent calling the plugin directly
31
  if ( ! function_exists('add_action')) {
32
- echo 'Please don&rsquo;t call the plugin directly. Thanks :)';
33
- exit;
34
  }
35
 
36
  ///////////////////////////////////////////////////////////////////////////////////////////////////
37
  //Hooks activation
38
  ///////////////////////////////////////////////////////////////////////////////////////////////////
39
  function seopress_activation() {
40
- add_option('seopress_activated', 'yes');
41
- flush_rewrite_rules(false);
42
- do_action('seopress_activation');
43
  }
44
  register_activation_hook(__FILE__, 'seopress_activation');
45
 
46
  function seopress_deactivation() {
47
- deactivate_plugins(['wp-seopress-pro/seopress-pro.php', 'wp-seopress-insights/seopress-insights.php']);
48
 
49
- delete_option('seopress_activated');
50
- flush_rewrite_rules(false);
51
- do_action('seopress_deactivation');
52
  }
53
  register_deactivation_hook(__FILE__, 'seopress_deactivation');
54
 
55
  ///////////////////////////////////////////////////////////////////////////////////////////////////
56
  //Define
57
  ///////////////////////////////////////////////////////////////////////////////////////////////////
58
- define('SEOPRESS_VERSION', '4.5.1');
59
  define('SEOPRESS_AUTHOR', 'Benjamin Denis');
60
  define('SEOPRESS_PLUGIN_DIR_PATH', plugin_dir_path(__FILE__));
61
  define('SEOPRESS_TEMPLATE_DIR', SEOPRESS_PLUGIN_DIR_PATH . 'templates');
@@ -65,104 +65,104 @@ define('SEOPRESS_TEMPLATE_JSON_SCHEMAS', SEOPRESS_TEMPLATE_DIR . '/json-schemas'
65
  use SEOPress\Core\Kernel;
66
 
67
  if (file_exists(__DIR__ . '/vendor/autoload.php')) {
68
- require_once __DIR__ . '/vendor/autoload.php';
69
- require_once __DIR__ . '/seopress-functions.php';
70
-
71
- Kernel::execute([
72
- 'file' => __FILE__,
73
- 'slug' => 'wp-seopress',
74
- 'main_file' => 'seopress',
75
- 'root' => __DIR__,
76
- ]);
77
  }
78
 
79
  function seopress_titles_single_cpt_enable_option($cpt) {
80
- $current_cpt = null;
81
- $seopress_titles_single_enable_option = get_option('seopress_titles_option_name');
82
- if ( ! empty($seopress_titles_single_enable_option)) {
83
- foreach ($seopress_titles_single_enable_option as $key => $seopress_titles_single_enable_value) {
84
- $options[$key] = $seopress_titles_single_enable_value;
85
- if (isset($seopress_titles_single_enable_option['seopress_titles_single_titles'][$cpt]['enable'])) {
86
- $current_cpt = $seopress_titles_single_enable_option['seopress_titles_single_titles'][$cpt]['enable'];
87
- }
88
- }
89
- }
90
-
91
- return $current_cpt;
92
  }
93
 
94
  //Archive CPT Titles
95
  function seopress_titles_archive_titles_option() {
96
- global $post;
97
- $seopress_get_current_cpt = get_post_type($post);
98
-
99
- $seopress_titles_archive_titles_option = get_option('seopress_titles_option_name');
100
- if ( ! empty($seopress_titles_archive_titles_option)) {
101
- foreach ($seopress_titles_archive_titles_option as $key => $seopress_titles_archive_titles_value) {
102
- $options[$key] = $seopress_titles_archive_titles_value;
103
- }
104
- if (isset($seopress_titles_archive_titles_option['seopress_titles_archive_titles'][$seopress_get_current_cpt]['title'])) {
105
- return $seopress_titles_archive_titles_option['seopress_titles_archive_titles'][$seopress_get_current_cpt]['title'];
106
- }
107
- }
108
  }
109
 
110
  ///////////////////////////////////////////////////////////////////////////////////////////////////
111
  //SEOPRESS INIT = Admin + Core + API + Translation
112
  ///////////////////////////////////////////////////////////////////////////////////////////////////
113
  function seopress_init($hook) {
114
- load_plugin_textdomain('wp-seopress', false, dirname(plugin_basename(__FILE__)) . '/languages/');
115
-
116
- global $pagenow;
117
- global $typenow;
118
- global $wp_version;
119
-
120
- if (is_admin() || is_network_admin()) {
121
- require_once dirname(__FILE__) . '/inc/admin/plugin-upgrader.php';
122
- require_once dirname(__FILE__) . '/inc/admin/admin.php';
123
-
124
- if ('post-new.php' == $pagenow || 'post.php' == $pagenow) {
125
- if ('seopress_schemas' != $typenow) {
126
- require_once dirname(__FILE__) . '/inc/admin/admin-metaboxes.php';
127
- }
128
- }
129
- if ('term.php' == $pagenow || 'edit-tags.php' == $pagenow) {
130
- require_once dirname(__FILE__) . '/inc/admin/admin-term-metaboxes.php';
131
- }
132
- require_once dirname(__FILE__) . '/inc/admin/ajax.php';
133
- if (defined('SEOPRESS_WL_ADMIN_HEADER') && SEOPRESS_WL_ADMIN_HEADER === false) {
134
- //do not load the SEOPress admin header
135
- } else {
136
- require_once dirname(__FILE__) . '/inc/admin/admin-header.php';
137
- }
138
- }
139
-
140
- require_once dirname(__FILE__) . '/inc/functions/options.php';
141
-
142
- require_once dirname(__FILE__) . '/inc/admin/adminbar.php';
143
-
144
- remove_action('wp_head', 'rel_canonical'); //remove default WordPress Canonical
145
-
146
- //Setup/welcome
147
- if ( ! empty($_GET['page'])) {
148
- switch ($_GET['page']) {
149
- case 'seopress-setup':
150
- include_once dirname(__FILE__) . '/inc/admin/admin-wizard.php';
151
- break;
152
- default:
153
- break;
154
- }
155
- }
156
-
157
- //Elementor
158
- if (did_action('elementor/loaded')) {
159
- include_once dirname(__FILE__) . '/inc/admin/page-builders/elementor/elementor-addon.php';
160
- }
161
-
162
- //Block Editor
163
- if (version_compare($wp_version, '5.0', '>=')) {
164
- include_once dirname(__FILE__) . '/inc/admin/page-builders/gutenberg/gutenberg-addon.php';
165
- }
166
  }
167
  add_action('plugins_loaded', 'seopress_init', 999);
168
 
@@ -173,13 +173,13 @@ add_action('plugins_loaded', 'seopress_init', 999);
173
  * @author Benjamin
174
  */
175
  if ( ! function_exists('array_key_first')) {
176
- function array_key_first(array $arr) {
177
- foreach ($arr as $key => $unused) {
178
- return $key;
179
- }
180
 
181
- return null;
182
- }
183
  }
184
 
185
  /*
@@ -189,21 +189,21 @@ if ( ! function_exists('array_key_first')) {
189
  * @author Benjamin
190
  */
191
  if ( ! function_exists('array_key_last')) {
192
- function array_key_last(array $arr) {
193
- end($arr);
194
- $key = key($arr);
195
 
196
- return $key;
197
- }
198
  }
199
 
200
  ///////////////////////////////////////////////////////////////////////////////////////////////////
201
  //Loads dynamic variables for titles, metas, schemas...
202
  ///////////////////////////////////////////////////////////////////////////////////////////////////
203
  function seopress_dyn_variables_init($variables) {
204
- $variables = include dirname(__FILE__) . '/inc/functions/variables/dynamic-variables.php';
205
 
206
- return $variables;
207
  }
208
  add_filter('seopress_dyn_variables_fn', 'seopress_dyn_variables_init');
209
 
@@ -212,197 +212,197 @@ add_filter('seopress_dyn_variables_fn', 'seopress_dyn_variables_init');
212
  ///////////////////////////////////////////////////////////////////////////////////////////////////
213
  //SEOPRESS Options page
214
  function seopress_add_admin_options_scripts($hook) {
215
- $prefix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
216
- wp_register_style('seopress-admin', plugins_url('assets/css/seopress' . $prefix . '.css', __FILE__), [], SEOPRESS_VERSION);
217
- wp_enqueue_style('seopress-admin');
218
-
219
- if ( ! isset($_GET['page'])) {
220
- return;
221
- }
222
- if ('seopress-network-option' === $_GET['page']) {
223
- wp_enqueue_script('seopress-network-tabs', plugins_url('assets/js/seopress-network-tabs' . $prefix . '.js', __FILE__), ['jquery'], SEOPRESS_VERSION, true);
224
- }
225
-
226
- //Toggle / Notices JS
227
- $_pages = ['seopress-option' => true, 'seopress-network-option' => true, 'seopress-titles' => true, 'seopress-xml-sitemap' => true, 'seopress-social' => true, 'seopress-google-analytics' => true, 'seopress-pro-page' => true, 'seopress-advanced' => true];
228
- if (isset($_pages[$_GET['page']])) {
229
- wp_enqueue_script('seopress-toggle-ajax', plugins_url('assets/js/seopress-dashboard' . $prefix . '.js', __FILE__), ['jquery'], SEOPRESS_VERSION, true);
230
-
231
- //Features
232
- $seopress_toggle_features = [
233
- 'seopress_nonce' => wp_create_nonce('seopress_toggle_features_nonce'),
234
- 'seopress_toggle_features' => admin_url('admin-ajax.php'),
235
- 'i18n' => __('has been successfully updated!', 'wp-seopress'),
236
- ];
237
- wp_localize_script('seopress-toggle-ajax', 'seopressAjaxToggleFeatures', $seopress_toggle_features);
238
- }
239
- unset($_pages);
240
-
241
- if ('seopress-option' === $_GET['page']) {
242
- //Notices
243
- $seopress_hide_notices = [
244
- 'seopress_nonce' => wp_create_nonce('seopress_hide_notices_nonce'),
245
- 'seopress_hide_notices' => admin_url('admin-ajax.php'),
246
- ];
247
- wp_localize_script('seopress-toggle-ajax', 'seopressAjaxHideNotices', $seopress_hide_notices);
248
-
249
- //Admin Tabs
250
- wp_enqueue_script('seopress-reverse-ajax', plugins_url('assets/js/seopress-tabs7' . $prefix . '.js', __FILE__), ['jquery-ui-tabs'], SEOPRESS_VERSION);
251
-
252
- //Reverse domains
253
- $seopress_request_reverse = [
254
- 'seopress_nonce' => wp_create_nonce('seopress_request_reverse_nonce'),
255
- 'seopress_request_reverse' => admin_url('admin-ajax.php'),
256
- ];
257
- wp_localize_script('seopress-reverse-ajax', 'seopressAjaxReverse', $seopress_request_reverse);
258
-
259
- $seopress_clear_reverse_cache = [
260
- 'seopress_nonce' => wp_create_nonce('seopress_clear_reverse_cache_nonce'),
261
- 'seopress_clear_reverse_cache' => admin_url('admin-ajax.php'),
262
- ];
263
- wp_localize_script('seopress-reverse-ajax', 'seopressAjaxClearReverseCache', $seopress_clear_reverse_cache);
264
- }
265
-
266
- //Migration
267
- if ('seopress-option' === $_GET['page'] || 'seopress-import-export' === $_GET['page']) {
268
- wp_enqueue_script('seopress-migrate-ajax', plugins_url('assets/js/seopress-migrate' . $prefix . '.js', __FILE__), ['jquery'], SEOPRESS_VERSION, true);
269
-
270
- $seopress_migrate = [
271
- 'seopress_aio_migrate' => [
272
- 'seopress_nonce' => wp_create_nonce('seopress_aio_migrate_nonce'),
273
- 'seopress_aio_migration' => admin_url('admin-ajax.php'),
274
- ],
275
- 'seopress_yoast_migrate' => [
276
- 'seopress_nonce' => wp_create_nonce('seopress_yoast_migrate_nonce'),
277
- 'seopress_yoast_migration' => admin_url('admin-ajax.php'),
278
- ],
279
- 'seopress_seo_framework_migrate' => [
280
- 'seopress_nonce' => wp_create_nonce('seopress_seo_framework_migrate_nonce'),
281
- 'seopress_seo_framework_migration' => admin_url('admin-ajax.php'),
282
- ],
283
- 'seopress_rk_migrate' => [
284
- 'seopress_nonce' => wp_create_nonce('seopress_rk_migrate_nonce'),
285
- 'seopress_rk_migration' => admin_url('admin-ajax.php'),
286
- ],
287
- 'seopress_squirrly_migrate' => [
288
- 'seopress_nonce' => wp_create_nonce('seopress_squirrly_migrate_nonce'),
289
- 'seopress_squirrly_migration' => admin_url('admin-ajax.php'),
290
- ],
291
- 'seopress_seo_ultimate_migrate' => [
292
- 'seopress_nonce' => wp_create_nonce('seopress_seo_ultimate_migrate_nonce'),
293
- 'seopress_seo_ultimate_migration' => admin_url('admin-ajax.php'),
294
- ],
295
- 'seopress_wp_meta_seo_migrate' => [
296
- 'seopress_nonce' => wp_create_nonce('seopress_meta_seo_migrate_nonce'),
297
- 'seopress_wp_meta_seo_migration' => admin_url('admin-ajax.php'),
298
- ],
299
- 'seopress_premium_seo_pack_migrate' => [
300
- 'seopress_nonce' => wp_create_nonce('seopress_premium_seo_pack_migrate_nonce'),
301
- 'seopress_premium_seo_pack_migration' => admin_url('admin-ajax.php'),
302
- ],
303
- 'seopress_wpseo_migrate' => [
304
- 'seopress_nonce' => wp_create_nonce('seopress_wpseo_migrate_nonce'),
305
- 'seopress_wpseo_migration' => admin_url('admin-ajax.php'),
306
- ],
307
- 'seopress_platinum_seo_migrate' => [
308
- 'seopress_nonce' => wp_create_nonce('seopress_platinum_seo_migrate_nonce'),
309
- 'seopress_platinum_seo_migration' => admin_url('admin-ajax.php'),
310
- ],
311
- 'seopress_smart_crawl_migrate' => [
312
- 'seopress_nonce' => wp_create_nonce('seopress_smart_crawl_migrate_nonce'),
313
- 'seopress_smart_crawl_migration' => admin_url('admin-ajax.php'),
314
- ],
315
- 'seopress_seopressor_migrate' => [
316
- 'seopress_nonce' => wp_create_nonce('seopress_seopressor_migrate_nonce'),
317
- 'seopress_seopressor_migration' => admin_url('admin-ajax.php'),
318
- ],
319
- 'seopress_metadata_csv' => [
320
- 'seopress_nonce' => wp_create_nonce('seopress_export_csv_metadata_nonce'),
321
- 'seopress_metadata_export' => admin_url('admin-ajax.php'),
322
- ],
323
- 'i18n' => [
324
- 'migration' => __('Migration completed!', 'wp-seopress'),
325
- 'export' => __('Export completed!', 'wp-seopress'),
326
- ],
327
- ];
328
- wp_localize_script('seopress-migrate-ajax', 'seopressAjaxMigrate', $seopress_migrate);
329
- }
330
-
331
- //Tabs
332
- if ('seopress-titles' === $_GET['page']) {
333
- wp_enqueue_script('seopress-admin-tabs-js', plugins_url('assets/js/seopress-tabs' . $prefix . '.js', __FILE__), ['jquery-ui-tabs'], SEOPRESS_VERSION);
334
- }
335
-
336
- if ('seopress-xml-sitemap' === $_GET['page']) {
337
- wp_enqueue_script('seopress-admin-tabs-js', plugins_url('assets/js/seopress-tabs4' . $prefix . '.js', __FILE__), ['jquery-ui-tabs'], SEOPRESS_VERSION);
338
- }
339
-
340
- if ('seopress-xml-sitemap' === $_GET['page'] || 'seopress-pro-page' === $_GET['page'] || 'seopress-network-option' === $_GET['page']) {
341
- wp_enqueue_script('seopress-xml-ajax', plugins_url('assets/js/seopress-sitemap-ajax' . $prefix . '.js', __FILE__), ['jquery'], SEOPRESS_VERSION, true);
342
-
343
- $seopress_ajax_permalinks = [
344
- 'seopress_nonce' => wp_create_nonce('seopress_flush_permalinks_nonce'),
345
- 'seopress_ajax_permalinks' => admin_url('admin-ajax.php'),
346
- ];
347
- wp_localize_script('seopress-xml-ajax', 'seopressAjaxResetPermalinks', $seopress_ajax_permalinks);
348
- }
349
-
350
- if ('seopress-google-analytics' === $_GET['page']) {
351
- wp_enqueue_style('wp-color-picker');
352
-
353
- wp_enqueue_script('wp-color-picker-alpha', plugins_url('assets/js/wp-color-picker-alpha.min.js', __FILE__), ['wp-color-picker'], SEOPRESS_VERSION, true);
354
- $color_picker_strings = [
355
- 'clear' => __('Clear', 'wp-seopress'),
356
- 'clearAriaLabel' => __('Clear color', 'wp-seopress'),
357
- 'defaultString' => __('Default', 'wp-seopress'),
358
- 'defaultAriaLabel' => __('Select default color', 'wp-seopress'),
359
- 'pick' => __('Select Color', 'wp-seopress'),
360
- 'defaultLabel' => __('Color value', 'wp-seopress'),
361
- ];
362
- wp_localize_script('wp-color-picker-alpha', 'wpColorPickerL10n', $color_picker_strings);
363
-
364
- wp_enqueue_script('seopress-admin-tabs-js', plugins_url('assets/js/seopress-tabs6' . $prefix . '.js', __FILE__), ['jquery-ui-tabs', 'wp-color-picker'], SEOPRESS_VERSION);
365
- }
366
-
367
- if ('seopress-advanced' === $_GET['page']) {
368
- wp_enqueue_script('seopress-admin-tabs-js', plugins_url('assets/js/seopress-tabs5' . $prefix . '.js', __FILE__), ['jquery-ui-tabs'], SEOPRESS_VERSION);
369
- }
370
-
371
- if ('seopress-import-export' === $_GET['page']) {
372
- wp_enqueue_script('seopress-admin-tabs-js', plugins_url('assets/js/seopress-tabs8' . $prefix . '.js', __FILE__), ['jquery-ui-tabs'], SEOPRESS_VERSION);
373
- }
374
-
375
- if ('seopress-social' === $_GET['page']) {
376
- wp_enqueue_script('seopress-social-tabs-js', plugins_url('assets/js/seopress-tabs3' . $prefix . '.js', __FILE__), ['jquery-ui-tabs'], SEOPRESS_VERSION);
377
- wp_enqueue_script('seopress-cpt-tabs-js', plugins_url('assets/js/seopress-tabs2' . $prefix . '.js', __FILE__), ['jquery-ui-tabs'], SEOPRESS_VERSION);
378
- wp_enqueue_script('seopress-media-uploader-js', plugins_url('assets/js/seopress-media-uploader' . $prefix . '.js', __FILE__), ['jquery'], SEOPRESS_VERSION, false);
379
- wp_enqueue_media();
380
- }
381
-
382
- //CSV Importer
383
- if ('seopress_csv_importer' === $_GET['page']) {
384
- wp_enqueue_style('seopress-setup', plugins_url('assets/css/seopress-setup' . $prefix . '.css', __FILE__), ['dashicons'], SEOPRESS_VERSION);
385
- }
386
  }
387
 
388
  add_action('admin_enqueue_scripts', 'seopress_add_admin_options_scripts', 10, 1);
389
 
390
  //SEOPRESS Admin bar
391
  function seopress_admin_bar_css() {
392
- $prefix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
393
- if (is_user_logged_in() && function_exists('seopress_advanced_appearance_adminbar_option') && '1' != seopress_advanced_appearance_adminbar_option()) {
394
- if (is_admin_bar_showing()) {
395
- wp_register_style('seopress-admin-bar', plugins_url('assets/css/seopress-admin-bar' . $prefix . '.css', __FILE__), [], SEOPRESS_VERSION);
396
- wp_enqueue_style('seopress-admin-bar');
397
- }
398
- }
399
  }
400
  add_action('init', 'seopress_admin_bar_css', 12, 1);
401
 
402
  //Quick Edit
403
  function seopress_add_admin_options_scripts_quick_edit() {
404
- $prefix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
405
- wp_enqueue_script('seopress-quick-edit', plugins_url('assets/js/seopress-quick-edit' . $prefix . '.js', __FILE__), ['jquery', 'inline-edit-post'], SEOPRESS_VERSION, true);
406
  }
407
  add_action('admin_print_scripts-edit.php', 'seopress_add_admin_options_scripts_quick_edit');
408
 
@@ -411,28 +411,28 @@ add_action('admin_print_scripts-edit.php', 'seopress_add_admin_options_scripts_q
411
  ///////////////////////////////////////////////////////////////////////////////////////////////////
412
  add_filter('admin_body_class', 'seopress_admin_body_class', 100);
413
  function seopress_admin_body_class($classes) {
414
- if ( ! isset($_GET['page'])) {
415
- return $classes;
416
- }
417
- $_pages = [
418
- 'seopress_csv_importer' => true,
419
- 'seopress-option' => true,
420
- 'seopress-network-option' => true,
421
- 'seopress-titles' => true,
422
- 'seopress-xml-sitemap' => true,
423
- 'seopress-social' => true,
424
- 'seopress-google-analytics' => true,
425
- 'seopress-advanced' => true,
426
- 'seopress-import-export' => true,
427
- 'seopress-pro-page' => true,
428
- 'seopress-bot-batch' => true,
429
- 'seopress-license' => true,
430
- ];
431
- if (isset($_pages[$_GET['page']])) {
432
- $classes .= ' seopress-styles ';
433
- }
434
-
435
- return $classes;
436
  }
437
 
438
  ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -445,16 +445,43 @@ function seopress_admin_body_class($classes) {
445
  */
446
  remove_filter('wp_robots', 'wp_robots_max_image_preview_large');
447
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
448
  ///////////////////////////////////////////////////////////////////////////////////////////////////
449
  //3rd plugins compatibility
450
  ///////////////////////////////////////////////////////////////////////////////////////////////////
451
  //Jetpack
452
  function seopress_compatibility_jetpack() {
453
- if (function_exists('is_plugin_active')) {
454
- if (is_plugin_active('jetpack/jetpack.php') && ! is_admin()) {
455
- add_filter('jetpack_enable_open_graph', '__return_false');
456
- }
457
- }
458
  }
459
  add_action('wp_head', 'seopress_compatibility_jetpack', 0);
460
 
@@ -464,11 +491,11 @@ add_action('wp_head', 'seopress_compatibility_jetpack', 0);
464
  * @since 3.8.1
465
  */
466
  function seopress_compatibility_woocommerce() {
467
- if (function_exists('is_plugin_active')) {
468
- if (is_plugin_active('woocommerce/woocommerce.php') && ! is_admin()) {
469
- remove_action('wp_head', 'wc_page_noindex');
470
- }
471
- }
472
  }
473
  add_action('wp_head', 'seopress_compatibility_woocommerce', 0);
474
 
@@ -484,7 +511,7 @@ add_action('wp_head', 'seopress_compatibility_woocommerce', 0);
484
  * @param mixed $blog_id
485
  */
486
  function seopress_remove_wpml_home_url_filter($home_url, $url, $path, $orig_scheme, $blog_id) {
487
- return $url;
488
  }
489
 
490
  /*
@@ -494,23 +521,23 @@ function seopress_remove_wpml_home_url_filter($home_url, $url, $path, $orig_sche
494
  */
495
  add_action('do_meta_boxes', 'seopress_remove_metaboxes', 10);
496
  function seopress_remove_metaboxes() {
497
- //Oxygen Builder
498
- remove_meta_box('ct_views_cpt', 'seopress_404', 'normal');
499
- remove_meta_box('ct_views_cpt', 'seopress_schemas', 'normal');
500
- remove_meta_box('ct_views_cpt', 'seopress_bot', 'normal');
501
  }
502
 
503
  ///////////////////////////////////////////////////////////////////////////////////////////////////
504
  //Credits footer
505
  ///////////////////////////////////////////////////////////////////////////////////////////////////
506
  function seopress_custom_credits_footer() {
507
- $html = '<span id="seopress-footer-credits">
508
  <span class="dashicons dashicons-wordpress"></span>
509
  ' . __("You like SEOPress? Don't forget to rate it 5 stars!", 'wp-seopress') . '<span class="wporg-ratings rating-stars">';
510
- for ($i=1; $i < 6; ++$i) {
511
- $html .= '<a href="//wordpress.org/support/view/plugin-reviews/wp-seopress?rate=' . $i . '#postform" data-rating="' . $i . '" title="" target="_blank"><span class="dashicons dashicons-star-filled" style="color:#FFDE24 !important;"></span></a>';
512
- }
513
- $html .= '</span>
514
  <script>
515
  jQuery(document).ready( function($) {
516
  $(".rating-stars").find("a").hover(
@@ -531,27 +558,27 @@ function seopress_custom_credits_footer() {
531
  </script>
532
  </span>';
533
 
534
- return $html;
535
  }
536
  if ((isset($_GET['page']) && (
537
- 'seopress-option' == $_GET['page']
538
- || 'seopress-network-option' == $_GET['page']
539
- || 'seopress-titles' == $_GET['page']
540
- || 'seopress-xml-sitemap' == $_GET['page']
541
- || 'seopress-social' == $_GET['page']
542
- || 'seopress-google-analytics' == $_GET['page']
543
- || 'seopress-advanced' == $_GET['page']
544
- || 'seopress-pro-page' == $_GET['page']
545
- || 'seopress-import-export' == $_GET['page']
546
- || 'seopress-bot-batch' == $_GET['page']
547
- || 'seopress-insights' == $_GET['page']
548
- || 'seopress-license' == $_GET['page']))
549
- || (isset($_GET['post_type']) && (
550
- 'seopress_404' == $_GET['post_type']
551
- || 'seopress_schemas' == $_GET['post_type']
552
- || 'seopress_bot' == $_GET['post_type']
553
- || 'seopress_backlinks' == $_GET['post_type']))) {
554
- add_filter('admin_footer_text', 'seopress_custom_credits_footer');
555
  }
556
 
557
  ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -560,35 +587,35 @@ if ((isset($_GET['page']) && (
560
  add_filter('plugin_action_links', 'seopress_plugin_action_links', 10, 2);
561
 
562
  function seopress_plugin_action_links($links, $file) {
563
- static $this_plugin;
564
-
565
- if ( ! $this_plugin) {
566
- $this_plugin = plugin_basename(__FILE__);
567
- }
568
-
569
- if ($file == $this_plugin) {
570
- $settings_link = '<a href="' . admin_url('admin.php?page=seopress-option') . '">' . __('Settings', 'wp-seopress') . '</a>';
571
- $website_link = '<a href="https://www.seopress.org/support/" target="_blank">' . __('Docs', 'wp-seopress') . '</a>';
572
- $wizard_link = '<a href="' . admin_url('admin.php?page=seopress-setup') . '">' . __('Configuration Wizard', 'wp-seopress') . '</a>';
573
- if ( ! is_plugin_active('wp-seopress-pro/seopress-pro.php')) {
574
- $pro_link = '<a href="https://www.seopress.org/seopress-pro/" style="color:red;font-weight:bold" target="_blank">' . __('GO PRO!', 'wp-seopress') . '</a>';
575
- array_unshift($links, $pro_link);
576
- }
577
- if (is_plugin_active('wp-seopress-pro/seopress-pro.php') || is_plugin_active('wp-seopress-insights/seopress-insights.php')) {
578
- if (array_key_exists('deactivate', $links) && in_array($file, [
579
- 'wp-seopress/seopress.php',
580
- ]));
581
- unset($links['deactivate']);
582
- }
583
 
584
  if (function_exists('seopress_get_toggle_white_label_option') && '1' == seopress_get_toggle_white_label_option() && function_exists('seopress_white_label_help_links_option') && '1' === seopress_white_label_help_links_option()) {
585
  array_unshift($links, $settings_link, $wizard_link);
586
  } else {
587
  array_unshift($links, $settings_link, $wizard_link, $website_link);
588
  }
589
- }
590
 
591
- return $links;
592
  }
593
 
594
  /**
@@ -601,35 +628,35 @@ function seopress_plugin_action_links($links, $file) {
601
  * @return (array) $wp_post_types
602
  **/
603
  function seopress_get_post_types() {
604
- if ( ! function_exists('seopress_get_service')) {
605
- global $wp_post_types;
606
-
607
- $args = [
608
- 'show_ui' => true,
609
- 'public' => true,
610
- ];
611
-
612
- $output = 'objects'; // names or objects, note names is the default
613
- $operator = 'and'; // 'and' or 'or'
614
-
615
- $post_types = get_post_types($args, $output, $operator);
616
- unset(
617
- $post_types['attachment'],
618
- $post_types['seopress_rankings'],
619
- $post_types['seopress_backlinks'],
620
- $post_types['seopress_404'],
621
- $post_types['elementor_library'],
622
- $post_types['customer_discount'],
623
- $post_types['cuar_private_file'],
624
- $post_types['cuar_private_page'],
625
- $post_types['ct_template']
626
- );
627
- $post_types = apply_filters('seopress_post_types', $post_types);
628
-
629
- return $post_types;
630
- }
631
-
632
- return seopress_get_service('WordPressData')->getPostTypes();
633
  }
634
 
635
  /**
@@ -642,44 +669,44 @@ function seopress_get_post_types() {
642
  * @return (array) $taxonomies
643
  **/
644
  function seopress_get_taxonomies($with_terms = false) {
645
- $args = [
646
- 'show_ui' => true,
647
- 'public' => true,
648
- ];
649
- $args = apply_filters('seopress_get_taxonomies_args', $args);
650
 
651
- $output = 'objects'; // or objects
652
- $operator = 'and'; // 'and' or 'or'
653
- $taxonomies = get_taxonomies($args, $output, $operator);
654
 
655
- unset(
656
- $taxonomies['seopress_bl_competitors']
657
- );
658
 
659
- $taxonomies = apply_filters('seopress_get_taxonomies_list', $taxonomies);
660
 
661
- if ( ! $with_terms) {
662
- return $taxonomies;
663
- }
664
 
665
- foreach ($taxonomies as $_tax_slug => &$_tax) {
666
- $_tax->terms = get_terms(['taxonomy' => $_tax_slug]);
667
- }
668
 
669
- return $taxonomies;
670
  }
671
 
672
  ///////////////////////////////////////////////////////////////////////////////////////////////////
673
  //Get all custom fields (limit: 250)
674
  ///////////////////////////////////////////////////////////////////////////////////////////////////
675
  function seopress_get_custom_fields() {
676
- $cf_keys = wp_cache_get('seopress_get_custom_fields');
677
 
678
- if (false === $cf_keys) {
679
- global $wpdb;
680
 
681
- $limit = (int) apply_filters('postmeta_form_limit', 250);
682
- $cf_keys = $wpdb->get_col($wpdb->prepare("
683
  SELECT DISTINCT meta_key
684
  FROM $wpdb->postmeta
685
  GROUP BY meta_key
@@ -687,36 +714,36 @@ function seopress_get_custom_fields() {
687
  ORDER BY meta_key
688
  LIMIT %d", $limit));
689
 
690
- if (is_plugin_active('types/wpcf.php')) {
691
- $wpcf_fields = get_option('wpcf-fields');
692
 
693
- if ( ! empty($wpcf_fields)) {
694
- foreach ($wpcf_fields as $key => $value) {
695
- $cf_keys[] = $value['meta_key'];
696
- }
697
- }
698
- }
699
 
700
- $cf_keys = apply_filters('seopress_get_custom_fields', $cf_keys);
701
 
702
- if ($cf_keys) {
703
- natcasesort($cf_keys);
704
- }
705
- wp_cache_set('seopress_get_custom_fields', $cf_keys);
706
- }
707
 
708
- return $cf_keys;
709
  }
710
 
711
  ///////////////////////////////////////////////////////////////////////////////////////////////////
712
  //Check SSL for schema.org
713
  ///////////////////////////////////////////////////////////////////////////////////////////////////
714
  function seopress_check_ssl() {
715
- if (is_ssl()) {
716
- return 'https://';
717
- } else {
718
- return 'http://';
719
- }
720
  }
721
 
722
  /**
@@ -727,17 +754,17 @@ function seopress_check_ssl() {
727
  * @return (string) $ip
728
  **/
729
  function seopress_get_ip_address() {
730
- foreach (['HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR'] as $key) {
731
- if (true === array_key_exists($key, $_SERVER)) {
732
- foreach (explode(',', $_SERVER[$key]) as $ip) {
733
- $ip = trim($ip); // just to be safe
734
-
735
- if (false !== filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) {
736
- return $ip;
737
- }
738
- }
739
- }
740
- }
741
  }
742
 
743
  ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -755,15 +782,15 @@ function seopress_get_ip_address() {
755
  * @author Benjamin
756
  */
757
  function seopress_get_toggle_option($feature) {
758
- $seopress_get_toggle_option = get_option('seopress_toggle');
759
- if ( ! empty($seopress_get_toggle_option)) {
760
- foreach ($seopress_get_toggle_option as $key => $seopress_get_toggle_value) {
761
- $options[$key] = $seopress_get_toggle_value;
762
- if (isset($seopress_get_toggle_option['toggle-' . $feature])) {
763
- return $seopress_get_toggle_option['toggle-' . $feature];
764
- }
765
- }
766
- }
767
  }
768
 
769
  // Is Titles enable?
@@ -771,75 +798,75 @@ function seopress_get_toggle_option($feature) {
771
  * @since 3.8
772
  */
773
  function seopress_get_toggle_titles_option() {
774
- $seopress_get_toggle_titles_option = get_option('seopress_toggle');
775
- if ( ! empty($seopress_get_toggle_titles_option)) {
776
- foreach ($seopress_get_toggle_titles_option as $key => $seopress_get_toggle_titles_value) {
777
- $options[$key] = $seopress_get_toggle_titles_value;
778
- }
779
- if (isset($seopress_get_toggle_titles_option['toggle-titles'])) {
780
- return $seopress_get_toggle_titles_option['toggle-titles'];
781
- }
782
- }
783
  }
784
  // Is Social enable?
785
  /**
786
  * @since 3.8
787
  */
788
  function seopress_get_toggle_social_option() {
789
- $seopress_get_toggle_social_option = get_option('seopress_toggle');
790
- if ( ! empty($seopress_get_toggle_social_option)) {
791
- foreach ($seopress_get_toggle_social_option as $key => $seopress_get_toggle_social_value) {
792
- $options[$key] = $seopress_get_toggle_social_value;
793
- }
794
- if (isset($seopress_get_toggle_social_option['toggle-social'])) {
795
- return $seopress_get_toggle_social_option['toggle-social'];
796
- }
797
- }
798
  }
799
  // Is XML Sitemap enable?
800
  /**
801
  * @since 3.8
802
  */
803
  function seopress_get_toggle_xml_sitemap_option() {
804
- $seopress_get_toggle_xml_sitemap_option = get_option('seopress_toggle');
805
- if ( ! empty($seopress_get_toggle_xml_sitemap_option)) {
806
- foreach ($seopress_get_toggle_xml_sitemap_option as $key => $seopress_get_toggle_xml_sitemap_value) {
807
- $options[$key] = $seopress_get_toggle_xml_sitemap_value;
808
- }
809
- if (isset($seopress_get_toggle_xml_sitemap_option['toggle-xml-sitemap'])) {
810
- return $seopress_get_toggle_xml_sitemap_option['toggle-xml-sitemap'];
811
- }
812
- }
813
  }
814
  // Is Google Analytics enable?
815
  /**
816
  * @since 3.8
817
  */
818
  function seopress_get_toggle_google_analytics_option() {
819
- $seopress_get_toggle_google_analytics_option = get_option('seopress_toggle');
820
- if ( ! empty($seopress_get_toggle_google_analytics_option)) {
821
- foreach ($seopress_get_toggle_google_analytics_option as $key => $seopress_get_toggle_google_analytics_value) {
822
- $options[$key] = $seopress_get_toggle_google_analytics_value;
823
- }
824
- if (isset($seopress_get_toggle_google_analytics_option['toggle-google-analytics'])) {
825
- return $seopress_get_toggle_google_analytics_option['toggle-google-analytics'];
826
- }
827
- }
828
  }
829
  // Is Advanced enable?
830
  /**
831
  * @since 3.8
832
  */
833
  function seopress_get_toggle_advanced_option() {
834
- $seopress_get_toggle_advanced_option = get_option('seopress_toggle');
835
- if ( ! empty($seopress_get_toggle_advanced_option)) {
836
- foreach ($seopress_get_toggle_advanced_option as $key => $seopress_get_toggle_advanced_value) {
837
- $options[$key] = $seopress_get_toggle_advanced_value;
838
- }
839
- if (isset($seopress_get_toggle_advanced_option['toggle-advanced'])) {
840
- return $seopress_get_toggle_advanced_option['toggle-advanced'];
841
- }
842
- }
843
  }
844
 
845
  ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -850,113 +877,113 @@ function seopress_get_toggle_advanced_option() {
850
  * @deprecated 4.3.0
851
  */
852
  function seopress_xml_sitemap_general_enable_option() {
853
- if ( ! function_exists('seopress_get_service')) {
854
- return '1';
855
- }
856
 
857
- return seopress_get_service('SitemapOption')->isEnabled();
858
  }
859
 
860
  /**
861
  * @deprecated 4.3.0
862
  */
863
  function seopress_xml_sitemap_post_types_list_option() {
864
- if ( ! function_exists('seopress_get_service')) {
865
- return '';
866
- }
867
 
868
- return seopress_get_service('SitemapOption')->getPostTypesList();
869
  }
870
 
871
  /**
872
  * @deprecated 4.3.0
873
  */
874
  function seopress_xml_sitemap_taxonomies_list_option() {
875
- if ( ! function_exists('seopress_get_service')) {
876
- return '';
877
- }
878
 
879
- return seopress_get_service('SitemapOption')->getTaxonomiesList();
880
  }
881
 
882
  /**
883
  * @deprecated 4.3.0
884
  */
885
  function seopress_xml_sitemap_author_enable_option() {
886
- if ( ! function_exists('seopress_get_service')) {
887
- return '';
888
- }
889
 
890
- return seopress_get_service('SitemapOption')->authorIsEnable();
891
  }
892
 
893
  /**
894
  * @deprecated 4.3.0
895
  */
896
  function seopress_xml_sitemap_img_enable_option() {
897
- if ( ! function_exists('seopress_get_service')) {
898
- return '';
899
- }
900
 
901
- return seopress_get_service('SitemapOption')->imageIsEnable();
902
  }
903
 
904
  //Rewrite Rules for XML Sitemap
905
  if ('1' == seopress_xml_sitemap_general_enable_option() && '1' == seopress_get_toggle_option('xml-sitemap')) {
906
- function seopress_sitemaps_headers() {
907
- if ( ! function_exists('seopress_get_service')) {
908
- return;
909
- }
910
-
911
- seopress_get_service('SitemapHeaders')->printHeaders();
912
- }
913
-
914
- //WPML compatibility
915
- if (defined('ICL_SITEPRESS_VERSION')) {
916
- add_filter('request', 'seopress_wpml_block_secondary_languages');
917
- }
918
-
919
- function seopress_wpml_block_secondary_languages($q) {
920
- $current_language = apply_filters('wpml_current_language', false);
921
- $default_language = apply_filters('wpml_default_language', false);
922
- if ($current_language !== $default_language) {
923
- unset($q['seopress_sitemap']);
924
- unset($q['seopress_cpt']);
925
- unset($q['seopress_paged']);
926
- unset($q['seopress_author']);
927
- unset($q['seopress_sitemap_xsl']);
928
- }
929
-
930
- return $q;
931
- }
932
  }
933
 
934
  function seopress_disable_qm($allcaps, $caps, $args) {
935
- $allcaps['view_query_monitor'] = false;
936
 
937
- return $allcaps;
938
  }
939
  ///////////////////////////////////////////////////////////////////////////////////////////////////
940
  // Remove Admin Bar with Content Analysis
941
  ///////////////////////////////////////////////////////////////////////////////////////////////////
942
  function seopress_clean_content_analysis() {
943
- if (current_user_can('edit_posts')) {
944
- if (isset($_GET['no_admin_bar']) && '1' === $_GET['no_admin_bar']) {
945
- //Remove admin bar
946
- add_filter('show_admin_bar', '__return_false');
947
-
948
- //Disable Query Monitor
949
- add_filter('user_has_cap', 'seopress_disable_qm', 10, 3);
950
-
951
- //Disable wptexturize
952
- add_filter('run_wptexturize', '__return_false');
953
-
954
- //Oxygen compatibility
955
- if (function_exists('ct_template_output')) { //disable for Oxygen
956
- add_action('template_redirect', 'seopress_get_oxygen_content');
957
- }
958
- }
959
- }
960
  }
961
  add_action('plugins_loaded', 'seopress_clean_content_analysis');
962
 
@@ -964,30 +991,30 @@ add_action('plugins_loaded', 'seopress_clean_content_analysis');
964
  // Test abolute URLs (return true if absolute)
965
  ///////////////////////////////////////////////////////////////////////////////////////////////////
966
  function seopress_is_absolute($url) {
967
- $pattern = "%^(?:(?:https?|ftp)://)(?:\S+(?::\S*)?@|\d{1,3}(?:\.\d{1,3}){3}|(?:(?:[a-z\d\x{00a1}-\x{ffff}]+-?)*[a-z\d\x{00a1}-\x{ffff}]+)(?:\.(?:[a-z\d\x{00a1}-\x{ffff}]+-?)*[a-z\d\x{00a1}-\x{ffff}]+)*(?:\.[a-z\x{00a1}-\x{ffff}]{2,6}))(?::\d+)?(?:[^\s]*)?$%iu";
968
 
969
- return (bool) preg_match($pattern, $url);
970
  }
971
 
972
  ///////////////////////////////////////////////////////////////////////////////////////////////////
973
  // Manage localized links
974
  ///////////////////////////////////////////////////////////////////////////////////////////////////
975
  function seopress_get_locale() {
976
- switch (get_user_locale(get_current_user_id())) {
977
- case 'fr_FR':
978
- case 'fr_BE':
979
- case 'fr_CA':
980
- case 'fr_LU':
981
- case 'fr_MC':
982
- case 'fr_CH':
983
- $locale_link = 'fr';
984
- break;
985
- default:
986
- $locale_link = '';
987
- break;
988
- }
989
-
990
- return $locale_link;
991
  }
992
 
993
  /**
@@ -1004,15 +1031,15 @@ function seopress_get_locale() {
1004
  * @author Benjamin
1005
  */
1006
  function seopress_tooltip($tooltip_title, $tooltip_desc, $tooltip_code) {
1007
- $html =
1008
- '<button type="button" class="sp-tooltip"><span class="dashicons dashicons-editor-help"></span>
1009
  <span class="sp-tooltiptext" role="tooltip" tabindex="0">
1010
  <span class="sp-tooltip-headings">' . $tooltip_title . '</span>
1011
  <span class="sp-tooltip-desc">' . $tooltip_desc . '</span>
1012
  <span class="sp-tooltip-code">' . $tooltip_code . '</span>
1013
  </span></button>';
1014
 
1015
- return $html;
1016
  }
1017
 
1018
  /**
@@ -1029,14 +1056,14 @@ function seopress_tooltip($tooltip_title, $tooltip_desc, $tooltip_code) {
1029
  * @author Benjamin
1030
  */
1031
  function seopress_tooltip_alt($tooltip_anchor, $tooltip_desc) {
1032
- $html =
1033
- '<button type="button" class="sp-tooltip alt">' . $tooltip_anchor . '
1034
  <span class="sp-tooltiptext" role="tooltip" tabindex="0">
1035
  <span class="sp-tooltip-desc">' . $tooltip_desc . '</span>
1036
  </span>
1037
  </button>';
1038
 
1039
- return $html;
1040
  }
1041
 
1042
  /**
@@ -1051,10 +1078,10 @@ function seopress_tooltip_alt($tooltip_anchor, $tooltip_desc) {
1051
  * @author Benjamin
1052
  */
1053
  function seopress_remove_utf8_bom($text) {
1054
- $bom = pack('H*', 'EFBBBF');
1055
- $text = preg_replace("/^$bom/", '', $text);
1056
 
1057
- return $text;
1058
  }
1059
 
1060
  /**
@@ -1069,69 +1096,69 @@ function seopress_remove_utf8_bom($text) {
1069
  * @author Benjamin
1070
  */
1071
  function seopress_notification($args) {
1072
- if ( ! empty($args)) {
1073
- $id = isset($args['id']) ? $args['id'] : null;
1074
- $title = isset($args['title']) ? $args['title'] : null;
1075
- $desc = isset($args['desc']) ? $args['desc'] : null;
1076
- $impact = isset($args['impact']) ? $args['impact'] : [];
1077
- $link = isset($args['link']) ? $args['link'] : null;
1078
- $deleteable = isset($args['deleteable']) ? $args['deleteable'] : null;
1079
- $icon = isset($args['icon']) ? $args['icon'] : null;
1080
-
1081
- $class = '';
1082
- if ( ! empty($impact)) {
1083
- $class .= ' impact';
1084
- $class .= ' ' . key($impact);
1085
- }
1086
-
1087
- if (true === $deleteable) {
1088
- $class .= ' deleteable';
1089
- }
1090
-
1091
- $html = '<div id="' . $id . '-alert" class="seopress-alert">';
1092
-
1093
- if ( ! empty($impact)) {
1094
- $html .= '<span class="screen-reader-text">' . reset($impact) . '</span>';
1095
- }
1096
-
1097
- if ( ! empty($icon)) {
1098
- $html .= '<span class="dashicons ' . $icon . '"></span>';
1099
- } else {
1100
- $html .= '<span class="dashicons dashicons-info"></span>';
1101
- }
1102
-
1103
- $html .= '<div class="notice-left">
1104
  <p>' . $title . '</p>
1105
  <p>' . $desc . '</p>
1106
  ';
1107
 
1108
- $href = '';
1109
- if (function_exists('seopress_get_locale') && 'fr' == seopress_get_locale() && isset($link['fr'])) {
1110
- $href = ' href="' . $link['fr'] . '"';
1111
- } elseif (isset($link['en'])) {
1112
- $href = ' href="' . $link['en'] . '"';
1113
- }
1114
-
1115
- $target = '';
1116
- if (isset($link['external']) && true === $link['external']) {
1117
- $target = ' target="_blank"';
1118
- }
1119
-
1120
- if ( ! empty($link) || true === $deleteable) {
1121
- $html .= '<div class="notice-right">';
1122
-
1123
- if ( ! empty($link)) {
1124
- $html .= '<a class="button-primary"' . $href . $target . '>' . $link['title'] . '</a>';
1125
- }
1126
- if (true === $deleteable) {
1127
- $html .= '<span name="notice-title-tag" id="' . $id . '" class="dashicons dashicons-no-alt remove-notice" data-notice="' . $id . '"></span>';
1128
- }
1129
-
1130
- $html .= '</div>';
1131
- }
1132
- $html .= '</div></div>';
1133
- echo $html;
1134
- }
1135
  }
1136
  /**
1137
  * Filter the capability to allow other roles to use the plugin.
@@ -1146,12 +1173,12 @@ function seopress_notification($args) {
1146
  * @return (string)
1147
  **/
1148
  function seopress_capability($cap, $context = '') {
1149
- $newcap = apply_filters('seopress_capability', $cap, $context);
1150
- if ( ! current_user_can($newcap)) {
1151
- return $cap;
1152
- }
1153
 
1154
- return $newcap;
1155
  }
1156
 
1157
  /**
@@ -1164,15 +1191,15 @@ function seopress_capability($cap, $context = '') {
1164
  * @return (bool)
1165
  **/
1166
  function is_seopress_page() {
1167
- if ( ! is_admin() && ( ! isset($_REQUEST['page']) || ! isset($_REQUEST['post_type']))) {
1168
- return false;
1169
- }
1170
-
1171
- if (isset($_REQUEST['page'])) {
1172
- return 0 === strpos($_REQUEST['page'], 'seopress');
1173
- } elseif (isset($_REQUEST['post_type'])) {
1174
- return 0 === strpos($_REQUEST['post_type'], 'seopress');
1175
- }
1176
  }
1177
  /*
1178
  * Only add our notices on our pages
@@ -1184,16 +1211,16 @@ function is_seopress_page() {
1184
  **/
1185
  add_action('in_admin_header', 'seopress_remove_other_notices');
1186
  function seopress_remove_other_notices() {
1187
- if (is_seopress_page()) {
1188
- remove_all_actions('network_admin_notices');
1189
- remove_all_actions('admin_notices');
1190
- remove_all_actions('user_admin_notices');
1191
- remove_all_actions('all_admin_notices');
1192
- add_action('admin_notices', 'seopress_admin_notices');
1193
- if (is_plugin_active('wp-seopress-insights/seopress-insights.php')) {
1194
- add_action('admin_notices', 'seopress_insights_notice');
1195
- }
1196
- }
1197
  }
1198
 
1199
  /**
@@ -1206,7 +1233,7 @@ function seopress_remove_other_notices() {
1206
  * @return (bool)
1207
  **/
1208
  function seopress_admin_notices() {
1209
- do_action('seopress_admin_notices');
1210
  }
1211
 
1212
  /**
@@ -1219,22 +1246,22 @@ function seopress_admin_notices() {
1219
  * @return (bool)
1220
  **/
1221
  function seopress_get_days() {
1222
- $start_of_week = (int) get_option('start_of_week');
1223
-
1224
- return array_map(
1225
- function () use ($start_of_week) {
1226
- static $start_of_week;
1227
-
1228
- return ucfirst(date_i18n('l', strtotime($start_of_week++ - date('w', 0) . ' day', 0)));
1229
- },
1230
- array_combine(
1231
- array_merge(
1232
- array_slice(range(0, 6), $start_of_week, 7),
1233
- array_slice(range(0, 6), 0, $start_of_week)
1234
- ),
1235
- range(0, 6)
1236
- )
1237
- );
1238
  }
1239
 
1240
  /**
@@ -1249,21 +1276,21 @@ function seopress_get_days() {
1249
  * @param mixed $key
1250
  **/
1251
  function seopress_if_key_exists(array $arr, $key) {
1252
- // is in base array?
1253
- if (array_key_exists($key, $arr)) {
1254
- return true;
1255
- }
1256
-
1257
- // check arrays contained in this array
1258
- foreach ($arr as $element) {
1259
- if (is_array($element)) {
1260
- if (seopress_if_key_exists($element, $key)) {
1261
- return true;
1262
- }
1263
- }
1264
- }
1265
-
1266
- return false;
1267
  }
1268
 
1269
  /**
@@ -1276,43 +1303,43 @@ function seopress_if_key_exists(array $arr, $key) {
1276
  * @return null
1277
  **/
1278
  function seopress_get_oxygen_content() {
1279
- if (is_plugin_active('oxygen/functions.php') && function_exists('ct_template_output')) {
1280
- $seopress_get_the_content = ct_template_output();
1281
 
1282
- if (!$seopress_get_the_content) {
1283
- //Get post content
1284
- $seopress_get_the_content = apply_filters('the_content', get_post_field('post_content', get_the_ID()));
1285
- }
1286
 
1287
  $seopress_get_the_content = normalize_whitespace(wp_strip_all_tags($seopress_get_the_content));
1288
 
1289
- if ($seopress_get_the_content) {
1290
- //Get Target Keywords
1291
- if (get_post_meta(get_the_ID(), '_seopress_analysis_target_kw', true)) {
1292
- $seopress_analysis_target_kw = array_filter(explode(',', strtolower(esc_attr(get_post_meta(get_the_ID(), '_seopress_analysis_target_kw', true)))));
1293
-
1294
- //Keywords density
1295
- foreach ($seopress_analysis_target_kw as $kw) {
1296
- if (preg_match_all('#\b(' . $kw . ')\b#iu', $seopress_get_the_content, $m)) {
1297
- $data['kws_density']['matches'][$kw][] = $m[0];
1298
- }
1299
- }
1300
- }
1301
-
1302
- //Words Counter
1303
- $data['words_counter'] = preg_match_all("/\p{L}[\p{L}\p{Mn}\p{Pd}'\x{2019}]*/u", $seopress_get_the_content, $matches);
1304
-
1305
- if ( ! empty($matches[0])) {
1306
- $words_counter_unique = count(array_unique($matches[0]));
1307
- } else {
1308
- $words_counter_unique = '0';
1309
- }
1310
- $data['words_counter_unique'] = $words_counter_unique;
1311
-
1312
- //Update analysis
1313
- update_post_meta(get_the_ID(), '_seopress_analysis_data_oxygen', $data);
1314
- }
1315
- }
1316
  }
1317
 
1318
  /**
@@ -1324,7 +1351,7 @@ function seopress_get_oxygen_content() {
1324
  *
1325
  **/
1326
  function seopress_wizard_follow_us() {
1327
- ?>
1328
  <li class="seopress-wizard-additional-steps">
1329
  <div class="seopress-wizard-next-step-description">
1330
  <p class="next-step-heading"><?php esc_html_e('Follow us:', 'wp-seopress'); ?></p>
@@ -1351,11 +1378,11 @@ function seopress_wizard_follow_us() {
1351
  </li>
1352
  <li class="recommended-item">
1353
  <?php
1354
- if (function_exists('seopress_get_locale') && 'fr' == seopress_get_locale()) {
1355
- $link = 'https://www.seopress.org/fr/blog/category/tutoriels/?utm_source=plugin&utm_medium=wizard&utm_campaign=seopress';
1356
- } else {
1357
- $link = 'https://www.seopress.org/blog/how-to/?utm_source=plugin&utm_medium=wizard&utm_campaign=seopress';
1358
- } ?>
1359
  <a href="<?php echo $link; ?>" target="_blank">
1360
  <span class="dashicons dashicons-format-aside"></span>
1361
  <?php _e('Read our blog posts about SEO concepts, tutorials and more', 'wp-seopress'); ?>
4
  Plugin URI: https://www.seopress.org/
5
  Description: One of the best SEO plugins for WordPress.
6
  Author: SEOPress
7
+ Version: 4.6.0
8
  Author URI: https://www.seopress.org/
9
  License: GPLv2
10
  Text Domain: wp-seopress
13
 
14
  /* Copyright 2016 - 2021 - Benjamin Denis (email : contact@seopress.org)
15
 
16
+ This program is free software; you can redistribute it and/or modify
17
+ it under the terms of the GNU General Public License, version 2, as
18
+ published by the Free Software Foundation.
19
 
20
+ This program is distributed in the hope that it will be useful,
21
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
22
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23
+ GNU General Public License for more details.
24
 
25
+ You should have received a copy of the GNU General Public License
26
+ along with this program; if not, write to the Free Software
27
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
28
  */
29
 
30
  // To prevent calling the plugin directly
31
  if ( ! function_exists('add_action')) {
32
+ echo 'Please don&rsquo;t call the plugin directly. Thanks :)';
33
+ exit;
34
  }
35
 
36
  ///////////////////////////////////////////////////////////////////////////////////////////////////
37
  //Hooks activation
38
  ///////////////////////////////////////////////////////////////////////////////////////////////////
39
  function seopress_activation() {
40
+ add_option('seopress_activated', 'yes');
41
+ flush_rewrite_rules(false);
42
+ do_action('seopress_activation');
43
  }
44
  register_activation_hook(__FILE__, 'seopress_activation');
45
 
46
  function seopress_deactivation() {
47
+ deactivate_plugins(['wp-seopress-pro/seopress-pro.php', 'wp-seopress-insights/seopress-insights.php']);
48
 
49
+ delete_option('seopress_activated');
50
+ flush_rewrite_rules(false);
51
+ do_action('seopress_deactivation');
52
  }
53
  register_deactivation_hook(__FILE__, 'seopress_deactivation');
54
 
55
  ///////////////////////////////////////////////////////////////////////////////////////////////////
56
  //Define
57
  ///////////////////////////////////////////////////////////////////////////////////////////////////
58
+ define('SEOPRESS_VERSION', '4.6.0');
59
  define('SEOPRESS_AUTHOR', 'Benjamin Denis');
60
  define('SEOPRESS_PLUGIN_DIR_PATH', plugin_dir_path(__FILE__));
61
  define('SEOPRESS_TEMPLATE_DIR', SEOPRESS_PLUGIN_DIR_PATH . 'templates');
65
  use SEOPress\Core\Kernel;
66
 
67
  if (file_exists(__DIR__ . '/vendor/autoload.php')) {
68
+ require_once __DIR__ . '/vendor/autoload.php';
69
+ require_once __DIR__ . '/seopress-functions.php';
70
+
71
+ Kernel::execute([
72
+ 'file' => __FILE__,
73
+ 'slug' => 'wp-seopress',
74
+ 'main_file' => 'seopress',
75
+ 'root' => __DIR__,
76
+ ]);
77
  }
78
 
79
  function seopress_titles_single_cpt_enable_option($cpt) {
80
+ $current_cpt = null;
81
+ $seopress_titles_single_enable_option = get_option('seopress_titles_option_name');
82
+ if ( ! empty($seopress_titles_single_enable_option)) {
83
+ foreach ($seopress_titles_single_enable_option as $key => $seopress_titles_single_enable_value) {
84
+ $options[$key] = $seopress_titles_single_enable_value;
85
+ if (isset($seopress_titles_single_enable_option['seopress_titles_single_titles'][$cpt]['enable'])) {
86
+ $current_cpt = $seopress_titles_single_enable_option['seopress_titles_single_titles'][$cpt]['enable'];
87
+ }
88
+ }
89
+ }
90
+
91
+ return $current_cpt;
92
  }
93
 
94
  //Archive CPT Titles
95
  function seopress_titles_archive_titles_option() {
96
+ global $post;
97
+ $seopress_get_current_cpt = get_post_type($post);
98
+
99
+ $seopress_titles_archive_titles_option = get_option('seopress_titles_option_name');
100
+ if ( ! empty($seopress_titles_archive_titles_option)) {
101
+ foreach ($seopress_titles_archive_titles_option as $key => $seopress_titles_archive_titles_value) {
102
+ $options[$key] = $seopress_titles_archive_titles_value;
103
+ }
104
+ if (isset($seopress_titles_archive_titles_option['seopress_titles_archive_titles'][$seopress_get_current_cpt]['title'])) {
105
+ return $seopress_titles_archive_titles_option['seopress_titles_archive_titles'][$seopress_get_current_cpt]['title'];
106
+ }
107
+ }
108
  }
109
 
110
  ///////////////////////////////////////////////////////////////////////////////////////////////////
111
  //SEOPRESS INIT = Admin + Core + API + Translation
112
  ///////////////////////////////////////////////////////////////////////////////////////////////////
113
  function seopress_init($hook) {
114
+ load_plugin_textdomain('wp-seopress', false, dirname(plugin_basename(__FILE__)) . '/languages/');
115
+
116
+ global $pagenow;
117
+ global $typenow;
118
+ global $wp_version;
119
+
120
+ if (is_admin() || is_network_admin()) {
121
+ require_once dirname(__FILE__) . '/inc/admin/plugin-upgrader.php';
122
+ require_once dirname(__FILE__) . '/inc/admin/admin.php';
123
+
124
+ if ('post-new.php' == $pagenow || 'post.php' == $pagenow) {
125
+ if ('seopress_schemas' != $typenow) {
126
+ require_once dirname(__FILE__) . '/inc/admin/admin-metaboxes.php';
127
+ }
128
+ }
129
+ if ('term.php' == $pagenow || 'edit-tags.php' == $pagenow) {
130
+ require_once dirname(__FILE__) . '/inc/admin/admin-term-metaboxes.php';
131
+ }
132
+ require_once dirname(__FILE__) . '/inc/admin/ajax.php';
133
+ if (defined('SEOPRESS_WL_ADMIN_HEADER') && SEOPRESS_WL_ADMIN_HEADER === false) {
134
+ //do not load the SEOPress admin header
135
+ } else {
136
+ require_once dirname(__FILE__) . '/inc/admin/admin-header.php';
137
+ }
138
+ }
139
+
140
+ require_once dirname(__FILE__) . '/inc/functions/options.php';
141
+
142
+ require_once dirname(__FILE__) . '/inc/admin/adminbar.php';
143
+
144
+ remove_action('wp_head', 'rel_canonical'); //remove default WordPress Canonical
145
+
146
+ //Setup/welcome
147
+ if ( ! empty($_GET['page'])) {
148
+ switch ($_GET['page']) {
149
+ case 'seopress-setup':
150
+ include_once dirname(__FILE__) . '/inc/admin/admin-wizard.php';
151
+ break;
152
+ default:
153
+ break;
154
+ }
155
+ }
156
+
157
+ //Elementor
158
+ if (did_action('elementor/loaded')) {
159
+ include_once dirname(__FILE__) . '/inc/admin/page-builders/elementor/elementor-addon.php';
160
+ }
161
+
162
+ //Block Editor
163
+ if (version_compare($wp_version, '5.0', '>=')) {
164
+ include_once dirname(__FILE__) . '/inc/admin/page-builders/gutenberg/gutenberg-addon.php';
165
+ }
166
  }
167
  add_action('plugins_loaded', 'seopress_init', 999);
168
 
173
  * @author Benjamin
174
  */
175
  if ( ! function_exists('array_key_first')) {
176
+ function array_key_first(array $arr) {
177
+ foreach ($arr as $key => $unused) {
178
+ return $key;
179
+ }
180
 
181
+ return null;
182
+ }
183
  }
184
 
185
  /*
189
  * @author Benjamin
190
  */
191
  if ( ! function_exists('array_key_last')) {
192
+ function array_key_last(array $arr) {
193
+ end($arr);
194
+ $key = key($arr);
195
 
196
+ return $key;
197
+ }
198
  }
199
 
200
  ///////////////////////////////////////////////////////////////////////////////////////////////////
201
  //Loads dynamic variables for titles, metas, schemas...
202
  ///////////////////////////////////////////////////////////////////////////////////////////////////
203
  function seopress_dyn_variables_init($variables) {
204
+ $variables = include dirname(__FILE__) . '/inc/functions/variables/dynamic-variables.php';
205
 
206
+ return $variables;
207
  }
208
  add_filter('seopress_dyn_variables_fn', 'seopress_dyn_variables_init');
209
 
212
  ///////////////////////////////////////////////////////////////////////////////////////////////////
213
  //SEOPRESS Options page
214
  function seopress_add_admin_options_scripts($hook) {
215
+ $prefix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
216
+ wp_register_style('seopress-admin', plugins_url('assets/css/seopress' . $prefix . '.css', __FILE__), [], SEOPRESS_VERSION);
217
+ wp_enqueue_style('seopress-admin');
218
+
219
+ if ( ! isset($_GET['page'])) {
220
+ return;
221
+ }
222
+ if ('seopress-network-option' === $_GET['page']) {
223
+ wp_enqueue_script('seopress-network-tabs', plugins_url('assets/js/seopress-network-tabs' . $prefix . '.js', __FILE__), ['jquery'], SEOPRESS_VERSION, true);
224
+ }
225
+
226
+ //Toggle / Notices JS
227
+ $_pages = ['seopress-option' => true, 'seopress-network-option' => true, 'seopress-titles' => true, 'seopress-xml-sitemap' => true, 'seopress-social' => true, 'seopress-google-analytics' => true, 'seopress-pro-page' => true, 'seopress-advanced' => true];
228
+ if (isset($_pages[$_GET['page']])) {
229
+ wp_enqueue_script('seopress-toggle-ajax', plugins_url('assets/js/seopress-dashboard' . $prefix . '.js', __FILE__), ['jquery'], SEOPRESS_VERSION, true);
230
+
231
+ //Features
232
+ $seopress_toggle_features = [
233
+ 'seopress_nonce' => wp_create_nonce('seopress_toggle_features_nonce'),
234
+ 'seopress_toggle_features' => admin_url('admin-ajax.php'),
235
+ 'i18n' => __('has been successfully updated!', 'wp-seopress'),
236
+ ];
237
+ wp_localize_script('seopress-toggle-ajax', 'seopressAjaxToggleFeatures', $seopress_toggle_features);
238
+ }
239
+ unset($_pages);
240
+
241
+ if ('seopress-option' === $_GET['page']) {
242
+ //Notices
243
+ $seopress_hide_notices = [
244
+ 'seopress_nonce' => wp_create_nonce('seopress_hide_notices_nonce'),
245
+ 'seopress_hide_notices' => admin_url('admin-ajax.php'),
246
+ ];
247
+ wp_localize_script('seopress-toggle-ajax', 'seopressAjaxHideNotices', $seopress_hide_notices);
248
+
249
+ //Admin Tabs
250
+ wp_enqueue_script('seopress-reverse-ajax', plugins_url('assets/js/seopress-tabs7' . $prefix . '.js', __FILE__), ['jquery-ui-tabs'], SEOPRESS_VERSION);
251
+
252
+ //Reverse domains
253
+ $seopress_request_reverse = [
254
+ 'seopress_nonce' => wp_create_nonce('seopress_request_reverse_nonce'),
255
+ 'seopress_request_reverse' => admin_url('admin-ajax.php'),
256
+ ];
257
+ wp_localize_script('seopress-reverse-ajax', 'seopressAjaxReverse', $seopress_request_reverse);
258
+
259
+ $seopress_clear_reverse_cache = [
260
+ 'seopress_nonce' => wp_create_nonce('seopress_clear_reverse_cache_nonce'),
261
+ 'seopress_clear_reverse_cache' => admin_url('admin-ajax.php'),
262
+ ];
263
+ wp_localize_script('seopress-reverse-ajax', 'seopressAjaxClearReverseCache', $seopress_clear_reverse_cache);
264
+ }
265
+
266
+ //Migration
267
+ if ('seopress-option' === $_GET['page'] || 'seopress-import-export' === $_GET['page']) {
268
+ wp_enqueue_script('seopress-migrate-ajax', plugins_url('assets/js/seopress-migrate' . $prefix . '.js', __FILE__), ['jquery'], SEOPRESS_VERSION, true);
269
+
270
+ $seopress_migrate = [
271
+ 'seopress_aio_migrate' => [
272
+ 'seopress_nonce' => wp_create_nonce('seopress_aio_migrate_nonce'),
273
+ 'seopress_aio_migration' => admin_url('admin-ajax.php'),
274
+ ],
275
+ 'seopress_yoast_migrate' => [
276
+ 'seopress_nonce' => wp_create_nonce('seopress_yoast_migrate_nonce'),
277
+ 'seopress_yoast_migration' => admin_url('admin-ajax.php'),
278
+ ],
279
+ 'seopress_seo_framework_migrate' => [
280
+ 'seopress_nonce' => wp_create_nonce('seopress_seo_framework_migrate_nonce'),
281
+ 'seopress_seo_framework_migration' => admin_url('admin-ajax.php'),
282
+ ],
283
+ 'seopress_rk_migrate' => [
284
+ 'seopress_nonce' => wp_create_nonce('seopress_rk_migrate_nonce'),
285
+ 'seopress_rk_migration' => admin_url('admin-ajax.php'),
286
+ ],
287
+ 'seopress_squirrly_migrate' => [
288
+ 'seopress_nonce' => wp_create_nonce('seopress_squirrly_migrate_nonce'),
289
+ 'seopress_squirrly_migration' => admin_url('admin-ajax.php'),
290
+ ],
291
+ 'seopress_seo_ultimate_migrate' => [
292
+ 'seopress_nonce' => wp_create_nonce('seopress_seo_ultimate_migrate_nonce'),
293
+ 'seopress_seo_ultimate_migration' => admin_url('admin-ajax.php'),
294
+ ],
295
+ 'seopress_wp_meta_seo_migrate' => [
296
+ 'seopress_nonce' => wp_create_nonce('seopress_meta_seo_migrate_nonce'),
297
+ 'seopress_wp_meta_seo_migration' => admin_url('admin-ajax.php'),
298
+ ],
299
+ 'seopress_premium_seo_pack_migrate' => [
300
+ 'seopress_nonce' => wp_create_nonce('seopress_premium_seo_pack_migrate_nonce'),
301
+ 'seopress_premium_seo_pack_migration' => admin_url('admin-ajax.php'),
302
+ ],
303
+ 'seopress_wpseo_migrate' => [
304
+ 'seopress_nonce' => wp_create_nonce('seopress_wpseo_migrate_nonce'),
305
+ 'seopress_wpseo_migration' => admin_url('admin-ajax.php'),
306
+ ],
307
+ 'seopress_platinum_seo_migrate' => [
308
+ 'seopress_nonce' => wp_create_nonce('seopress_platinum_seo_migrate_nonce'),
309
+ 'seopress_platinum_seo_migration' => admin_url('admin-ajax.php'),
310
+ ],
311
+ 'seopress_smart_crawl_migrate' => [
312
+ 'seopress_nonce' => wp_create_nonce('seopress_smart_crawl_migrate_nonce'),
313
+ 'seopress_smart_crawl_migration' => admin_url('admin-ajax.php'),
314
+ ],
315
+ 'seopress_seopressor_migrate' => [
316
+ 'seopress_nonce' => wp_create_nonce('seopress_seopressor_migrate_nonce'),
317
+ 'seopress_seopressor_migration' => admin_url('admin-ajax.php'),
318
+ ],
319
+ 'seopress_metadata_csv' => [
320
+ 'seopress_nonce' => wp_create_nonce('seopress_export_csv_metadata_nonce'),
321
+ 'seopress_metadata_export' => admin_url('admin-ajax.php'),
322
+ ],
323
+ 'i18n' => [
324
+ 'migration' => __('Migration completed!', 'wp-seopress'),
325
+ 'export' => __('Export completed!', 'wp-seopress'),
326
+ ],
327
+ ];
328
+ wp_localize_script('seopress-migrate-ajax', 'seopressAjaxMigrate', $seopress_migrate);
329
+ }
330
+
331
+ //Tabs
332
+ if ('seopress-titles' === $_GET['page']) {
333
+ wp_enqueue_script('seopress-admin-tabs-js', plugins_url('assets/js/seopress-tabs' . $prefix . '.js', __FILE__), ['jquery-ui-tabs'], SEOPRESS_VERSION);
334
+ }
335
+
336
+ if ('seopress-xml-sitemap' === $_GET['page']) {
337
+ wp_enqueue_script('seopress-admin-tabs-js', plugins_url('assets/js/seopress-tabs4' . $prefix . '.js', __FILE__), ['jquery-ui-tabs'], SEOPRESS_VERSION);
338
+ }
339
+
340
+ if ('seopress-xml-sitemap' === $_GET['page'] || 'seopress-pro-page' === $_GET['page'] || 'seopress-network-option' === $_GET['page']) {
341
+ wp_enqueue_script('seopress-xml-ajax', plugins_url('assets/js/seopress-sitemap-ajax' . $prefix . '.js', __FILE__), ['jquery'], SEOPRESS_VERSION, true);
342
+
343
+ $seopress_ajax_permalinks = [
344
+ 'seopress_nonce' => wp_create_nonce('seopress_flush_permalinks_nonce'),
345
+ 'seopress_ajax_permalinks' => admin_url('admin-ajax.php'),
346
+ ];
347
+ wp_localize_script('seopress-xml-ajax', 'seopressAjaxResetPermalinks', $seopress_ajax_permalinks);
348
+ }
349
+
350
+ if ('seopress-google-analytics' === $_GET['page']) {
351
+ wp_enqueue_style('wp-color-picker');
352
+
353
+ wp_enqueue_script('wp-color-picker-alpha', plugins_url('assets/js/wp-color-picker-alpha.min.js', __FILE__), ['wp-color-picker'], SEOPRESS_VERSION, true);
354
+ $color_picker_strings = [
355
+ 'clear' => __('Clear', 'wp-seopress'),
356
+ 'clearAriaLabel' => __('Clear color', 'wp-seopress'),
357
+ 'defaultString' => __('Default', 'wp-seopress'),
358
+ 'defaultAriaLabel' => __('Select default color', 'wp-seopress'),
359
+ 'pick' => __('Select Color', 'wp-seopress'),
360
+ 'defaultLabel' => __('Color value', 'wp-seopress'),
361
+ ];
362
+ wp_localize_script('wp-color-picker-alpha', 'wpColorPickerL10n', $color_picker_strings);
363
+
364
+ wp_enqueue_script('seopress-admin-tabs-js', plugins_url('assets/js/seopress-tabs6' . $prefix . '.js', __FILE__), ['jquery-ui-tabs', 'wp-color-picker'], SEOPRESS_VERSION);
365
+ }
366
+
367
+ if ('seopress-advanced' === $_GET['page']) {
368
+ wp_enqueue_script('seopress-admin-tabs-js', plugins_url('assets/js/seopress-tabs5' . $prefix . '.js', __FILE__), ['jquery-ui-tabs'], SEOPRESS_VERSION);
369
+ }
370
+
371
+ if ('seopress-import-export' === $_GET['page']) {
372
+ wp_enqueue_script('seopress-admin-tabs-js', plugins_url('assets/js/seopress-tabs8' . $prefix . '.js', __FILE__), ['jquery-ui-tabs'], SEOPRESS_VERSION);
373
+ }
374
+
375
+ if ('seopress-social' === $_GET['page']) {
376
+ wp_enqueue_script('seopress-social-tabs-js', plugins_url('assets/js/seopress-tabs3' . $prefix . '.js', __FILE__), ['jquery-ui-tabs'], SEOPRESS_VERSION);
377
+ wp_enqueue_script('seopress-cpt-tabs-js', plugins_url('assets/js/seopress-tabs2' . $prefix . '.js', __FILE__), ['jquery-ui-tabs'], SEOPRESS_VERSION);
378
+ wp_enqueue_script('seopress-media-uploader-js', plugins_url('assets/js/seopress-media-uploader' . $prefix . '.js', __FILE__), ['jquery'], SEOPRESS_VERSION, false);
379
+ wp_enqueue_media();
380
+ }
381
+
382
+ //CSV Importer
383
+ if ('seopress_csv_importer' === $_GET['page']) {
384
+ wp_enqueue_style('seopress-setup', plugins_url('assets/css/seopress-setup' . $prefix . '.css', __FILE__), ['dashicons'], SEOPRESS_VERSION);
385
+ }
386
  }
387
 
388
  add_action('admin_enqueue_scripts', 'seopress_add_admin_options_scripts', 10, 1);
389
 
390
  //SEOPRESS Admin bar
391
  function seopress_admin_bar_css() {
392
+ $prefix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
393
+ if (is_user_logged_in() && function_exists('seopress_advanced_appearance_adminbar_option') && '1' != seopress_advanced_appearance_adminbar_option()) {
394
+ if (is_admin_bar_showing()) {
395
+ wp_register_style('seopress-admin-bar', plugins_url('assets/css/seopress-admin-bar' . $prefix . '.css', __FILE__), [], SEOPRESS_VERSION);
396
+ wp_enqueue_style('seopress-admin-bar');
397
+ }
398
+ }
399
  }
400
  add_action('init', 'seopress_admin_bar_css', 12, 1);
401
 
402
  //Quick Edit
403
  function seopress_add_admin_options_scripts_quick_edit() {
404
+ $prefix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
405
+ wp_enqueue_script('seopress-quick-edit', plugins_url('assets/js/seopress-quick-edit' . $prefix . '.js', __FILE__), ['jquery', 'inline-edit-post'], SEOPRESS_VERSION, true);
406
  }
407
  add_action('admin_print_scripts-edit.php', 'seopress_add_admin_options_scripts_quick_edit');
408
 
411
  ///////////////////////////////////////////////////////////////////////////////////////////////////
412
  add_filter('admin_body_class', 'seopress_admin_body_class', 100);
413
  function seopress_admin_body_class($classes) {
414
+ if ( ! isset($_GET['page'])) {
415
+ return $classes;
416
+ }
417
+ $_pages = [
418
+ 'seopress_csv_importer' => true,
419
+ 'seopress-option' => true,
420
+ 'seopress-network-option' => true,
421
+ 'seopress-titles' => true,
422
+ 'seopress-xml-sitemap' => true,
423
+ 'seopress-social' => true,
424
+ 'seopress-google-analytics' => true,
425
+ 'seopress-advanced' => true,
426
+ 'seopress-import-export' => true,
427
+ 'seopress-pro-page' => true,
428
+ 'seopress-bot-batch' => true,
429
+ 'seopress-license' => true,
430
+ ];
431
+ if (isset($_pages[$_GET['page']])) {
432
+ $classes .= ' seopress-styles ';
433
+ }
434
+
435
+ return $classes;
436
  }
437
 
438
  ///////////////////////////////////////////////////////////////////////////////////////////////////
445
  */
446
  remove_filter('wp_robots', 'wp_robots_max_image_preview_large');
447
 
448
+ /*
449
+ * Remove WC default meta robots (added in WP 5.7)
450
+ *
451
+ * @since 4.6
452
+ * @todo use wp_robots API
453
+ */
454
+ function seopress_robots_wc_pages($robots) {
455
+ include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
456
+ if (is_plugin_active('woocommerce/woocommerce.php')) {
457
+ if (function_exists('wc_get_page_id')) {
458
+ if (is_page(wc_get_page_id('cart')) || is_page(wc_get_page_id('checkout')) || is_page(wc_get_page_id('myaccount'))) {
459
+ if ('0' === get_option('blog_public')) {
460
+ return $robots;
461
+ } else {
462
+ unset($robots);
463
+ $robots = [];
464
+
465
+ return $robots;
466
+ }
467
+ }
468
+ }
469
+ }
470
+
471
+ return $robots;
472
+ }
473
+ add_filter('wp_robots', 'seopress_robots_wc_pages', 20);
474
+
475
  ///////////////////////////////////////////////////////////////////////////////////////////////////
476
  //3rd plugins compatibility
477
  ///////////////////////////////////////////////////////////////////////////////////////////////////
478
  //Jetpack
479
  function seopress_compatibility_jetpack() {
480
+ if (function_exists('is_plugin_active')) {
481
+ if (is_plugin_active('jetpack/jetpack.php') && ! is_admin()) {
482
+ add_filter('jetpack_enable_open_graph', '__return_false');
483
+ }
484
+ }
485
  }
486
  add_action('wp_head', 'seopress_compatibility_jetpack', 0);
487
 
491
  * @since 3.8.1
492
  */
493
  function seopress_compatibility_woocommerce() {
494
+ if (function_exists('is_plugin_active')) {
495
+ if (is_plugin_active('woocommerce/woocommerce.php') && ! is_admin()) {
496
+ remove_action('wp_head', 'wc_page_noindex');
497
+ }
498
+ }
499
  }
500
  add_action('wp_head', 'seopress_compatibility_woocommerce', 0);
501
 
511
  * @param mixed $blog_id
512
  */
513
  function seopress_remove_wpml_home_url_filter($home_url, $url, $path, $orig_scheme, $blog_id) {
514
+ return $url;
515
  }
516
 
517
  /*
521
  */
522
  add_action('do_meta_boxes', 'seopress_remove_metaboxes', 10);
523
  function seopress_remove_metaboxes() {
524
+ //Oxygen Builder
525
+ remove_meta_box('ct_views_cpt', 'seopress_404', 'normal');
526
+ remove_meta_box('ct_views_cpt', 'seopress_schemas', 'normal');
527
+ remove_meta_box('ct_views_cpt', 'seopress_bot', 'normal');
528
  }
529
 
530
  ///////////////////////////////////////////////////////////////////////////////////////////////////
531
  //Credits footer
532
  ///////////////////////////////////////////////////////////////////////////////////////////////////
533
  function seopress_custom_credits_footer() {
534
+ $html = '<span id="seopress-footer-credits">
535
  <span class="dashicons dashicons-wordpress"></span>
536
  ' . __("You like SEOPress? Don't forget to rate it 5 stars!", 'wp-seopress') . '<span class="wporg-ratings rating-stars">';
537
+ for ($i=1; $i < 6; ++$i) {
538
+ $html .= '<a href="//wordpress.org/support/view/plugin-reviews/wp-seopress?rate=' . $i . '#postform" data-rating="' . $i . '" title="" target="_blank"><span class="dashicons dashicons-star-filled" style="color:#FFDE24 !important;"></span></a>';
539
+ }
540
+ $html .= '</span>
541
  <script>
542
  jQuery(document).ready( function($) {
543
  $(".rating-stars").find("a").hover(
558
  </script>
559
  </span>';
560
 
561
+ return $html;
562
  }
563
  if ((isset($_GET['page']) && (
564
+ 'seopress-option' == $_GET['page']
565
+ || 'seopress-network-option' == $_GET['page']
566
+ || 'seopress-titles' == $_GET['page']
567
+ || 'seopress-xml-sitemap' == $_GET['page']
568
+ || 'seopress-social' == $_GET['page']
569
+ || 'seopress-google-analytics' == $_GET['page']
570
+ || 'seopress-advanced' == $_GET['page']
571
+ || 'seopress-pro-page' == $_GET['page']
572
+ || 'seopress-import-export' == $_GET['page']
573
+ || 'seopress-bot-batch' == $_GET['page']
574
+ || 'seopress-insights' == $_GET['page']
575
+ || 'seopress-license' == $_GET['page']))
576
+ || (isset($_GET['post_type']) && (
577
+ 'seopress_404' == $_GET['post_type']
578
+ || 'seopress_schemas' == $_GET['post_type']
579
+ || 'seopress_bot' == $_GET['post_type']
580
+ || 'seopress_backlinks' == $_GET['post_type']))) {
581
+ add_filter('admin_footer_text', 'seopress_custom_credits_footer');
582
  }
583
 
584
  ///////////////////////////////////////////////////////////////////////////////////////////////////
587
  add_filter('plugin_action_links', 'seopress_plugin_action_links', 10, 2);
588
 
589
  function seopress_plugin_action_links($links, $file) {
590
+ static $this_plugin;
591
+
592
+ if ( ! $this_plugin) {
593
+ $this_plugin = plugin_basename(__FILE__);
594
+ }
595
+
596
+ if ($file == $this_plugin) {
597
+ $settings_link = '<a href="' . admin_url('admin.php?page=seopress-option') . '">' . __('Settings', 'wp-seopress') . '</a>';
598
+ $website_link = '<a href="https://www.seopress.org/support/" target="_blank">' . __('Docs', 'wp-seopress') . '</a>';
599
+ $wizard_link = '<a href="' . admin_url('admin.php?page=seopress-setup') . '">' . __('Configuration Wizard', 'wp-seopress') . '</a>';
600
+ if ( ! is_plugin_active('wp-seopress-pro/seopress-pro.php')) {
601
+ $pro_link = '<a href="https://www.seopress.org/seopress-pro/" style="color:red;font-weight:bold" target="_blank">' . __('GO PRO!', 'wp-seopress') . '</a>';
602
+ array_unshift($links, $pro_link);
603
+ }
604
+ if (is_plugin_active('wp-seopress-pro/seopress-pro.php') || is_plugin_active('wp-seopress-insights/seopress-insights.php')) {
605
+ if (array_key_exists('deactivate', $links) && in_array($file, [
606
+ 'wp-seopress/seopress.php',
607
+ ]));
608
+ unset($links['deactivate']);
609
+ }
610
 
611
  if (function_exists('seopress_get_toggle_white_label_option') && '1' == seopress_get_toggle_white_label_option() && function_exists('seopress_white_label_help_links_option') && '1' === seopress_white_label_help_links_option()) {
612
  array_unshift($links, $settings_link, $wizard_link);
613
  } else {
614
  array_unshift($links, $settings_link, $wizard_link, $website_link);
615
  }
616
+ }
617
 
618
+ return $links;
619
  }
620
 
621
  /**
628
  * @return (array) $wp_post_types
629
  **/
630
  function seopress_get_post_types() {
631
+ if ( ! function_exists('seopress_get_service')) {
632
+ global $wp_post_types;
633
+
634
+ $args = [
635
+ 'show_ui' => true,
636
+ 'public' => true,
637
+ ];
638
+
639
+ $output = 'objects'; // names or objects, note names is the default
640
+ $operator = 'and'; // 'and' or 'or'
641
+
642
+ $post_types = get_post_types($args, $output, $operator);
643
+ unset(
644
+ $post_types['attachment'],
645
+ $post_types['seopress_rankings'],
646
+ $post_types['seopress_backlinks'],
647
+ $post_types['seopress_404'],
648
+ $post_types['elementor_library'],
649
+ $post_types['customer_discount'],
650
+ $post_types['cuar_private_file'],
651
+ $post_types['cuar_private_page'],
652
+ $post_types['ct_template']
653
+ );
654
+ $post_types = apply_filters('seopress_post_types', $post_types);
655
+
656
+ return $post_types;
657
+ }
658
+
659
+ return seopress_get_service('WordPressData')->getPostTypes();
660
  }
661
 
662
  /**
669
  * @return (array) $taxonomies
670
  **/
671
  function seopress_get_taxonomies($with_terms = false) {
672
+ $args = [
673
+ 'show_ui' => true,
674
+ 'public' => true,
675
+ ];
676
+ $args = apply_filters('seopress_get_taxonomies_args', $args);
677
 
678
+ $output = 'objects'; // or objects
679
+ $operator = 'and'; // 'and' or 'or'
680
+ $taxonomies = get_taxonomies($args, $output, $operator);
681
 
682
+ unset(
683
+ $taxonomies['seopress_bl_competitors']
684
+ );
685
 
686
+ $taxonomies = apply_filters('seopress_get_taxonomies_list', $taxonomies);
687
 
688
+ if ( ! $with_terms) {
689
+ return $taxonomies;
690
+ }
691
 
692
+ foreach ($taxonomies as $_tax_slug => &$_tax) {
693
+ $_tax->terms = get_terms(['taxonomy' => $_tax_slug]);
694
+ }
695
 
696
+ return $taxonomies;
697
  }
698
 
699
  ///////////////////////////////////////////////////////////////////////////////////////////////////
700
  //Get all custom fields (limit: 250)
701
  ///////////////////////////////////////////////////////////////////////////////////////////////////
702
  function seopress_get_custom_fields() {
703
+ $cf_keys = wp_cache_get('seopress_get_custom_fields');
704
 
705
+ if (false === $cf_keys) {
706
+ global $wpdb;
707
 
708
+ $limit = (int) apply_filters('postmeta_form_limit', 250);
709
+ $cf_keys = $wpdb->get_col($wpdb->prepare("
710
  SELECT DISTINCT meta_key
711
  FROM $wpdb->postmeta
712
  GROUP BY meta_key
714
  ORDER BY meta_key
715
  LIMIT %d", $limit));
716
 
717
+ if (is_plugin_active('types/wpcf.php')) {
718
+ $wpcf_fields = get_option('wpcf-fields');
719
 
720
+ if ( ! empty($wpcf_fields)) {
721
+ foreach ($wpcf_fields as $key => $value) {
722
+ $cf_keys[] = $value['meta_key'];
723
+ }
724
+ }
725
+ }
726
 
727
+ $cf_keys = apply_filters('seopress_get_custom_fields', $cf_keys);
728
 
729
+ if ($cf_keys) {
730
+ natcasesort($cf_keys);
731
+ }
732
+ wp_cache_set('seopress_get_custom_fields', $cf_keys);
733
+ }
734
 
735
+ return $cf_keys;
736
  }
737
 
738
  ///////////////////////////////////////////////////////////////////////////////////////////////////
739
  //Check SSL for schema.org
740
  ///////////////////////////////////////////////////////////////////////////////////////////////////
741
  function seopress_check_ssl() {
742
+ if (is_ssl()) {
743
+ return 'https://';
744
+ } else {
745
+ return 'http://';
746
+ }
747
  }
748
 
749
  /**
754
  * @return (string) $ip
755
  **/
756
  function seopress_get_ip_address() {
757
+ foreach (['HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR'] as $key) {
758
+ if (true === array_key_exists($key, $_SERVER)) {
759
+ foreach (explode(',', $_SERVER[$key]) as $ip) {
760
+ $ip = trim($ip); // just to be safe
761
+
762
+ if (false !== filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) {
763
+ return $ip;
764
+ }
765
+ }
766
+ }
767
+ }
768
  }
769
 
770
  ///////////////////////////////////////////////////////////////////////////////////////////////////
782
  * @author Benjamin
783
  */
784
  function seopress_get_toggle_option($feature) {
785
+ $seopress_get_toggle_option = get_option('seopress_toggle');
786
+ if ( ! empty($seopress_get_toggle_option)) {
787
+ foreach ($seopress_get_toggle_option as $key => $seopress_get_toggle_value) {
788
+ $options[$key] = $seopress_get_toggle_value;
789
+ if (isset($seopress_get_toggle_option['toggle-' . $feature])) {
790
+ return $seopress_get_toggle_option['toggle-' . $feature];
791
+ }
792
+ }
793
+ }
794
  }
795
 
796
  // Is Titles enable?
798
  * @since 3.8
799
  */
800
  function seopress_get_toggle_titles_option() {
801
+ $seopress_get_toggle_titles_option = get_option('seopress_toggle');
802
+ if ( ! empty($seopress_get_toggle_titles_option)) {
803
+ foreach ($seopress_get_toggle_titles_option as $key => $seopress_get_toggle_titles_value) {
804
+ $options[$key] = $seopress_get_toggle_titles_value;
805
+ }
806
+ if (isset($seopress_get_toggle_titles_option['toggle-titles'])) {
807
+ return $seopress_get_toggle_titles_option['toggle-titles'];
808
+ }
809
+ }
810
  }
811
  // Is Social enable?
812
  /**
813
  * @since 3.8
814
  */
815
  function seopress_get_toggle_social_option() {
816
+ $seopress_get_toggle_social_option = get_option('seopress_toggle');
817
+ if ( ! empty($seopress_get_toggle_social_option)) {
818
+ foreach ($seopress_get_toggle_social_option as $key => $seopress_get_toggle_social_value) {
819
+ $options[$key] = $seopress_get_toggle_social_value;
820
+ }
821
+ if (isset($seopress_get_toggle_social_option['toggle-social'])) {
822
+ return $seopress_get_toggle_social_option['toggle-social'];
823
+ }
824
+ }
825
  }
826
  // Is XML Sitemap enable?
827
  /**
828
  * @since 3.8
829
  */
830
  function seopress_get_toggle_xml_sitemap_option() {
831
+ $seopress_get_toggle_xml_sitemap_option = get_option('seopress_toggle');
832
+ if ( ! empty($seopress_get_toggle_xml_sitemap_option)) {
833
+ foreach ($seopress_get_toggle_xml_sitemap_option as $key => $seopress_get_toggle_xml_sitemap_value) {
834
+ $options[$key] = $seopress_get_toggle_xml_sitemap_value;
835
+ }
836
+ if (isset($seopress_get_toggle_xml_sitemap_option['toggle-xml-sitemap'])) {
837
+ return $seopress_get_toggle_xml_sitemap_option['toggle-xml-sitemap'];
838
+ }
839
+ }
840
  }
841
  // Is Google Analytics enable?
842
  /**
843
  * @since 3.8
844
  */
845
  function seopress_get_toggle_google_analytics_option() {
846
+ $seopress_get_toggle_google_analytics_option = get_option('seopress_toggle');
847
+ if ( ! empty($seopress_get_toggle_google_analytics_option)) {
848
+ foreach ($seopress_get_toggle_google_analytics_option as $key => $seopress_get_toggle_google_analytics_value) {
849
+ $options[$key] = $seopress_get_toggle_google_analytics_value;
850
+ }
851
+ if (isset($seopress_get_toggle_google_analytics_option['toggle-google-analytics'])) {
852
+ return $seopress_get_toggle_google_analytics_option['toggle-google-analytics'];
853
+ }
854
+ }
855
  }
856
  // Is Advanced enable?
857
  /**
858
  * @since 3.8
859
  */
860
  function seopress_get_toggle_advanced_option() {
861
+ $seopress_get_toggle_advanced_option = get_option('seopress_toggle');
862
+ if ( ! empty($seopress_get_toggle_advanced_option)) {
863
+ foreach ($seopress_get_toggle_advanced_option as $key => $seopress_get_toggle_advanced_value) {
864
+ $options[$key] = $seopress_get_toggle_advanced_value;
865
+ }
866
+ if (isset($seopress_get_toggle_advanced_option['toggle-advanced'])) {
867
+ return $seopress_get_toggle_advanced_option['toggle-advanced'];
868
+ }
869
+ }
870
  }
871
 
872
  ///////////////////////////////////////////////////////////////////////////////////////////////////
877
  * @deprecated 4.3.0
878
  */
879
  function seopress_xml_sitemap_general_enable_option() {
880
+ if ( ! function_exists('seopress_get_service')) {
881
+ return '1';
882
+ }
883
 
884
+ return seopress_get_service('SitemapOption')->isEnabled();
885
  }
886
 
887
  /**
888
  * @deprecated 4.3.0
889
  */
890
  function seopress_xml_sitemap_post_types_list_option() {
891
+ if ( ! function_exists('seopress_get_service')) {
892
+ return '';
893
+ }
894
 
895
+ return seopress_get_service('SitemapOption')->getPostTypesList();
896
  }
897
 
898
  /**
899
  * @deprecated 4.3.0
900
  */
901
  function seopress_xml_sitemap_taxonomies_list_option() {
902
+ if ( ! function_exists('seopress_get_service')) {
903
+ return '';
904
+ }
905
 
906
+ return seopress_get_service('SitemapOption')->getTaxonomiesList();
907
  }
908
 
909
  /**
910
  * @deprecated 4.3.0
911
  */
912
  function seopress_xml_sitemap_author_enable_option() {
913
+ if ( ! function_exists('seopress_get_service')) {
914
+ return '';
915
+ }
916
 
917
+ return seopress_get_service('SitemapOption')->authorIsEnable();
918
  }
919
 
920
  /**
921
  * @deprecated 4.3.0
922
  */
923
  function seopress_xml_sitemap_img_enable_option() {
924
+ if ( ! function_exists('seopress_get_service')) {
925
+ return '';
926
+ }
927
 
928
+ return seopress_get_service('SitemapOption')->imageIsEnable();
929
  }
930
 
931
  //Rewrite Rules for XML Sitemap
932
  if ('1' == seopress_xml_sitemap_general_enable_option() && '1' == seopress_get_toggle_option('xml-sitemap')) {
933
+ function seopress_sitemaps_headers() {
934
+ if ( ! function_exists('seopress_get_service')) {
935
+ return;
936
+ }
937
+
938
+ seopress_get_service('SitemapHeaders')->printHeaders();
939
+ }
940
+
941
+ //WPML compatibility
942
+ if (defined('ICL_SITEPRESS_VERSION')) {
943
+ add_filter('request', 'seopress_wpml_block_secondary_languages');
944
+ }
945
+
946
+ function seopress_wpml_block_secondary_languages($q) {
947
+ $current_language = apply_filters('wpml_current_language', false);
948
+ $default_language = apply_filters('wpml_default_language', false);
949
+ if ($current_language !== $default_language) {
950
+ unset($q['seopress_sitemap']);
951
+ unset($q['seopress_cpt']);
952
+ unset($q['seopress_paged']);
953
+ unset($q['seopress_author']);
954
+ unset($q['seopress_sitemap_xsl']);
955
+ }
956
+
957
+ return $q;
958
+ }
959
  }
960
 
961
  function seopress_disable_qm($allcaps, $caps, $args) {
962
+ $allcaps['view_query_monitor'] = false;
963
 
964
+ return $allcaps;
965
  }
966
  ///////////////////////////////////////////////////////////////////////////////////////////////////
967
  // Remove Admin Bar with Content Analysis
968
  ///////////////////////////////////////////////////////////////////////////////////////////////////
969
  function seopress_clean_content_analysis() {
970
+ if (current_user_can('edit_posts')) {
971
+ if (isset($_GET['no_admin_bar']) && '1' === $_GET['no_admin_bar']) {
972
+ //Remove admin bar
973
+ add_filter('show_admin_bar', '__return_false');
974
+
975
+ //Disable Query Monitor
976
+ add_filter('user_has_cap', 'seopress_disable_qm', 10, 3);
977
+
978
+ //Disable wptexturize
979
+ add_filter('run_wptexturize', '__return_false');
980
+
981
+ //Oxygen compatibility
982
+ if (function_exists('ct_template_output')) { //disable for Oxygen
983
+ add_action('template_redirect', 'seopress_get_oxygen_content');
984
+ }
985
+ }
986
+ }
987
  }
988
  add_action('plugins_loaded', 'seopress_clean_content_analysis');
989
 
991
  // Test abolute URLs (return true if absolute)
992
  ///////////////////////////////////////////////////////////////////////////////////////////////////
993
  function seopress_is_absolute($url) {
994
+ $pattern = "%^(?:(?:https?|ftp)://)(?:\S+(?::\S*)?@|\d{1,3}(?:\.\d{1,3}){3}|(?:(?:[a-z\d\x{00a1}-\x{ffff}]+-?)*[a-z\d\x{00a1}-\x{ffff}]+)(?:\.(?:[a-z\d\x{00a1}-\x{ffff}]+-?)*[a-z\d\x{00a1}-\x{ffff}]+)*(?:\.[a-z\x{00a1}-\x{ffff}]{2,6}))(?::\d+)?(?:[^\s]*)?$%iu";
995
 
996
+ return (bool) preg_match($pattern, $url);
997
  }
998
 
999
  ///////////////////////////////////////////////////////////////////////////////////////////////////
1000
  // Manage localized links
1001
  ///////////////////////////////////////////////////////////////////////////////////////////////////
1002
  function seopress_get_locale() {
1003
+ switch (get_user_locale(get_current_user_id())) {
1004
+ case 'fr_FR':
1005
+ case 'fr_BE':
1006
+ case 'fr_CA':
1007
+ case 'fr_LU':
1008
+ case 'fr_MC':
1009
+ case 'fr_CH':
1010
+ $locale_link = 'fr';
1011
+ break;
1012
+ default:
1013
+ $locale_link = '';
1014
+ break;
1015
+ }
1016
+
1017
+ return $locale_link;
1018
  }
1019
 
1020
  /**
1031
  * @author Benjamin
1032
  */
1033
  function seopress_tooltip($tooltip_title, $tooltip_desc, $tooltip_code) {
1034
+ $html =
1035
+ '<button type="button" class="sp-tooltip"><span class="dashicons dashicons-editor-help"></span>
1036
  <span class="sp-tooltiptext" role="tooltip" tabindex="0">
1037
  <span class="sp-tooltip-headings">' . $tooltip_title . '</span>
1038
  <span class="sp-tooltip-desc">' . $tooltip_desc . '</span>
1039
  <span class="sp-tooltip-code">' . $tooltip_code . '</span>
1040
  </span></button>';
1041
 
1042
+ return $html;
1043
  }
1044
 
1045
  /**
1056
  * @author Benjamin
1057
  */
1058
  function seopress_tooltip_alt($tooltip_anchor, $tooltip_desc) {
1059
+ $html =
1060
+ '<button type="button" class="sp-tooltip alt">' . $tooltip_anchor . '
1061
  <span class="sp-tooltiptext" role="tooltip" tabindex="0">
1062
  <span class="sp-tooltip-desc">' . $tooltip_desc . '</span>
1063
  </span>
1064
  </button>';
1065
 
1066
+ return $html;
1067
  }
1068
 
1069
  /**
1078
  * @author Benjamin
1079
  */
1080
  function seopress_remove_utf8_bom($text) {
1081
+ $bom = pack('H*', 'EFBBBF');
1082
+ $text = preg_replace("/^$bom/", '', $text);
1083
 
1084
+ return $text;
1085
  }
1086
 
1087
  /**
1096
  * @author Benjamin
1097
  */
1098
  function seopress_notification($args) {
1099
+ if ( ! empty($args)) {
1100
+ $id = isset($args['id']) ? $args['id'] : null;
1101
+ $title = isset($args['title']) ? $args['title'] : null;
1102
+ $desc = isset($args['desc']) ? $args['desc'] : null;
1103
+ $impact = isset($args['impact']) ? $args['impact'] : [];
1104
+ $link = isset($args['link']) ? $args['link'] : null;
1105
+ $deleteable = isset($args['deleteable']) ? $args['deleteable'] : null;
1106
+ $icon = isset($args['icon']) ? $args['icon'] : null;
1107
+
1108
+ $class = '';
1109
+ if ( ! empty($impact)) {
1110
+ $class .= ' impact';
1111
+ $class .= ' ' . key($impact);
1112
+ }
1113
+
1114
+ if (true === $deleteable) {
1115
+ $class .= ' deleteable';
1116
+ }
1117
+
1118
+ $html = '<div id="' . $id . '-alert" class="seopress-alert">';
1119
+
1120
+ if ( ! empty($impact)) {
1121
+ $html .= '<span class="screen-reader-text">' . reset($impact) . '</span>';
1122
+ }
1123
+
1124
+ if ( ! empty($icon)) {
1125
+ $html .= '<span class="dashicons ' . $icon . '"></span>';
1126
+ } else {
1127
+ $html .= '<span class="dashicons dashicons-info"></span>';
1128
+ }
1129
+
1130
+ $html .= '<div class="notice-left">
1131
  <p>' . $title . '</p>
1132
  <p>' . $desc . '</p>
1133
  ';
1134
 
1135
+ $href = '';
1136
+ if (function_exists('seopress_get_locale') && 'fr' == seopress_get_locale() && isset($link['fr'])) {
1137
+ $href = ' href="' . $link['fr'] . '"';
1138
+ } elseif (isset($link['en'])) {
1139
+ $href = ' href="' . $link['en'] . '"';
1140
+ }
1141
+
1142
+ $target = '';
1143
+ if (isset($link['external']) && true === $link['external']) {
1144
+ $target = ' target="_blank"';
1145
+ }
1146
+
1147
+ if ( ! empty($link) || true === $deleteable) {
1148
+ $html .= '<div class="notice-right">';
1149
+
1150
+ if ( ! empty($link)) {
1151
+ $html .= '<a class="button-primary"' . $href . $target . '>' . $link['title'] . '</a>';
1152
+ }
1153
+ if (true === $deleteable) {
1154
+ $html .= '<span name="notice-title-tag" id="' . $id . '" class="dashicons dashicons-no-alt remove-notice" data-notice="' . $id . '"></span>';
1155
+ }
1156
+
1157
+ $html .= '</div>';
1158
+ }
1159
+ $html .= '</div></div>';
1160
+ echo $html;
1161
+ }
1162
  }
1163
  /**
1164
  * Filter the capability to allow other roles to use the plugin.
1173
  * @return (string)
1174
  **/
1175
  function seopress_capability($cap, $context = '') {
1176
+ $newcap = apply_filters('seopress_capability', $cap, $context);
1177
+ if ( ! current_user_can($newcap)) {
1178
+ return $cap;
1179
+ }
1180
 
1181
+ return $newcap;
1182
  }
1183
 
1184
  /**
1191
  * @return (bool)
1192
  **/
1193
  function is_seopress_page() {
1194
+ if ( ! is_admin() && ( ! isset($_REQUEST['page']) || ! isset($_REQUEST['post_type']))) {
1195
+ return false;
1196
+ }
1197
+
1198
+ if (isset($_REQUEST['page'])) {
1199
+ return 0 === strpos($_REQUEST['page'], 'seopress');
1200
+ } elseif (isset($_REQUEST['post_type'])) {
1201
+ return 0 === strpos($_REQUEST['post_type'], 'seopress');
1202
+ }
1203
  }
1204
  /*
1205
  * Only add our notices on our pages
1211
  **/
1212
  add_action('in_admin_header', 'seopress_remove_other_notices');
1213
  function seopress_remove_other_notices() {
1214
+ if (is_seopress_page()) {
1215
+ remove_all_actions('network_admin_notices');
1216
+ remove_all_actions('admin_notices');
1217
+ remove_all_actions('user_admin_notices');
1218
+ remove_all_actions('all_admin_notices');
1219
+ add_action('admin_notices', 'seopress_admin_notices');
1220
+ if (is_plugin_active('wp-seopress-insights/seopress-insights.php')) {
1221
+ add_action('admin_notices', 'seopress_insights_notice');
1222
+ }
1223
+ }
1224
  }
1225
 
1226
  /**
1233
  * @return (bool)
1234
  **/
1235
  function seopress_admin_notices() {
1236
+ do_action('seopress_admin_notices');
1237
  }
1238
 
1239
  /**
1246
  * @return (bool)
1247
  **/
1248
  function seopress_get_days() {
1249
+ $start_of_week = (int) get_option('start_of_week');
1250
+
1251
+ return array_map(
1252
+ function () use ($start_of_week) {
1253
+ static $start_of_week;
1254
+
1255
+ return ucfirst(date_i18n('l', strtotime($start_of_week++ - date('w', 0) . ' day', 0)));
1256
+ },
1257
+ array_combine(
1258
+ array_merge(
1259
+ array_slice(range(0, 6), $start_of_week, 7),
1260
+ array_slice(range(0, 6), 0, $start_of_week)
1261
+ ),
1262
+ range(0, 6)
1263
+ )
1264
+ );
1265
  }
1266
 
1267
  /**
1276
  * @param mixed $key
1277
  **/
1278
  function seopress_if_key_exists(array $arr, $key) {
1279
+ // is in base array?
1280
+ if (array_key_exists($key, $arr)) {
1281
+ return true;
1282
+ }
1283
+
1284
+ // check arrays contained in this array
1285
+ foreach ($arr as $element) {
1286
+ if (is_array($element)) {
1287
+ if (seopress_if_key_exists($element, $key)) {
1288
+ return true;
1289
+ }
1290
+ }
1291
+ }
1292
+
1293
+ return false;
1294
  }
1295
 
1296
  /**
1303
  * @return null
1304
  **/
1305
  function seopress_get_oxygen_content() {
1306
+ if (is_plugin_active('oxygen/functions.php') && function_exists('ct_template_output')) {
1307
+ $seopress_get_the_content = ct_template_output();
1308
 
1309
+ if ( ! $seopress_get_the_content) {
1310
+ //Get post content
1311
+ $seopress_get_the_content = apply_filters('the_content', get_post_field('post_content', get_the_ID()));
1312
+ }
1313
 
1314
  $seopress_get_the_content = normalize_whitespace(wp_strip_all_tags($seopress_get_the_content));
1315
 
1316
+ if ($seopress_get_the_content) {
1317
+ //Get Target Keywords
1318
+ if (get_post_meta(get_the_ID(), '_seopress_analysis_target_kw', true)) {
1319
+ $seopress_analysis_target_kw = array_filter(explode(',', strtolower(esc_attr(get_post_meta(get_the_ID(), '_seopress_analysis_target_kw', true)))));
1320
+
1321
+ //Keywords density
1322
+ foreach ($seopress_analysis_target_kw as $kw) {
1323
+ if (preg_match_all('#\b(' . $kw . ')\b#iu', $seopress_get_the_content, $m)) {
1324
+ $data['kws_density']['matches'][$kw][] = $m[0];
1325
+ }
1326
+ }
1327
+ }
1328
+
1329
+ //Words Counter
1330
+ $data['words_counter'] = preg_match_all("/\p{L}[\p{L}\p{Mn}\p{Pd}'\x{2019}]*/u", $seopress_get_the_content, $matches);
1331
+
1332
+ if ( ! empty($matches[0])) {
1333
+ $words_counter_unique = count(array_unique($matches[0]));
1334
+ } else {
1335
+ $words_counter_unique = '0';
1336
+ }
1337
+ $data['words_counter_unique'] = $words_counter_unique;
1338
+
1339
+ //Update analysis
1340
+ update_post_meta(get_the_ID(), '_seopress_analysis_data_oxygen', $data);
1341
+ }
1342
+ }
1343
  }
1344
 
1345
  /**
1351
  *
1352
  **/
1353
  function seopress_wizard_follow_us() {
1354
+ ?>
1355
  <li class="seopress-wizard-additional-steps">
1356
  <div class="seopress-wizard-next-step-description">
1357
  <p class="next-step-heading"><?php esc_html_e('Follow us:', 'wp-seopress'); ?></p>
1378
  </li>
1379
  <li class="recommended-item">
1380
  <?php
1381
+ if (function_exists('seopress_get_locale') && 'fr' == seopress_get_locale()) {
1382
+ $link = 'https://www.seopress.org/fr/blog/category/tutoriels/?utm_source=plugin&utm_medium=wizard&utm_campaign=seopress';
1383
+ } else {
1384
+ $link = 'https://www.seopress.org/blog/how-to/?utm_source=plugin&utm_medium=wizard&utm_campaign=seopress';
1385
+ } ?>
1386
  <a href="<?php echo $link; ?>" target="_blank">
1387
  <span class="dashicons dashicons-format-aside"></span>
1388
  <?php _e('Read our blog posts about SEO concepts, tutorials and more', 'wp-seopress'); ?>
src/Actions/Admin/ContentAnalysis.php ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SEOPress\Actions\Admin;
4
+
5
+ if ( ! defined('ABSPATH')) {
6
+ exit;
7
+ }
8
+
9
+ use SEOPress\Core\Hooks\ExecuteHooksBackend;
10
+
11
+ class ContentAnalysis implements ExecuteHooksBackend {
12
+ /**
13
+ * @since 4.6.0
14
+ *
15
+ * @return void
16
+ */
17
+ public function hooks() {
18
+ add_filter('seopress_content_analysis_content', [$this, 'addContent'], 10, 2);
19
+ }
20
+
21
+ public function addContent($content, $id) {
22
+ if ( ! apply_filters('seopress_content_analysis_acf_fields', true)) {
23
+ return $content;
24
+ }
25
+
26
+ if ( ! function_exists('get_field_objects')) {
27
+ return $content;
28
+ }
29
+
30
+ $content = $content . seopress_get_service('ContentAnalysisAcfFields')->addAcfContent($id);
31
+ $content = strip_tags($content);
32
+
33
+ return $content;
34
+ }
35
+ }
src/Actions/Admin/CustomCapabilities.php ADDED
@@ -0,0 +1,165 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SEOPress\Actions\Admin;
4
+
5
+ if ( ! defined('ABSPATH')) {
6
+ exit;
7
+ }
8
+
9
+ use SEOPress\Core\Hooks\ExecuteHooksBackend;
10
+ use SEOPress\Helpers\PagesAdmin;
11
+
12
+ class CustomCapabilities implements ExecuteHooksBackend {
13
+ /**
14
+ * @since 4.6.0
15
+ *
16
+ * @return void
17
+ */
18
+ public function hooks() {
19
+ add_filter('seopress_capability', [$this, 'custom'], 9999, 2);
20
+ add_filter('option_page_capability_seopress_titles_option_group', [$this, 'capabilitySaveTitlesMetas']);
21
+ add_filter('option_page_capability_seopress_xml_sitemap_option_group', [$this, 'capabilitySaveXmlSitemap']);
22
+ add_filter('option_page_capability_seopress_social_option_group', [$this, 'capabilitySaveSocial']);
23
+ add_filter('option_page_capability_seopress_google_analytics_option_group', [$this, 'capabilitySaveAnalytics']);
24
+ add_filter('option_page_capability_seopress_advanced_option_group', [$this, 'capabilitySaveAdvanced']);
25
+ add_filter('option_page_capability_seopress_tools_option_group', [$this, 'capabilitySaveTools']);
26
+ add_filter('option_page_capability_seopress_import_export_option_group', [$this, 'capabilitySaveImportExport']);
27
+
28
+ add_filter('option_page_capability_seopress_pro_mu_option_group', [$this, 'capabilitySavePro']);
29
+ add_filter('option_page_capability_seopress_pro_option_group', [$this, 'capabilitySavePro']);
30
+ add_filter('option_page_capability_seopress_bot_option_group', [$this, 'capabilitySaveBot']);
31
+
32
+ add_action('init', [$this, 'addCapabilities']);
33
+ }
34
+
35
+ /**
36
+ * @since 4.6.0
37
+ *
38
+ * @return void
39
+ */
40
+ public function addCapabilities() {
41
+ $roles = wp_roles();
42
+ $pages = PagesAdmin::getPages();
43
+
44
+ $role = $roles->role_objects['administrator'];
45
+ foreach ($pages as $key => $value) {
46
+ $role->add_cap(\sprintf('seopress_manage_%s', $value), true);
47
+ }
48
+
49
+ $options = seopress_get_service('AdvancedOption')->getOption();
50
+ if ( ! $options) {
51
+ return;
52
+ }
53
+ $needle = 'seopress_advanced_security_metaboxe';
54
+
55
+ foreach ($pages as $key => $pageValue) {
56
+ $pageForCapability = PagesAdmin::getPageByCapability($pageValue);
57
+ $capability = PagesAdmin::getCapabilityByPage($pageForCapability);
58
+
59
+ $optionKey= sprintf('%s_%s', $needle, $pageForCapability);
60
+ if ( ! \array_key_exists($optionKey, $options)) {
61
+ // Remove all cap for a specific role if option not set
62
+ foreach ($roles->role_objects as $keyRole => $role) {
63
+ if ('administrator' === $keyRole) {
64
+ continue;
65
+ }
66
+
67
+ $role->remove_cap(\sprintf('seopress_manage_%s', $capability));
68
+ }
69
+ } else {
70
+ foreach ($roles->role_objects as $keyRole => $role) {
71
+ if ( ! \array_key_exists($role->name, $options[$optionKey]) && 'administrator' !== $keyRole) {
72
+ $role->remove_cap(\sprintf('seopress_manage_%s', $capability));
73
+ } else {
74
+ $role->add_cap(\sprintf('seopress_manage_%s', $capability), true);
75
+ }
76
+ }
77
+ }
78
+ }
79
+ }
80
+
81
+ /**
82
+ * @since 4.6.0
83
+ *
84
+ * @param string $cap
85
+ * @param string $context
86
+ *
87
+ * @return string
88
+ */
89
+ public function custom($cap, $context) {
90
+ switch ($context) {
91
+ case 'xml_html_sitemap':
92
+ case 'social_networks':
93
+ case 'analytics':
94
+ case 'tools':
95
+ case 'titles_metas':
96
+ case 'advanced':
97
+ case 'pro':
98
+ case 'bot':
99
+ return PagesAdmin::getCustomCapability($context);
100
+ case 'dashboard':
101
+ $capabilities = [
102
+ 'xml_html_sitemap',
103
+ 'social_networks',
104
+ 'analytics',
105
+ 'tools',
106
+ 'titles_metas',
107
+ 'advanced',
108
+ 'pro',
109
+ 'bot',
110
+ ];
111
+ foreach ($capabilities as $key => $value) {
112
+ if (current_user_can(PagesAdmin::getCustomCapability($value))) {
113
+ return PagesAdmin::getCustomCapability($value);
114
+ }
115
+ }
116
+
117
+ return $cap;
118
+ default:
119
+ return $cap;
120
+ }
121
+ }
122
+
123
+ /**
124
+ * @since 4.6.0
125
+ *
126
+ * @param string $cap
127
+ *
128
+ * @return string
129
+ */
130
+ public function capabilitySaveTitlesMetas($cap) {
131
+ return PagesAdmin::getCustomCapability('titles_metas');
132
+ }
133
+
134
+ public function capabilitySaveXmlSitemap($cap) {
135
+ return PagesAdmin::getCustomCapability('xml_html_sitemap');
136
+ }
137
+
138
+ public function capabilitySaveSocial($cap) {
139
+ return PagesAdmin::getCustomCapability('social_networks');
140
+ }
141
+
142
+ public function capabilitySaveAnalytics($cap) {
143
+ return PagesAdmin::getCustomCapability('analytics');
144
+ }
145
+
146
+ public function capabilitySaveAdvanced($cap) {
147
+ return PagesAdmin::getCustomCapability('advanced');
148
+ }
149
+
150
+ public function capabilitySaveTools($cap) {
151
+ return PagesAdmin::getCustomCapability('tools');
152
+ }
153
+
154
+ public function capabilitySaveImportExport($cap) {
155
+ return PagesAdmin::getCustomCapability('tools');
156
+ }
157
+
158
+ public function capabilitySavePro($cap) {
159
+ return PagesAdmin::getCustomCapability('pro');
160
+ }
161
+
162
+ public function capabilitySaveBot($cap) {
163
+ return PagesAdmin::getCustomCapability('bot');
164
+ }
165
+ }
src/Actions/Admin/ManageColumn.php CHANGED
@@ -8,8 +8,7 @@ if ( ! defined('ABSPATH')) {
8
 
9
  use SEOPress\Core\Hooks\ExecuteHooksBackend;
10
 
11
- class ManageColumn implements ExecuteHooksBackend
12
- {
13
  /**
14
  * @since 4.4.0
15
  */
8
 
9
  use SEOPress\Core\Hooks\ExecuteHooksBackend;
10
 
11
+ class ManageColumn implements ExecuteHooksBackend {
 
12
  /**
13
  * @since 4.4.0
14
  */
src/Actions/Ajax/PreviewMetaTitle.php CHANGED
@@ -30,7 +30,7 @@ class PreviewMetaTitle implements ExecuteHooksBackend {
30
  return;
31
  }
32
 
33
- $template = $_GET['template'];
34
  $postId = isset($_GET['post_id']) ? (int) $_GET['post_id'] : null;
35
  $homeId = isset($_GET['home_id']) ? (int) $_GET['home_id'] : null;
36
  $termId = isset($_GET['term_id']) ? (int) $_GET['term_id'] : null;
30
  return;
31
  }
32
 
33
+ $template = stripcslashes($_GET['template']);
34
  $postId = isset($_GET['post_id']) ? (int) $_GET['post_id'] : null;
35
  $homeId = isset($_GET['home_id']) ? (int) $_GET['home_id'] : null;
36
  $termId = isset($_GET['term_id']) ? (int) $_GET['term_id'] : null;
src/Actions/Front/Metas/DescriptionMeta.php CHANGED
@@ -164,6 +164,21 @@ class DescriptionMeta implements ExecuteHooksFrontend {
164
  }
165
  }
166
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
167
  //Default
168
  $descriptionTemplate = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $description);
169
 
@@ -176,6 +191,11 @@ class DescriptionMeta implements ExecuteHooksFrontend {
176
  if ( ! empty($matches2) && ! empty($seopress_titles_ct_template_variables_array) && ! empty($seopress_titles_ct_template_replace_array)) {
177
  $descriptionTemplate = str_replace($seopress_titles_ct_template_variables_array, $seopress_titles_ct_template_replace_array, $descriptionTemplate);
178
  }
 
 
 
 
 
179
  } elseif ('' != seopress_titles_single_desc_option()) { //IS GLOBAL
180
  $description = esc_attr(seopress_titles_single_desc_option());
181
 
@@ -213,6 +233,21 @@ class DescriptionMeta implements ExecuteHooksFrontend {
213
  }
214
  }
215
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
216
  //Default
217
  $descriptionTemplate = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $description);
218
 
@@ -225,6 +260,11 @@ class DescriptionMeta implements ExecuteHooksFrontend {
225
  if ( ! empty($matches2) && ! empty($seopress_titles_ct_template_variables_array) && ! empty($seopress_titles_ct_template_replace_array)) {
226
  $descriptionTemplate = str_replace($seopress_titles_ct_template_variables_array, $seopress_titles_ct_template_replace_array, $descriptionTemplate);
227
  }
 
 
 
 
 
228
  } else {
229
  setup_postdata($post);
230
  if ('' != $seopress_get_the_excerpt || '' != get_the_content()) { //DEFAULT EXCERPT OR THE CONTENT
@@ -249,7 +289,30 @@ class DescriptionMeta implements ExecuteHooksFrontend {
249
  } elseif (is_author() && seopress_titles_archives_author_desc_option()) { //IS AUTHOR
250
  $description = esc_attr(seopress_titles_archives_author_desc_option());
251
 
252
- $descriptionTemplate = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $description);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
253
  } elseif (is_date() && seopress_titles_archives_date_desc_option()) { //IS DATE
254
  $description = esc_attr(seopress_titles_archives_date_desc_option());
255
 
164
  }
165
  }
166
 
167
+ preg_match_all('/%%_ucf_(.*?)%%/', $description, $matches3); //user meta
168
+
169
+ if ( ! empty($matches3)) {
170
+ $seopress_titles_ucf_template_variables_array = [];
171
+ $seopress_titles_ucf_template_replace_array = [];
172
+
173
+ foreach ($matches3['0'] as $key => $value) {
174
+ $seopress_titles_ucf_template_variables_array[] = $value;
175
+ }
176
+
177
+ foreach ($matches3['1'] as $key => $value) {
178
+ $seopress_titles_ucf_template_replace_array[] = esc_attr(get_user_meta(get_current_user_id(), $value, true));
179
+ }
180
+ }
181
+
182
  //Default
183
  $descriptionTemplate = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $description);
184
 
191
  if ( ! empty($matches2) && ! empty($seopress_titles_ct_template_variables_array) && ! empty($seopress_titles_ct_template_replace_array)) {
192
  $descriptionTemplate = str_replace($seopress_titles_ct_template_variables_array, $seopress_titles_ct_template_replace_array, $descriptionTemplate);
193
  }
194
+
195
+ //User meta
196
+ if ( ! empty($matches3) && ! empty($seopress_titles_ucf_template_variables_array) && ! empty($seopress_titles_ucf_template_replace_array)) {
197
+ $descriptionTemplate = str_replace($seopress_titles_ucf_template_variables_array, $seopress_titles_ucf_template_replace_array, $descriptionTemplate);
198
+ }
199
  } elseif ('' != seopress_titles_single_desc_option()) { //IS GLOBAL
200
  $description = esc_attr(seopress_titles_single_desc_option());
201
 
233
  }
234
  }
235
 
236
+ preg_match_all('/%%_ucf_(.*?)%%/', $description, $matches3); //user meta
237
+
238
+ if ( ! empty($matches3)) {
239
+ $seopress_titles_ucf_template_variables_array = [];
240
+ $seopress_titles_ucf_template_replace_array = [];
241
+
242
+ foreach ($matches3['0'] as $key => $value) {
243
+ $seopress_titles_ucf_template_variables_array[] = $value;
244
+ }
245
+
246
+ foreach ($matches3['1'] as $key => $value) {
247
+ $seopress_titles_ucf_template_replace_array[] = esc_attr(get_user_meta(get_current_user_id(), $value, true));
248
+ }
249
+ }
250
+
251
  //Default
252
  $descriptionTemplate = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $description);
253
 
260
  if ( ! empty($matches2) && ! empty($seopress_titles_ct_template_variables_array) && ! empty($seopress_titles_ct_template_replace_array)) {
261
  $descriptionTemplate = str_replace($seopress_titles_ct_template_variables_array, $seopress_titles_ct_template_replace_array, $descriptionTemplate);
262
  }
263
+
264
+ //User meta
265
+ if ( ! empty($matches3) && ! empty($seopress_titles_ucf_template_variables_array) && ! empty($seopress_titles_ucf_template_replace_array)) {
266
+ $descriptionTemplate = str_replace($seopress_titles_ucf_template_variables_array, $seopress_titles_ucf_template_replace_array, $descriptionTemplate);
267
+ }
268
  } else {
269
  setup_postdata($post);
270
  if ('' != $seopress_get_the_excerpt || '' != get_the_content()) { //DEFAULT EXCERPT OR THE CONTENT
289
  } elseif (is_author() && seopress_titles_archives_author_desc_option()) { //IS AUTHOR
290
  $description = esc_attr(seopress_titles_archives_author_desc_option());
291
 
292
+ preg_match_all('/%%_ucf_(.*?)%%/', $description, $matches); //custom fields
293
+
294
+ if ( ! empty($matches)) {
295
+ $seopress_titles_cf_template_variables_array = [];
296
+ $seopress_titles_cf_template_replace_array = [];
297
+
298
+ foreach ($matches['0'] as $key => $value) {
299
+ $seopress_titles_cf_template_variables_array[] = $value;
300
+ }
301
+
302
+ foreach ($matches['1'] as $key => $value) {
303
+ $seopress_titles_cf_template_replace_array[] = esc_attr(get_user_meta(get_current_user_id(), $value, true));
304
+ }
305
+ }
306
+
307
+ //Default
308
+ $descriptionTemplate = esc_attr(seopress_titles_archives_author_desc_option());
309
+
310
+ //Custom fields
311
+ if ( ! empty($matches) && ! empty($seopress_titles_cf_template_variables_array) && ! empty($seopress_titles_cf_template_replace_array)) {
312
+ $descriptionTemplate = str_replace($seopress_titles_cf_template_variables_array, $seopress_titles_cf_template_replace_array, $descriptionTemplate);
313
+ }
314
+
315
+ $descriptionTemplate = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $descriptionTemplate);
316
  } elseif (is_date() && seopress_titles_archives_date_desc_option()) { //IS DATE
317
  $description = esc_attr(seopress_titles_archives_date_desc_option());
318
 
src/Actions/Front/Metas/TitleMeta.php CHANGED
@@ -163,6 +163,21 @@ class TitleMeta implements ExecuteHooksFrontend {
163
  }
164
  }
165
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
166
  //Default
167
  $titleTemplate = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $titleOption);
168
 
@@ -175,6 +190,11 @@ class TitleMeta implements ExecuteHooksFrontend {
175
  if ( ! empty($matches2) && ! empty($seopress_titles_ct_template_variables_array) && ! empty($seopress_titles_ct_template_replace_array)) {
176
  $titleTemplate = str_replace($seopress_titles_ct_template_variables_array, $seopress_titles_ct_template_replace_array, $titleTemplate);
177
  }
 
 
 
 
 
178
  } else { //DEFAULT GLOBAL
179
  $seopress_titles_single_titles_option = esc_attr(seopress_titles_single_titles_option());
180
 
@@ -212,6 +232,21 @@ class TitleMeta implements ExecuteHooksFrontend {
212
  }
213
  }
214
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
215
  //Default
216
  $titleTemplate = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $seopress_titles_single_titles_option);
217
 
@@ -224,6 +259,11 @@ class TitleMeta implements ExecuteHooksFrontend {
224
  if ( ! empty($matches2) && ! empty($seopress_titles_ct_template_variables_array) && ! empty($seopress_titles_ct_template_replace_array)) {
225
  $titleTemplate = str_replace($seopress_titles_ct_template_variables_array, $seopress_titles_ct_template_replace_array, $titleTemplate);
226
  }
 
 
 
 
 
227
  }
228
  } elseif (is_post_type_archive() && seopress_titles_archive_titles_option()) { //IS POST TYPE ARCHIVE
229
  $seopress_titles_archive_titles_option = esc_attr(seopress_titles_archive_titles_option());
@@ -241,7 +281,30 @@ class TitleMeta implements ExecuteHooksFrontend {
241
  } elseif (is_author() && seopress_titles_archives_author_title_option()) { //IS AUTHOR
242
  $seopress_titles_archives_author_title_option = esc_attr(seopress_titles_archives_author_title_option());
243
 
244
- $titleTemplate = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $seopress_titles_archives_author_title_option);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
245
  } elseif (is_date() && seopress_titles_archives_date_title_option()) { //IS DATE
246
  $seopress_titles_archives_date_title_option = esc_attr(seopress_titles_archives_date_title_option());
247
 
163
  }
164
  }
165
 
166
+ preg_match_all('/%%_ucf_(.*?)%%/', $titleOption, $matches3); //user meta
167
+
168
+ if ( ! empty($matches3)) {
169
+ $seopress_titles_ucf_template_variables_array = [];
170
+ $seopress_titles_ucf_template_replace_array = [];
171
+
172
+ foreach ($matches3['0'] as $key => $value) {
173
+ $seopress_titles_ucf_template_variables_array[] = $value;
174
+ }
175
+
176
+ foreach ($matches3['1'] as $key => $value) {
177
+ $seopress_titles_ucf_template_replace_array[] = esc_attr(get_user_meta(get_current_user_id(), $value, true));
178
+ }
179
+ }
180
+
181
  //Default
182
  $titleTemplate = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $titleOption);
183
 
190
  if ( ! empty($matches2) && ! empty($seopress_titles_ct_template_variables_array) && ! empty($seopress_titles_ct_template_replace_array)) {
191
  $titleTemplate = str_replace($seopress_titles_ct_template_variables_array, $seopress_titles_ct_template_replace_array, $titleTemplate);
192
  }
193
+
194
+ //User meta
195
+ if ( ! empty($matches3) && ! empty($seopress_titles_ucf_template_variables_array) && ! empty($seopress_titles_ucf_template_replace_array)) {
196
+ $titleTemplate = str_replace($seopress_titles_ucf_template_variables_array, $seopress_titles_ucf_template_replace_array, $titleTemplate);
197
+ }
198
  } else { //DEFAULT GLOBAL
199
  $seopress_titles_single_titles_option = esc_attr(seopress_titles_single_titles_option());
200
 
232
  }
233
  }
234
 
235
+ preg_match_all('/%%_ucf_(.*?)%%/', $seopress_titles_single_titles_option, $matches3); //user meta
236
+
237
+ if ( ! empty($matches3)) {
238
+ $seopress_titles_ucf_template_variables_array = [];
239
+ $seopress_titles_ucf_template_replace_array = [];
240
+
241
+ foreach ($matches3['0'] as $key => $value) {
242
+ $seopress_titles_ucf_template_variables_array[] = $value;
243
+ }
244
+
245
+ foreach ($matches3['1'] as $key => $value) {
246
+ $seopress_titles_ucf_template_replace_array[] = esc_attr(get_user_meta(get_current_user_id(), $value, true));
247
+ }
248
+ }
249
+
250
  //Default
251
  $titleTemplate = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $seopress_titles_single_titles_option);
252
 
259
  if ( ! empty($matches2) && ! empty($seopress_titles_ct_template_variables_array) && ! empty($seopress_titles_ct_template_replace_array)) {
260
  $titleTemplate = str_replace($seopress_titles_ct_template_variables_array, $seopress_titles_ct_template_replace_array, $titleTemplate);
261
  }
262
+
263
+ //User meta
264
+ if ( ! empty($matches3) && ! empty($seopress_titles_ucf_template_variables_array) && ! empty($seopress_titles_ucf_template_replace_array)) {
265
+ $titleTemplate = str_replace($seopress_titles_ucf_template_variables_array, $seopress_titles_ucf_template_replace_array, $titleTemplate);
266
+ }
267
  }
268
  } elseif (is_post_type_archive() && seopress_titles_archive_titles_option()) { //IS POST TYPE ARCHIVE
269
  $seopress_titles_archive_titles_option = esc_attr(seopress_titles_archive_titles_option());
281
  } elseif (is_author() && seopress_titles_archives_author_title_option()) { //IS AUTHOR
282
  $seopress_titles_archives_author_title_option = esc_attr(seopress_titles_archives_author_title_option());
283
 
284
+ preg_match_all('/%%_ucf_(.*?)%%/', $seopress_titles_archives_author_title_option, $matches); //custom fields
285
+
286
+ if ( ! empty($matches)) {
287
+ $seopress_titles_cf_template_variables_array = [];
288
+ $seopress_titles_cf_template_replace_array = [];
289
+
290
+ foreach ($matches['0'] as $key => $value) {
291
+ $seopress_titles_cf_template_variables_array[] = $value;
292
+ }
293
+
294
+ foreach ($matches['1'] as $key => $value) {
295
+ $seopress_titles_cf_template_replace_array[] = esc_attr(get_user_meta(get_current_user_id(), $value, true));
296
+ }
297
+ }
298
+
299
+ //Default
300
+ $titleTemplate = esc_attr(seopress_titles_archives_author_title_option());
301
+
302
+ //Custom fields
303
+ if ( ! empty($matches) && ! empty($seopress_titles_cf_template_variables_array) && ! empty($seopress_titles_cf_template_replace_array)) {
304
+ $titleTemplate = str_replace($seopress_titles_cf_template_variables_array, $seopress_titles_cf_template_replace_array, $titleTemplate);
305
+ }
306
+
307
+ $titleTemplate = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $titleTemplate);
308
  } elseif (is_date() && seopress_titles_archives_date_title_option()) { //IS DATE
309
  $seopress_titles_archives_date_title_option = esc_attr(seopress_titles_archives_date_title_option());
310
 
src/Actions/Options/Init.php CHANGED
@@ -10,7 +10,8 @@ use SEOPress\Tags\PostTitle;
10
  use SEOPress\Tags\SiteTagline;
11
  use SEOPress\Tags\SiteTitle;
12
 
13
- class Init implements ActivationHook {
 
14
  /**
15
  * @since 4.3.0
16
  *
@@ -192,6 +193,7 @@ class Init implements ActivationHook {
192
  $titleOptions = [
193
  'seopress_titles_home_site_title' => TagCompose::getValueWithTag(SiteTitle::NAME),
194
  'seopress_titles_home_site_desc' => TagCompose::getValueWithTag(SiteTagline::NAME),
 
195
  ];
196
 
197
  //Post Types
10
  use SEOPress\Tags\SiteTagline;
11
  use SEOPress\Tags\SiteTitle;
12
 
13
+ class Init implements ActivationHook
14
+ {
15
  /**
16
  * @since 4.3.0
17
  *
193
  $titleOptions = [
194
  'seopress_titles_home_site_title' => TagCompose::getValueWithTag(SiteTitle::NAME),
195
  'seopress_titles_home_site_desc' => TagCompose::getValueWithTag(SiteTagline::NAME),
196
+ 'seopress_titles_sep' => '-',
197
  ];
198
 
199
  //Post Types
src/Compose/UseTags.php CHANGED
@@ -78,12 +78,11 @@ trait UseTags {
78
  *
79
  * @param string $directory
80
  * @param array $tags
81
- * @param string $subNamespace
82
- * @param mixed $namespacesOption
83
  *
84
  * @return array
85
  */
86
- public function buildTags($directory, $tags = [], $namespacesOption) {
87
  $files = array_diff(scandir($directory), ['..', '.']);
88
 
89
  foreach ($files as $filename) {
@@ -93,10 +92,10 @@ trait UseTags {
93
  $fullPath = sprintf('%s/%s', $directory, $filename);
94
 
95
  if (is_dir($fullPath)) {
96
- $tags = $this->buildTags($fullPath, $tags, [
97
  'root' => $namespacesOption['root'],
98
  'subNamespace' => $namespacesOption['subNamespace'] . $filename . '\\',
99
- ]);
100
  } else {
101
  if (defined($classFile . '::NAME')) {
102
  $name = $classFile::NAME;
@@ -128,10 +127,10 @@ trait UseTags {
128
  return apply_filters('seopress_tags_available', $this->tagsAvailable);
129
  }
130
 
131
- $tags = $this->buildTags(SEOPRESS_PLUGIN_DIR_PATH . 'src/Tags', [], ['root' => '\\SEOPress\\Tags\\%s%s', 'subNamespace' => '']);
132
 
133
  if (defined('SEOPRESS_PRO_PLUGIN_DIR_PATH') && file_exists(SEOPRESS_PRO_PLUGIN_DIR_PATH . 'src/Tags') && is_dir(SEOPRESS_PRO_PLUGIN_DIR_PATH . 'src/Tags')) {
134
- $tags = $this->buildTags(SEOPRESS_PRO_PLUGIN_DIR_PATH . 'src/Tags', $tags, ['root' => '\\SEOPressPro\\Tags\\%s%s', 'subNamespace' => '']);
135
  }
136
 
137
  $this->tagsAvailable = $tags;
78
  *
79
  * @param string $directory
80
  * @param array $tags
81
+ * @param array $namespacesOption
 
82
  *
83
  * @return array
84
  */
85
+ public function buildTags($directory, $namespacesOption, $tags = []) {
86
  $files = array_diff(scandir($directory), ['..', '.']);
87
 
88
  foreach ($files as $filename) {
92
  $fullPath = sprintf('%s/%s', $directory, $filename);
93
 
94
  if (is_dir($fullPath)) {
95
+ $tags = $this->buildTags($fullPath, [
96
  'root' => $namespacesOption['root'],
97
  'subNamespace' => $namespacesOption['subNamespace'] . $filename . '\\',
98
+ ], $tags);
99
  } else {
100
  if (defined($classFile . '::NAME')) {
101
  $name = $classFile::NAME;
127
  return apply_filters('seopress_tags_available', $this->tagsAvailable);
128
  }
129
 
130
+ $tags = $this->buildTags(SEOPRESS_PLUGIN_DIR_PATH . 'src/Tags', ['root' => '\\SEOPress\\Tags\\%s%s', 'subNamespace' => '']);
131
 
132
  if (defined('SEOPRESS_PRO_PLUGIN_DIR_PATH') && file_exists(SEOPRESS_PRO_PLUGIN_DIR_PATH . 'src/Tags') && is_dir(SEOPRESS_PRO_PLUGIN_DIR_PATH . 'src/Tags')) {
133
+ $tags = $this->buildTags(SEOPRESS_PRO_PLUGIN_DIR_PATH . 'src/Tags', ['root' => '\\SEOPressPro\\Tags\\%s%s', 'subNamespace' => ''], $tags);
134
  }
135
 
136
  $this->tagsAvailable = $tags;
src/Constants/Options.php CHANGED
@@ -28,6 +28,13 @@ abstract class Options {
28
  */
29
  const KEY_OPTION_SOCIAL = 'seopress_social_option_name';
30
 
 
 
 
 
 
 
 
31
  /**
32
  * @since 4.5.0
33
  *
28
  */
29
  const KEY_OPTION_SOCIAL = 'seopress_social_option_name';
30
 
31
+ /**
32
+ * @since 4.6.0
33
+ *
34
+ * @var string
35
+ */
36
+ const KEY_OPTION_ADVANCED = 'seopress_advanced_option_name';
37
+
38
  /**
39
  * @since 4.5.0
40
  *
src/Helpers/PagesAdmin.php ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SEOPress\Helpers;
4
+
5
+ defined('ABSPATH') or exit('Cheatin&#8217; uh?');
6
+
7
+ abstract class PagesAdmin {
8
+ const DASHBOARD = 'dashboard';
9
+
10
+ const XML_HTML_SITEMAP = 'xml_html_sitemap';
11
+
12
+ const SOCIAL_NETWORKS = 'social_networks';
13
+
14
+ const TITLE_METAS = 'titles_metas';
15
+
16
+ const ANALYTICS = 'analytics';
17
+
18
+ const ADVANCED = 'advanced';
19
+
20
+ const TOOLS = 'tools';
21
+
22
+ const PRO = 'pro';
23
+
24
+ const SCHEMAS = 'schemas';
25
+
26
+ const BOT = 'bot';
27
+
28
+ const LICENSE = 'license';
29
+
30
+ public static function getPages() {
31
+ return apply_filters('seopress_pages_admin', [
32
+ self::DASHBOARD,
33
+ self::TITLE_METAS,
34
+ self::XML_HTML_SITEMAP,
35
+ self::SOCIAL_NETWORKS,
36
+ self::ANALYTICS,
37
+ self::ADVANCED,
38
+ self::TOOLS,
39
+ self::PRO,
40
+ self::SCHEMAS,
41
+ self::BOT,
42
+ self::LICENSE,
43
+ ]);
44
+ }
45
+
46
+ /**
47
+ * @since 4.6.0
48
+ *
49
+ * @param string $page
50
+ *
51
+ * @return string
52
+ */
53
+ public static function getCapabilityByPage($page) {
54
+ switch ($page) {
55
+ case 'titles-metas':
56
+ return self::TITLE_METAS;
57
+ case 'xml-html-sitemap':
58
+ return self::XML_HTML_SITEMAP;
59
+ case 'social-networks':
60
+ return self::SOCIAL_NETWORKS;
61
+ case 'analytics':
62
+ return self::ANALYTICS;
63
+ case 'tools':
64
+ return self::TOOLS;
65
+ case 'pro':
66
+ return self::PRO;
67
+ case 'advanced':
68
+ return self::ADVANCED;
69
+ case 'schemas':
70
+ return self::SCHEMAS;
71
+ case 'license':
72
+ return self::LICENSE;
73
+ case 'bot':
74
+ return self::BOT;
75
+ default:
76
+ return apply_filters('seopress_get_capability_by_page', null);
77
+ }
78
+ }
79
+
80
+ /**
81
+ * @since 4.6.0
82
+ *
83
+ * @param string $capability
84
+ *
85
+ * @return string
86
+ */
87
+ public static function getPageByCapability($capability) {
88
+ switch ($capability) {
89
+ case self::TITLE_METAS:
90
+ return 'titles-metas';
91
+ case self::XML_HTML_SITEMAP:
92
+ return 'xml-html-sitemap';
93
+ case self::SOCIAL_NETWORKS:
94
+ return 'social-networks';
95
+ case self::ANALYTICS:
96
+ return 'analytics';
97
+ case self::TOOLS:
98
+ return 'tools';
99
+ case self::PRO:
100
+ return 'pro';
101
+ case self::ADVANCED:
102
+ return 'advanced';
103
+ case self::SCHEMAS:
104
+ return 'schemas';
105
+ case self::LICENSE:
106
+ return 'license';
107
+ case self::BOT:
108
+ return 'bot';
109
+ default:
110
+ return apply_filters('seopress_get_page_by_capability', null);
111
+ }
112
+ }
113
+
114
+ /**
115
+ * @since 4.6.0
116
+ *
117
+ * @param string $capability
118
+ *
119
+ * @return string
120
+ */
121
+ public static function getCustomCapability($capability) {
122
+ return sprintf('seopress_manage_%s', $capability);
123
+ }
124
+ }
src/Helpers/RichSnippetType.php ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SEOPress\Helpers;
4
+
5
+ defined('ABSPATH') or exit('Cheatin&#8217; uh?');
6
+
7
+ abstract class RichSnippetType {
8
+ const OPTION_LOCAL_BUSINESS = 'option-local-business';
9
+
10
+ const MANUAL = 'manual';
11
+
12
+ const AUTO = 'auto';
13
+
14
+ const SUB_TYPE = 'sub-type';
15
+
16
+ const DEFAULT_SNIPPET = 'default';
17
+ }
src/JsonSchemas/Image.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SEOPress\JsonSchemas;
4
+
5
+ if ( ! defined('ABSPATH')) {
6
+ exit;
7
+ }
8
+
9
+ use SEOPress\Models\GetJsonData;
10
+ use SEOPress\Models\JsonSchemaValue;
11
+
12
+ class Image extends JsonSchemaValue implements GetJsonData {
13
+ const NAME = 'image';
14
+
15
+ protected function getName() {
16
+ return self::NAME;
17
+ }
18
+
19
+ /**
20
+ * @since 4.6.0
21
+ *
22
+ * @param array $context
23
+ *
24
+ * @return string|array
25
+ */
26
+ public function getJsonData($context = null) {
27
+ $data = $this->getArrayJson();
28
+
29
+ return apply_filters('seopress_get_json_data_image', $data);
30
+ }
31
+ }
src/JsonSchemas/Organization.php CHANGED
@@ -6,6 +6,7 @@ if ( ! defined('ABSPATH')) {
6
  exit;
7
  }
8
 
 
9
  use SEOPress\Models\GetJsonData;
10
  use SEOPress\Models\JsonSchemaValue;
11
 
@@ -21,15 +22,39 @@ class Organization extends JsonSchemaValue implements GetJsonData {
21
  *
22
  * @param array $context
23
  *
24
- * @return array|string
25
  */
26
  public function getJsonData($context = null) {
27
  $data = $this->getArrayJson();
28
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  $type = seopress_get_service('SocialOption')->getSocialKnowledgeType();
30
  if ('Organization' === $type) {
31
  // Use "contactPoint"
32
- $schema = seopress_get_service('JsonSchemaGenerator')->getJsonFromSchema(ContactPoint::NAME, [], ['remove_empty'=> true]);
33
  if (count($schema) > 1) {
34
  $data['contactPoint'][] = $schema;
35
  }
6
  exit;
7
  }
8
 
9
+ use SEOPress\Helpers\RichSnippetType;
10
  use SEOPress\Models\GetJsonData;
11
  use SEOPress\Models\JsonSchemaValue;
12
 
22
  *
23
  * @param array $context
24
  *
25
+ * @return array
26
  */
27
  public function getJsonData($context = null) {
28
  $data = $this->getArrayJson();
29
 
30
+ $typeSchema = isset($context['type']) ? $context['type'] : RichSnippetType::DEFAULT_SNIPPET;
31
+
32
+ switch ($typeSchema) {
33
+ default:
34
+ $variables = [
35
+ 'type' => '%%knowledge_type%%',
36
+ 'name' => '%%social_knowledge_name%%',
37
+ 'url' => '%%siteurl%%',
38
+ 'logo' => '%%social_knowledge_image%%',
39
+ 'account_facebook' => '%%social_account_facebook%%',
40
+ 'account_twitter' => '%%social_account_twitter%%',
41
+ 'account_pinterest' => '%%social_account_pinterest%%',
42
+ 'account_instagram' => '%%social_account_instagram%%',
43
+ 'account_youtube' => '%%social_account_youtube%%',
44
+ 'account_linkedin' => '%%social_account_linkedin%%',
45
+ ];
46
+ break;
47
+ case RichSnippetType::SUB_TYPE:
48
+ $variables = isset($context['variables']) ? $context['variables'] : [];
49
+ break;
50
+ }
51
+
52
+ $data = seopress_get_service('VariablesToString')->replaceDataToString($data, $variables);
53
+
54
  $type = seopress_get_service('SocialOption')->getSocialKnowledgeType();
55
  if ('Organization' === $type) {
56
  // Use "contactPoint"
57
+ $schema = seopress_get_service('JsonSchemaGenerator')->getJsonFromSchema(ContactPoint::NAME, $context, ['remove_empty'=> true]);
58
  if (count($schema) > 1) {
59
  $data['contactPoint'][] = $schema;
60
  }
src/Services/ContentAnalysis/GetContent.php CHANGED
@@ -181,7 +181,7 @@ class GetContent {
181
 
182
  foreach ($target_kws_h1 as $key => $value) {
183
  foreach ($value as $_key => $_value) {
184
- $kw_count = count($_value);
185
  }
186
  $kw_name = $key;
187
  $desc .= '<li><span class="dashicons dashicons-minus"></span>' . sprintf(esc_html__('%s was found %d times.', 'wp-seopress'), $kw_name, $kw_count) . '</li>';
@@ -220,7 +220,7 @@ class GetContent {
220
  $target_kws_h2 = $data['h2']['matches'];
221
  foreach ($target_kws_h2 as $key => $value) {
222
  foreach ($value as $_key => $_value) {
223
- $kw_count = count($_value);
224
  }
225
  $kw_name = $key;
226
  $desc .= '<li><span class="dashicons dashicons-minus"></span>' . sprintf(esc_html__('%s was found %d times.', 'wp-seopress'), $kw_name, $kw_count) . '</li>';
@@ -241,7 +241,7 @@ class GetContent {
241
  $target_kws_h3 = $data['h3']['matches'];
242
  foreach ($target_kws_h3 as $key => $value) {
243
  foreach ($value as $_key => $_value) {
244
- $kw_count = count($_value);
245
  }
246
  $kw_name = $key;
247
  $desc .= '<li><span class="dashicons dashicons-minus"></span>' . sprintf(esc_html__('%s was found %d times.', 'wp-seopress'), $kw_name, $kw_count) . '</li>';
181
 
182
  foreach ($target_kws_h1 as $key => $value) {
183
  foreach ($value as $_key => $_value) {
184
+ $kw_count = count($value);
185
  }
186
  $kw_name = $key;
187
  $desc .= '<li><span class="dashicons dashicons-minus"></span>' . sprintf(esc_html__('%s was found %d times.', 'wp-seopress'), $kw_name, $kw_count) . '</li>';
220
  $target_kws_h2 = $data['h2']['matches'];
221
  foreach ($target_kws_h2 as $key => $value) {
222
  foreach ($value as $_key => $_value) {
223
+ $kw_count = count($value);
224
  }
225
  $kw_name = $key;
226
  $desc .= '<li><span class="dashicons dashicons-minus"></span>' . sprintf(esc_html__('%s was found %d times.', 'wp-seopress'), $kw_name, $kw_count) . '</li>';
241
  $target_kws_h3 = $data['h3']['matches'];
242
  foreach ($target_kws_h3 as $key => $value) {
243
  foreach ($value as $_key => $_value) {
244
+ $kw_count = count($value);
245
  }
246
  $kw_name = $key;
247
  $desc .= '<li><span class="dashicons dashicons-minus"></span>' . sprintf(esc_html__('%s was found %d times.', 'wp-seopress'), $kw_name, $kw_count) . '</li>';
src/Services/Context/CheckContextPage.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SEOPress\Services\Context;
4
+
5
+ if ( ! defined('ABSPATH')) {
6
+ exit;
7
+ }
8
+
9
+ class CheckContextPage {
10
+ /**
11
+ * @since 4.6.0
12
+ *
13
+ * @param array $context
14
+ *
15
+ * @return bool
16
+ */
17
+ public function hasSchemaManualValues($context) {
18
+ if ( ! isset($context['schemas_manual']) || ! isset($context['key_get_json_schema'])) {
19
+ return false;
20
+ }
21
+
22
+ if ( ! isset($context['schemas_manual'][$context['key_get_json_schema']])) {
23
+ return false;
24
+ }
25
+
26
+ return true;
27
+ }
28
+ }
src/Services/{ContextPage.php → Context/ContextPage.php} RENAMED
@@ -1,12 +1,13 @@
1
  <?php
2
 
3
- namespace SEOPress\Services;
4
 
5
  if ( ! defined('ABSPATH')) {
6
  exit;
7
  }
8
 
9
- class ContextPage {
 
10
  protected $context = null;
11
 
12
  /**
@@ -61,45 +62,52 @@ class ContextPage {
61
  */
62
  public function buildContextDefault() {
63
  global $post;
 
64
 
65
  $context = [
66
- 'post' => $post,
67
- 'term_id' => null,
68
- 'is_single' => false,
69
- 'is_home' => false,
70
- 'is_product' => false,
71
- 'is_archive' => false,
72
- 'is_category' => false,
73
- 'is_author' => false,
74
- 'is_404' => false,
75
- 'has_category' => false,
76
- 'has_tag' => false,
77
- 'paged' => get_query_var('paged'),
 
 
78
  ];
79
 
80
  if (is_singular()) {
81
- $context = array_replace(['is_single' => true], $context);
 
 
 
 
82
  }
83
  if (is_home() || is_front_page()) {
84
- $context = array_replace(['is_home' => true], $context);
85
  }
86
  if (is_post_type_archive()) {
87
- $context = array_replace(['is_archive' => true], $context);
88
  }
89
  if (is_tax() || is_category() || is_tag()) {
90
- $context = array_replace(['is_category' => true], $context);
91
  }
92
  if (is_author()) {
93
- $context = array_replace(['is_author' => true], $context);
94
  }
95
  if (is_404()) {
96
- $context = array_replace(['is_404' => true], $context);
97
  }
98
  if (has_category()) {
99
- $context = array_replace(['has_category' => true], $context);
100
  }
101
  if (has_tag()) {
102
- $context = array_replace(['has_tag' => true], $context);
103
  }
104
 
105
  $this->context = $context;
1
  <?php
2
 
3
+ namespace SEOPress\Services\Context;
4
 
5
  if ( ! defined('ABSPATH')) {
6
  exit;
7
  }
8
 
9
+ class ContextPage
10
+ {
11
  protected $context = null;
12
 
13
  /**
62
  */
63
  public function buildContextDefault() {
64
  global $post;
65
+ global $product;
66
 
67
  $context = [
68
+ 'post' => $post,
69
+ 'product' => $product,
70
+ 'term_id' => null,
71
+ 'is_single' => false,
72
+ 'is_home' => false,
73
+ 'is_product' => false,
74
+ 'is_archive' => false,
75
+ 'is_category' => false,
76
+ 'is_author' => false,
77
+ 'is_404' => false,
78
+ 'has_category' => false,
79
+ 'has_tag' => false,
80
+ 'paged' => get_query_var('paged'),
81
+ 'schemas_manual' => [],
82
  ];
83
 
84
  if (is_singular()) {
85
+ $schemasManual = get_post_meta($context['post']->ID, '_seopress_pro_schemas_manual', true);
86
+ if ( ! $schemasManual) {
87
+ $schemasManual = [];
88
+ }
89
+ $context = array_replace($context, ['is_single' => true, 'schemas_manual' => $schemasManual]);
90
  }
91
  if (is_home() || is_front_page()) {
92
+ $context = array_replace($context, ['is_home' => true]);
93
  }
94
  if (is_post_type_archive()) {
95
+ $context = array_replace($context, ['is_archive' => true]);
96
  }
97
  if (is_tax() || is_category() || is_tag()) {
98
+ $context = array_replace($context, ['is_category' => true]);
99
  }
100
  if (is_author()) {
101
+ $context = array_replace($context, ['is_author' => true]);
102
  }
103
  if (is_404()) {
104
+ $context = array_replace($context, ['is_404' => true]);
105
  }
106
  if (has_category()) {
107
+ $context = array_replace($context, ['has_category' => true]);
108
  }
109
  if (has_tag()) {
110
+ $context = array_replace($context, ['has_tag' => true]);
111
  }
112
 
113
  $this->context = $context;
src/Services/JsonSchemaGenerator.php CHANGED
@@ -27,14 +27,18 @@ class JsonSchemaGenerator {
27
  */
28
  public function getJsonFromSchema($schema, $context= [], $options = []) {
29
  $classJsonSchema = $this->getSchemaClass($schema);
30
- $jsonData = $classJsonSchema->getJsonData($context);
 
 
31
 
32
- $jsonData = $this->tagsToString->replaceDataToString($jsonData, $context, $options);
33
 
34
  if (isset($context['variables'])) {
35
  $jsonData = $this->variablesToString->replaceDataToString($jsonData, $context['variables'], $options);
36
  }
37
 
 
 
38
  if ( ! empty($jsonData)) {
39
  $jsonData = $classJsonSchema->cleanValues($jsonData);
40
  }
@@ -56,7 +60,8 @@ class JsonSchemaGenerator {
56
  }
57
 
58
  foreach ($data as $key => $schema) {
59
- $data[$key] = $this->getJsonFromSchema($schema, $context, ['remove_empty'=> true]);
 
60
  }
61
 
62
  return apply_filters('seopress_json_schema_generator_get_jsons', $data);
@@ -76,6 +81,10 @@ class JsonSchemaGenerator {
76
  $data = $this->getJsons($data, $context);
77
 
78
  foreach ($data as $key => $value) {
 
 
 
 
79
  $data[$key] = json_encode($data[$key]);
80
  }
81
 
27
  */
28
  public function getJsonFromSchema($schema, $context= [], $options = []) {
29
  $classJsonSchema = $this->getSchemaClass($schema);
30
+ if (null === $classJsonSchema) {
31
+ return null;
32
+ }
33
 
34
+ $jsonData = $classJsonSchema->getJsonData($context);
35
 
36
  if (isset($context['variables'])) {
37
  $jsonData = $this->variablesToString->replaceDataToString($jsonData, $context['variables'], $options);
38
  }
39
 
40
+ $jsonData = $this->tagsToString->replaceDataToString($jsonData, $context, $options);
41
+
42
  if ( ! empty($jsonData)) {
43
  $jsonData = $classJsonSchema->cleanValues($jsonData);
44
  }
60
  }
61
 
62
  foreach ($data as $key => $schema) {
63
+ $context['key_get_json_schema'] = $key;
64
+ $data[$key] = $this->getJsonFromSchema($schema, $context, ['remove_empty'=> true]);
65
  }
66
 
67
  return apply_filters('seopress_json_schema_generator_get_jsons', $data);
81
  $data = $this->getJsons($data, $context);
82
 
83
  foreach ($data as $key => $value) {
84
+ if (null === $value) {
85
+ unset($data[$key]);
86
+ continue;
87
+ }
88
  $data[$key] = json_encode($data[$key]);
89
  }
90
 
src/Services/Options/AdvancedOption.php ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SEOPress\Services\Options;
4
+
5
+ defined('ABSPATH') or exit('Cheatin&#8217; uh?');
6
+
7
+ use SEOPress\Constants\Options;
8
+
9
+ class AdvancedOption {
10
+ /**
11
+ * @since 4.6.0
12
+ *
13
+ * @return array
14
+ */
15
+ public function getOption() {
16
+ return get_option(Options::KEY_OPTION_ADVANCED);
17
+ }
18
+
19
+ /**
20
+ * @since 4.6.0
21
+ *
22
+ * @param string $key
23
+ *
24
+ * @return mixed
25
+ */
26
+ public function searchOptionByKey($key) {
27
+ $data = $this->getOption();
28
+
29
+ if (empty($data)) {
30
+ return null;
31
+ }
32
+
33
+ if ( ! isset($data[$key])) {
34
+ return null;
35
+ }
36
+
37
+ return $data[$key];
38
+ }
39
+ }
src/Services/Options/TitleOption.php CHANGED
@@ -6,7 +6,8 @@ defined('ABSPATH') or exit('Cheatin&#8217; uh?');
6
 
7
  use SEOPress\Constants\Options;
8
 
9
- class TitleOption {
 
10
  /**
11
  * @since 4.3.0
12
  *
@@ -60,7 +61,12 @@ class TitleOption {
60
  * @return string
61
  */
62
  public function getSeparator() {
63
- return $this->searchOptionByKey('seopress_titles_sep');
 
 
 
 
 
64
  }
65
 
66
  /**
6
 
7
  use SEOPress\Constants\Options;
8
 
9
+ class TitleOption
10
+ {
11
  /**
12
  * @since 4.3.0
13
  *
61
  * @return string
62
  */
63
  public function getSeparator() {
64
+ $separator = $this->searchOptionByKey('seopress_titles_sep');
65
+ if ( ! $separator) {
66
+ return '-';
67
+ }
68
+
69
+ return $separator;
70
  }
71
 
72
  /**
src/Services/Settings/Roles/SectionPagesSEOPress.php ADDED
@@ -0,0 +1,102 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SEOPress\Services\Settings\Roles;
4
+
5
+ if ( ! defined('ABSPATH')) {
6
+ exit;
7
+ }
8
+
9
+ class SectionPagesSEOPress {
10
+ /**
11
+ * @since 4.6.0
12
+ *
13
+ * @param string $keySettings
14
+ *
15
+ * @return void
16
+ */
17
+ public function render($keySettings) {
18
+ $options = seopress_get_service('AdvancedOption')->getOption();
19
+
20
+ global $wp_roles;
21
+
22
+ if ( ! isset($wp_roles)) {
23
+ $wp_roles = new WP_Roles();
24
+ }
25
+
26
+ foreach ($wp_roles->get_names() as $key => $value) {
27
+ if ('administrator' === $key) {
28
+ continue;
29
+ }
30
+ $uniqueKey = sprintf('%s_%s', $keySettings, $key);
31
+ $nameKey = \sprintf('%s_%s', 'seopress_advanced_security_metaboxe', $keySettings);
32
+ $dataOptions = isset($options[$nameKey]) ? $options[$nameKey] : [];
33
+
34
+ if ($uniqueKey ==='titles-metas_editor') { ?>
35
+ <p class="description"><?php _e('Check a user role to authorized it to edit a specific SEO page.','wp-seopress'); ?></p><br>
36
+ <?php } ?>
37
+
38
+ <div>
39
+ <input
40
+ type="checkbox"
41
+ id="seopress_advanced_security_metaboxe_role_pages_<?php echo $uniqueKey; ?>"
42
+ value="1"
43
+ name="seopress_advanced_option_name[<?php echo $nameKey; ?>][<?php echo $key; ?>]"
44
+ <?php if (isset($dataOptions[$key])) {
45
+ checked($dataOptions[$key], '1');
46
+ } ?>
47
+ />
48
+ <label for="seopress_advanced_security_metaboxe_role_pages_<?php echo $uniqueKey; ?>">
49
+ <strong><?php echo $value; ?></strong> (<em><?php echo translate_user_role($value, 'default'); ?></em>)
50
+ </label>
51
+ </div>
52
+ <?php
53
+ }
54
+ }
55
+
56
+ /**
57
+ * @since 4.6.0
58
+ *
59
+ * @param string $name
60
+ * @param array $params
61
+ *
62
+ * @return void
63
+ */
64
+ public function __call($name, $params) {
65
+ $functionWithKey = explode('_', $name);
66
+ if ( ! isset($functionWithKey[1])) {
67
+ return;
68
+ }
69
+
70
+ $this->render($functionWithKey[1]);
71
+ }
72
+
73
+ /**
74
+ * @since 4.6.0
75
+ *
76
+ * @return void
77
+ */
78
+ public function printSectionPages() {
79
+ global $submenu;
80
+ if ( ! isset($submenu['seopress-option'])) {
81
+ return;
82
+ }
83
+ $menus = $submenu['seopress-option'];
84
+
85
+ foreach ($menus as $key => $item) {
86
+ $keyClean = sanitize_title($item[0]);
87
+ if (in_array($keyClean, ['dashboard', 'license', 'schemas', 'redirections', 'broken-links'])) {
88
+ continue;
89
+ }
90
+
91
+ add_settings_field(
92
+ 'seopress_advanced_security_metaboxe_' . $keyClean,
93
+ $item[0],
94
+ [$this, sprintf('render_%s', $keyClean)],
95
+ 'seopress-settings-admin-advanced-security',
96
+ 'seopress_setting_section_advanced_security'
97
+ );
98
+ }
99
+
100
+ do_action('seopress_add_settings_field_advanced_security');
101
+ }
102
+ }
src/Tags/AuthorFirstName.php ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SEOPress\Tags;
4
+
5
+ if ( ! defined('ABSPATH')) {
6
+ exit;
7
+ }
8
+
9
+ use SEOPress\Models\GetTagValue;
10
+
11
+ class AuthorFirstName implements GetTagValue {
12
+ const NAME = 'author_first_name';
13
+
14
+ public function getValue($args = null) {
15
+ $context = isset($args[0]) ? $args[0] : null;
16
+ $value = '';
17
+
18
+ if ( ! $context) {
19
+ return $value;
20
+ }
21
+
22
+ if ($context['is_single'] && isset($context['post']->post_author)) {
23
+ $value = get_the_author_meta('first_name', $context['post']->post_author);
24
+ }
25
+
26
+ if ($context['is_author'] && is_int(get_queried_object_id())) {
27
+ $user_info = get_userdata(get_queried_object_id());
28
+
29
+ if (isset($user_info)) {
30
+ $value = $user_info->first_name;
31
+ }
32
+ }
33
+
34
+ $value = esc_attr($value);
35
+
36
+ return apply_filters('seopress_get_tag_author_first_name_value', $value, $context);
37
+ }
38
+ }
src/Tags/AuthorLastName.php ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SEOPress\Tags;
4
+
5
+ if ( ! defined('ABSPATH')) {
6
+ exit;
7
+ }
8
+
9
+ use SEOPress\Models\GetTagValue;
10
+
11
+ class AuthorLastName implements GetTagValue {
12
+ const NAME = 'author_last_name';
13
+
14
+ public function getValue($args = null) {
15
+ $context = isset($args[0]) ? $args[0] : null;
16
+ $value = '';
17
+
18
+ if ( ! $context) {
19
+ return $value;
20
+ }
21
+
22
+ if ($context['is_single'] && isset($context['post']->post_author)) {
23
+ $value = get_the_author_meta('last_name', $context['post']->post_author);
24
+ }
25
+
26
+ if ($context['is_author'] && is_int(get_queried_object_id())) {
27
+ $user_info = get_userdata(get_queried_object_id());
28
+
29
+ if (isset($user_info)) {
30
+ $value = $user_info->last_name;
31
+ }
32
+ }
33
+
34
+ $value = esc_attr($value);
35
+
36
+ return apply_filters('seopress_get_tag_author_last_name_value', $value, $context);
37
+ }
38
+ }
src/Tags/AuthorNickname.php ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SEOPress\Tags;
4
+
5
+ if ( ! defined('ABSPATH')) {
6
+ exit;
7
+ }
8
+
9
+ use SEOPress\Models\GetTagValue;
10
+
11
+ class AuthorNickname implements GetTagValue {
12
+ const NAME = 'author_nickname';
13
+
14
+ public function getValue($args = null) {
15
+ $context = isset($args[0]) ? $args[0] : null;
16
+ $value = '';
17
+
18
+ if ( ! $context) {
19
+ return $value;
20
+ }
21
+
22
+ if ($context['is_single'] && isset($context['post']->post_author)) {
23
+ $value = get_the_author_meta('nickname', $context['post']->post_author);
24
+ }
25
+
26
+ if ($context['is_author'] && is_int(get_queried_object_id())) {
27
+ $user_info = get_userdata(get_queried_object_id());
28
+
29
+ if (isset($user_info)) {
30
+ $value = $user_info->nickname;
31
+ }
32
+ }
33
+
34
+ $value = esc_attr($value);
35
+
36
+ return apply_filters('seopress_get_tag_author_nickname_value', $value, $context);
37
+ }
38
+ }
src/Tags/AuthorWebsite.php ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SEOPress\Tags;
4
+
5
+ if ( ! defined('ABSPATH')) {
6
+ exit;
7
+ }
8
+
9
+ use SEOPress\Models\GetTagValue;
10
+
11
+ class AuthorWebsite implements GetTagValue {
12
+ const NAME = 'author_website';
13
+
14
+ public function getValue($args = null) {
15
+ $context = isset($args[0]) ? $args[0] : null;
16
+ $value = '';
17
+
18
+ if ( ! $context) {
19
+ return $value;
20
+ }
21
+
22
+ if ($context['is_single'] && isset($context['post']->post_author)) {
23
+ $value = get_the_author_meta('url', $context['post']->post_author);
24
+ }
25
+
26
+ if ($context['is_author'] && is_int(get_queried_object_id())) {
27
+ $user_info = get_userdata(get_queried_object_id());
28
+
29
+ if (isset($user_info)) {
30
+ $value = $user_info->url;
31
+ }
32
+ }
33
+
34
+ $value = esc_attr($value);
35
+
36
+ return apply_filters('seopress_get_tag_author_website_value', $value, $context);
37
+ }
38
+ }
src/Tags/Custom/CustomUserMeta.php ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SEOPress\Tags\Custom;
4
+
5
+ if ( ! defined('ABSPATH')) {
6
+ exit;
7
+ }
8
+
9
+ use SEOPress\Models\AbstractCustomTagValue;
10
+ use SEOPress\Models\GetTagValue;
11
+
12
+ class CustomUserMeta extends AbstractCustomTagValue implements GetTagValue {
13
+ const CUSTOM_FORMAT = '_ucf_';
14
+
15
+ public function getValue($args = null) {
16
+ $context = isset($args[0]) ? $args[0] : null;
17
+ $tag = isset($args[1]) ? $args[1] : null;
18
+ $value = '';
19
+ if (null === $tag || ! $context) {
20
+ return $value;
21
+ }
22
+
23
+ if ( ! $context['post'] && ! $context['is_author'] ) {
24
+ return $value;
25
+ }
26
+ $regex = $this->buildRegex(self::CUSTOM_FORMAT);
27
+
28
+ preg_match($regex, $tag, $matches);
29
+
30
+ if (empty($matches) || ! array_key_exists('field', $matches)) {
31
+ return $value;
32
+ }
33
+
34
+ $field = $matches['field'];
35
+
36
+ $value = esc_attr(get_user_meta(get_current_user_id(), $field, true));
37
+
38
+ return apply_filters('seopress_get_tag_' . $tag . '_value', $value, $context);
39
+ }
40
+ }
src/Tags/PostAuthor.php CHANGED
@@ -8,7 +8,8 @@ if ( ! defined('ABSPATH')) {
8
 
9
  use SEOPress\Models\GetTagValue;
10
 
11
- class PostAuthor implements GetTagValue {
 
12
  const NAME = 'post_author';
13
 
14
  public function getValue($args = null) {
@@ -19,11 +20,11 @@ class PostAuthor implements GetTagValue {
19
  return $value;
20
  }
21
 
22
- if ($context['is_single'] && isset($context['post']) && isset($context['post']->post_author)) {
23
  $value = esc_attr(get_the_author_meta('display_name', $context['post']->post_author));
24
  }
25
 
26
- if ($context['is_author'] && is_int(get_queried_object_id())) {
27
  $user_info = get_userdata(get_queried_object_id());
28
 
29
  if (isset($user_info)) {
8
 
9
  use SEOPress\Models\GetTagValue;
10
 
11
+ class PostAuthor implements GetTagValue
12
+ {
13
  const NAME = 'post_author';
14
 
15
  public function getValue($args = null) {
20
  return $value;
21
  }
22
 
23
+ if (isset($context['is_single']) && $context['is_single'] && isset($context['post']) && isset($context['post']->post_author)) {
24
  $value = esc_attr(get_the_author_meta('display_name', $context['post']->post_author));
25
  }
26
 
27
+ if (isset($context['is_author']) && $context['is_author'] && is_int(get_queried_object_id())) {
28
  $user_info = get_userdata(get_queried_object_id());
29
 
30
  if (isset($user_info)) {
src/Tags/PostExcerpt.php CHANGED
@@ -8,7 +8,8 @@ if ( ! defined('ABSPATH')) {
8
 
9
  use SEOPress\Models\GetTagValue;
10
 
11
- class PostExcerpt implements GetTagValue {
 
12
  const NAME = 'post_excerpt';
13
 
14
  const ALIAS = ['wc_single_short_desc'];
@@ -21,13 +22,13 @@ class PostExcerpt implements GetTagValue {
21
  return $value;
22
  }
23
 
24
- if ( ! $context['is_404'] && ! empty($context['post'])) {
25
  if (has_excerpt($context['post']->ID)) {
26
  $value = get_the_excerpt();
27
  }
28
  }
29
 
30
- if (empty($value) && $context['post']) {
31
  $content = get_post_field('post_content', $context['post']->ID, true);
32
  if ( ! empty($content)) {
33
  $value = $content;
8
 
9
  use SEOPress\Models\GetTagValue;
10
 
11
+ class PostExcerpt implements GetTagValue
12
+ {
13
  const NAME = 'post_excerpt';
14
 
15
  const ALIAS = ['wc_single_short_desc'];
22
  return $value;
23
  }
24
 
25
+ if (isset($context['is_404']) && ! $context['is_404'] && ! empty($context['post'])) {
26
  if (has_excerpt($context['post']->ID)) {
27
  $value = get_the_excerpt();
28
  }
29
  }
30
 
31
+ if (empty($value) && isset($context['post']->ID)) {
32
  $content = get_post_field('post_content', $context['post']->ID, true);
33
  if ( ! empty($content)) {
34
  $value = $content;
src/Tags/PostThumbnailUrlHeight.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SEOPress\Tags;
4
+
5
+ if ( ! defined('ABSPATH')) {
6
+ exit;
7
+ }
8
+
9
+ use SEOPress\Models\GetTagValue;
10
+
11
+ class PostThumbnailUrlHeight implements GetTagValue {
12
+ const NAME = 'post_thumbnail_url_height';
13
+
14
+ public function getValue($args = null) {
15
+ $context = isset($args[0]) ? $args[0] : null;
16
+ $value = '';
17
+
18
+ if ( ! $context) {
19
+ return $value;
20
+ }
21
+
22
+ if ($context['is_single'] && ! empty($context['post']->ID)) {
23
+ $size = wp_get_attachment_image_src(get_post_thumbnail_id($context['post']->ID), 'large');
24
+ if (isset($size[1])) {
25
+ $value = $size[2];
26
+ }
27
+ }
28
+
29
+ return apply_filters('seopress_get_tag_post_thumbnail_url_height_value', $value, $context);
30
+ }
31
+ }
src/Tags/PostThumbnailUrlWidth.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SEOPress\Tags;
4
+
5
+ if ( ! defined('ABSPATH')) {
6
+ exit;
7
+ }
8
+
9
+ use SEOPress\Models\GetTagValue;
10
+
11
+ class PostThumbnailUrlWidth implements GetTagValue {
12
+ const NAME = 'post_thumbnail_url_width';
13
+
14
+ public function getValue($args = null) {
15
+ $context = isset($args[0]) ? $args[0] : null;
16
+ $value = '';
17
+
18
+ if ( ! $context) {
19
+ return $value;
20
+ }
21
+
22
+ if ($context['is_single'] && ! empty($context['post']->ID)) {
23
+ $size = wp_get_attachment_image_src(get_post_thumbnail_id($context['post']->ID), 'large');
24
+ if (isset($size[1])) {
25
+ $value = $size[1];
26
+ }
27
+ }
28
+
29
+ return apply_filters('seopress_get_tag_post_thumbnail_url_width_value', $value, $context);
30
+ }
31
+ }
src/Tags/PostTitle.php CHANGED
@@ -11,6 +11,8 @@ use SEOPress\Models\GetTagValue;
11
  class PostTitle implements GetTagValue {
12
  const NAME = 'post_title';
13
 
 
 
14
  public function getValue($args = null) {
15
  $context = isset($args[0]) ? $args[0] : null;
16
  $value = '';
11
  class PostTitle implements GetTagValue {
12
  const NAME = 'post_title';
13
 
14
+ const ALIAS = ['title'];
15
+
16
  public function getValue($args = null) {
17
  $context = isset($args[0]) ? $args[0] : null;
18
  $value = '';
src/Tags/Schema/Date/PostDate.php ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SEOPress\Tags\Schema\Date;
4
+
5
+ if ( ! defined('ABSPATH')) {
6
+ exit;
7
+ }
8
+
9
+ use SEOPress\Models\GetTagValue;
10
+
11
+ class PostDate implements GetTagValue {
12
+ const NAME = 'schema_post_date';
13
+
14
+ public function getValue($args = null) {
15
+ $context = isset($args[0]) ? $args[0] : null;
16
+ $value = '';
17
+
18
+ if (isset($context['post'])) {
19
+ $value = get_the_date('c', $context['post']->ID);
20
+ }
21
+
22
+ return apply_filters('seopress_get_tag_schema_post_date_value', $value, $context);
23
+ }
24
+ }
src/Tags/Schema/Date/PostModifiedDate.php ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SEOPress\Tags\Schema\Date;
4
+
5
+ if ( ! defined('ABSPATH')) {
6
+ exit;
7
+ }
8
+
9
+ use SEOPress\Models\GetTagValue;
10
+
11
+ class PostModifiedDate implements GetTagValue {
12
+ const NAME = 'schema_post_modified_date';
13
+
14
+ public function getValue($args = null) {
15
+ $context = isset($args[0]) ? $args[0] : null;
16
+ $value = '';
17
+
18
+ if (isset($context['post'])) {
19
+ $value = get_the_modified_date('c', $context['post']->ID);
20
+ }
21
+
22
+ return apply_filters('seopress_get_tag_schema_post_modified_date_value', $value, $context);
23
+ }
24
+ }
src/Tags/WooCommerce/GetPrice.php ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SEOPress\Tags\WooCommerce;
4
+
5
+ if ( ! defined('ABSPATH')) {
6
+ exit;
7
+ }
8
+
9
+ use SEOPress\Models\GetTagValue;
10
+
11
+ class GetPrice implements GetTagValue {
12
+ const NAME = 'wc_get_price';
13
+
14
+ public function getValue($args = null) {
15
+ $context = isset($args[0]) ? $args[0] : null;
16
+ if ( ! seopress_get_service('WooCommerceActivate')->isActive()) {
17
+ return '';
18
+ }
19
+
20
+ $value = '';
21
+
22
+ if ( ! $context) {
23
+ return $value;
24
+ }
25
+
26
+ if ((is_singular(['product']) || $context['is_product']) && isset($context['post']->ID)) {
27
+ $product = wc_get_product($context['post']->ID);
28
+ $value = $product->get_price();
29
+ }
30
+
31
+ return apply_filters('seopress_get_tag_wc_get_price_value', $value, $context);
32
+ }
33
+ }
src/Tags/WooCommerce/PriceValidDate.php ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SEOPress\Tags\WooCommerce;
4
+
5
+ if ( ! defined('ABSPATH')) {
6
+ exit;
7
+ }
8
+
9
+ use SEOPress\Models\GetTagValue;
10
+
11
+ class PriceValidDate implements GetTagValue {
12
+ const NAME = 'wc_price_valid_date';
13
+
14
+ public function getValue($args = null) {
15
+ $context = isset($args[0]) ? $args[0] : null;
16
+ if ( ! seopress_get_service('WooCommerceActivate')->isActive()) {
17
+ return '';
18
+ }
19
+
20
+ $value = '';
21
+
22
+ if ( ! $context) {
23
+ return $value;
24
+ }
25
+
26
+ if ((is_singular(['product']) || $context['is_product']) && isset($context['post']->ID)) {
27
+ $product = wc_get_product($context['post']->ID);
28
+ $date = $product->get_date_on_sale_to();
29
+ if ($date) {
30
+ $value = $date->date('m-d-Y');
31
+ }
32
+ }
33
+
34
+ return apply_filters('seopress_get_tag_wc_price_valid_date', $value, $context);
35
+ }
36
+ }
src/Tags/WooCommerce/Sku.php CHANGED
@@ -24,7 +24,7 @@ class Sku implements GetTagValue {
24
  return $value;
25
  }
26
 
27
- if (is_singular(['product']) || $context['is_product']) {
28
  $product = wc_get_product($context['post']->ID);
29
  $value = $product->get_sku();
30
  }
24
  return $value;
25
  }
26
 
27
+ if ((is_singular(['product']) || $context['is_product']) && isset($context['post']->ID)) {
28
  $product = wc_get_product($context['post']->ID);
29
  $value = $product->get_sku();
30
  }
src/Thirds/ACF/ContentAnalysisAcfFields.php ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SEOPress\Thirds\ACF;
4
+
5
+ if ( ! defined('ABSPATH')) {
6
+ exit;
7
+ }
8
+ class ContentAnalysisAcfFields
9
+ {
10
+ protected $singleFieldTypes = ['text', 'textarea', 'wysiwyg'];
11
+
12
+ protected $complexFieldTypes = ['repeater', 'flexible_content', 'group'];
13
+
14
+ /**
15
+ * @since 4.6.0
16
+ *
17
+ * @return array
18
+ */
19
+ public function getSingleFieldTypes() {
20
+ return apply_filters('seopress_single_field_types_acf_analysis', $this->singleFieldTypes);
21
+ }
22
+
23
+ /**
24
+ * @since 4.6.0
25
+ *
26
+ * @return array
27
+ */
28
+ public function getComplexeFieldTypes() {
29
+ return apply_filters('seopress_complex_field_types_acf_analysis', $this->complexFieldTypes);
30
+ }
31
+
32
+ /**
33
+ * @since 4.6.0
34
+ *
35
+ * @return string
36
+ *
37
+ * @param int $id
38
+ */
39
+ public function addAcfContent($id) {
40
+ if ( ! function_exists('get_field_objects')) {
41
+ return '';
42
+ }
43
+
44
+ $fields = get_field_objects($id);
45
+
46
+ $content = '';
47
+ if ($fields) {
48
+ foreach ($fields as $field) {
49
+ $content .= $this->getFieldContent($field, $id);
50
+ }
51
+ }
52
+
53
+ return $content;
54
+ }
55
+
56
+ /**
57
+ * @since 4.6.0
58
+ *
59
+ * @param int $id
60
+ * @param mixed $field
61
+ *
62
+ * @return string
63
+ */
64
+ public function getFieldContent($field, $id) {
65
+ if (in_array($field['type'], $this->getSingleFieldTypes())) {
66
+ return $field['value'] . ' ';
67
+ } else {
68
+ if ( ! in_array($field['type'], $this->getComplexeFieldTypes())) {
69
+ return '';
70
+ }
71
+ if ( ! have_rows($field['name'], $id)) {
72
+ return '';
73
+ }
74
+
75
+ $content = '';
76
+ while (have_rows($field['name'], $id)) {
77
+ $row = the_row();
78
+ foreach ($row as $rowFieldKey => $rowField) {
79
+ $subFieldArray = get_sub_field_object($rowFieldKey);
80
+ if ($subFieldArray) {
81
+ $content .= $this->getFieldContent($subFieldArray, $id);
82
+ }
83
+ }
84
+ }
85
+
86
+ return $content;
87
+ }
88
+
89
+ return '';
90
+ }
91
+ }
templates/json-schemas/image.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ {
2
+ "@type": "ImageObject",
3
+ "url": "[[url]]",
4
+ "height": "[[height]]",
5
+ "width": "[[width]]"
6
+ }
templates/json-schemas/organization.json CHANGED
@@ -1,15 +1,15 @@
1
  {
2
  "@context": "https://schema.org",
3
- "@type": "%%knowledge_type%%",
4
- "name": "%%social_knowledge_name%%",
5
- "url": "%%siteurl%%",
6
- "logo": "%%social_knowledge_image%%",
7
  "sameAs": [
8
- "%%social_account_facebook%%",
9
- "%%social_account_twitter%%",
10
- "%%social_account_pinterest%%",
11
- "%%social_account_instagram%%",
12
- "%%social_account_youtube%%",
13
- "%%social_account_linkedin%%"
14
  ]
15
  }
1
  {
2
  "@context": "https://schema.org",
3
+ "@type": "[[type]]",
4
+ "name": "[[name]]",
5
+ "url": "[[url]]",
6
+ "logo": "[[logo]]",
7
  "sameAs": [
8
+ "[[account_facebook]]",
9
+ "[[account_twitter]]",
10
+ "[[account_pinterest]]",
11
+ "[[account_instagram]]",
12
+ "[[account_youtube]]",
13
+ "[[account_linkedin]]"
14
  ]
15
  }
vendor/composer/InstalledVersions.php CHANGED
@@ -24,24 +24,24 @@ class InstalledVersions
24
  private static $installed = array (
25
  'root' =>
26
  array (
27
- 'pretty_version' => '4.5.x-dev',
28
- 'version' => '4.5.9999999.9999999-dev',
29
  'aliases' =>
30
  array (
31
  ),
32
- 'reference' => '660df399ebce8d2047aebbbc9d065227a34fba3e',
33
  'name' => 'wp-seopress/wp-seopress',
34
  ),
35
  'versions' =>
36
  array (
37
  'wp-seopress/wp-seopress' =>
38
  array (
39
- 'pretty_version' => '4.5.x-dev',
40
- 'version' => '4.5.9999999.9999999-dev',
41
  'aliases' =>
42
  array (
43
  ),
44
- 'reference' => '660df399ebce8d2047aebbbc9d065227a34fba3e',
45
  ),
46
  ),
47
  );
24
  private static $installed = array (
25
  'root' =>
26
  array (
27
+ 'pretty_version' => '4.6.x-dev',
28
+ 'version' => '4.6.9999999.9999999-dev',
29
  'aliases' =>
30
  array (
31
  ),
32
+ 'reference' => 'bac938ec140774dc85619653326f0113c7489f1b',
33
  'name' => 'wp-seopress/wp-seopress',
34
  ),
35
  'versions' =>
36
  array (
37
  'wp-seopress/wp-seopress' =>
38
  array (
39
+ 'pretty_version' => '4.6.x-dev',
40
+ 'version' => '4.6.9999999.9999999-dev',
41
  'aliases' =>
42
  array (
43
  ),
44
+ 'reference' => 'bac938ec140774dc85619653326f0113c7489f1b',
45
  ),
46
  ),
47
  );
vendor/composer/installed.php CHANGED
@@ -1,24 +1,24 @@
1
  <?php return array (
2
  'root' =>
3
  array (
4
- 'pretty_version' => '4.5.x-dev',
5
- 'version' => '4.5.9999999.9999999-dev',
6
  'aliases' =>
7
  array (
8
  ),
9
- 'reference' => '660df399ebce8d2047aebbbc9d065227a34fba3e',
10
  'name' => 'wp-seopress/wp-seopress',
11
  ),
12
  'versions' =>
13
  array (
14
  'wp-seopress/wp-seopress' =>
15
  array (
16
- 'pretty_version' => '4.5.x-dev',
17
- 'version' => '4.5.9999999.9999999-dev',
18
  'aliases' =>
19
  array (
20
  ),
21
- 'reference' => '660df399ebce8d2047aebbbc9d065227a34fba3e',
22
  ),
23
  ),
24
  );
1
  <?php return array (
2
  'root' =>
3
  array (
4
+ 'pretty_version' => '4.6.x-dev',
5
+ 'version' => '4.6.9999999.9999999-dev',
6
  'aliases' =>
7
  array (
8
  ),
9
+ 'reference' => 'bac938ec140774dc85619653326f0113c7489f1b',
10
  'name' => 'wp-seopress/wp-seopress',
11
  ),
12
  'versions' =>
13
  array (
14
  'wp-seopress/wp-seopress' =>
15
  array (
16
+ 'pretty_version' => '4.6.x-dev',
17
+ 'version' => '4.6.9999999.9999999-dev',
18
  'aliases' =>
19
  array (
20
  ),
21
+ 'reference' => 'bac938ec140774dc85619653326f0113c7489f1b',
22
  ),
23
  ),
24
  );