SEOPress - Version 1.5

Version Description

  • NEW Google Analytics Stats in Dashboard with interactive charts (SEOPress PRO only)
  • NEW Add new advices in Notifications center
  • NEW Add bulk actions to enable/disable noindex/nofollow/index/follow
  • NEW Hide Genesis SEO Metaboxe (in Advanced page, appearance tab)
  • INFO You can now reset notifications display settings in Import/Export/Reset page
  • INFO Enhanced Google Snippet Preview
  • FIX Conflict with AIT Themes
  • FIX some undefined notices
  • FIX Notice admin_header
Download this release

Release Info

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

Code changes from version 1.4 to 1.5

Files changed (47) hide show
  1. assets/js/seopress-counters.js +26 -16
  2. assets/js/seopress-dashboard.js +40 -0
  3. assets/js/seopress-quick-edit.js +36 -0
  4. inc/admin/admin-metaboxes.php +26 -4
  5. inc/admin/admin.php +118 -14
  6. inc/functions/options-advanced-admin.php +261 -1
  7. inc/functions/options-import-export.php +17 -0
  8. languages/wp-seopress-fr_FR.mo +0 -0
  9. languages/wp-seopress-fr_FR.po +477 -420
  10. readme.txt +12 -1
  11. seopress.php +8 -26
  12. wpgod/composer-temp.phar +0 -0
  13. wpgod/composer.json +0 -16
  14. wpgod/composer.phar +0 -0
  15. wpgod/public/js/send-error.js +0 -8
  16. wpgod/public/js/send-tracking-general.js +0 -8
  17. wpgod/src/WPGod/Handler/GodAdminNoticeHandler.php +0 -118
  18. wpgod/src/WPGod/Handler/GodErrorHandler.php +0 -136
  19. wpgod/src/WPGod/Handler/GodTrackingHandler.php +0 -101
  20. wpgod/src/WPGod/Helpers/GodEnvironmentInfo.php +0 -107
  21. wpgod/src/WPGod/Helpers/GodError.php +0 -73
  22. wpgod/src/WPGod/Helpers/GodServerInfo.php +0 -101
  23. wpgod/src/WPGod/Helpers/GodTypeDevelopment.php +0 -21
  24. wpgod/src/WPGod/Models/GodHandlerInterface.php +0 -34
  25. wpgod/src/WPGod/Models/HelperInterface.php +0 -14
  26. wpgod/src/WPGod/Models/HooksInterface.php +0 -25
  27. wpgod/src/WPGod/Models/ServiceInterface.php +0 -14
  28. wpgod/src/WPGod/Models/Specification/AbstractSpecification.php +0 -55
  29. wpgod/src/WPGod/Models/Specification/AndX.php +0 -39
  30. wpgod/src/WPGod/Models/Specification/ContainsSpecification.php +0 -22
  31. wpgod/src/WPGod/Models/Specification/EqualsSpecification.php +0 -16
  32. wpgod/src/WPGod/Models/Specification/NotX.php +0 -36
  33. wpgod/src/WPGod/Models/Specification/OrX.php +0 -40
  34. wpgod/src/WPGod/Models/Specification/SpecificationInterface.php +0 -43
  35. wpgod/src/WPGod/Services/GodAbstractService.php +0 -71
  36. wpgod/src/WPGod/Services/GodApi.php +0 -148
  37. wpgod/src/WPGod/Services/GodAuthorizeError.php +0 -69
  38. wpgod/src/WPGod/Services/GodCheckErrors.php +0 -86
  39. wpgod/src/WPGod/Services/GodFilesRules.php +0 -154
  40. wpgod/src/WPGod/WPGod.php +0 -164
  41. wpgod/vendor/autoload.php +0 -7
  42. wpgod/vendor/composer/ClassLoader.php +0 -413
  43. wpgod/vendor/composer/LICENSE +0 -21
  44. wpgod/vendor/composer/autoload_classmap.php +0 -9
  45. wpgod/vendor/composer/autoload_namespaces.php +0 -9
  46. wpgod/vendor/composer/autoload_psr4.php +0 -10
  47. wpgod/vendor/composer/autoload_real.php +0 -45
assets/js/seopress-counters.js CHANGED
@@ -1,42 +1,42 @@
1
  //Title tag counters / live preview
2
  jQuery(document).ready(function(){
3
- jQuery("#seopress_titles_title_counters").after("<div id=\"seopress_titles_title_counters_val\">/ 60</div>");
4
  jQuery("#seopress_titles_title_counters").text(jQuery("#seopress_titles_title_meta").val().length);
5
- if(jQuery('#seopress_titles_title_meta').val().length > 60){
6
  jQuery('#seopress_titles_title_counters').css('color', 'red');
7
  }
8
  jQuery("#seopress_titles_title_meta").keyup(function(event) {
9
- jQuery('#seopress_titles_title_counters').css('color', 'inherit');
10
- if(jQuery(this).val().length > 60){
11
  jQuery('#seopress_titles_title_counters').css('color', 'red');
12
  }
13
- jQuery("#seopress_titles_title_counters").text(jQuery("#seopress_titles_title_meta").val().length);
14
- if(jQuery(this).val().length > 0){
15
- jQuery(".snippet-title-custom").text(event.target.value);
16
  jQuery(".snippet-title").css('display', 'none');
17
  jQuery(".snippet-title-custom").css('display', 'block');
18
  jQuery(".snippet-title-default").css('display', 'none');
19
- } else if(jQuery(this).val().length == 0) {
20
- jQuery(".snippet-title-default").css('display', 'block');
21
  jQuery(".snippet-title-custom").css('display', 'none');
22
  jQuery(".snippet-title").css('display', 'none');
23
- };
24
  });
25
  });
26
 
27
  //Meta description counters / live preview
28
  jQuery(document).ready(function(){
29
- jQuery("#seopress_titles_desc_counters").after("<div id=\"seopress_titles_desc_counters_val\">/ 160</div>");
30
  jQuery("#seopress_titles_desc_counters").text(jQuery("#seopress_titles_desc_meta").val().length);
31
- if(jQuery('#seopress_titles_desc_meta').val().length > 160){
32
  jQuery('#seopress_titles_desc_counters').css('color', 'red');
33
  }
34
  jQuery("#seopress_titles_desc_meta").keyup(function(event) {
35
- jQuery('#seopress_titles_desc_counters').css('color', 'inherit');
36
- if(jQuery(this).val().length > 160){
37
  jQuery('#seopress_titles_desc_counters').css('color', 'red');
38
  }
39
- jQuery("#seopress_titles_desc_counters").text(jQuery("#seopress_titles_desc_meta").val().length);
40
  if(jQuery(this).val().length > 0){
41
  jQuery(".snippet-description-custom").text(event.target.value);
42
  jQuery(".snippet-description").css('display', 'none');
@@ -48,6 +48,17 @@ jQuery(document).ready(function(){
48
  jQuery(".snippet-description").css('display', 'none');
49
  };
50
  });
 
 
 
 
 
 
 
 
 
 
 
51
  });
52
 
53
  //Redirections
@@ -62,5 +73,4 @@ jQuery(document).ready(function(){
62
  jQuery("#seopress_redirections_value_live").css('display', 'none');
63
  };
64
  });
65
-
66
  });
1
  //Title tag counters / live preview
2
  jQuery(document).ready(function(){
3
+ jQuery("#seopress_titles_title_counters").after("<div id=\"seopress_titles_title_counters_val\">/ 60</div>");
4
  jQuery("#seopress_titles_title_counters").text(jQuery("#seopress_titles_title_meta").val().length);
5
+ if(jQuery('#seopress_titles_title_meta').val().length > 60){
6
  jQuery('#seopress_titles_title_counters').css('color', 'red');
7
  }
8
  jQuery("#seopress_titles_title_meta").keyup(function(event) {
9
+ jQuery('#seopress_titles_title_counters').css('color', 'inherit');
10
+ if(jQuery(this).val().length > 60){
11
  jQuery('#seopress_titles_title_counters').css('color', 'red');
12
  }
13
+ jQuery("#seopress_titles_title_counters").text(jQuery("#seopress_titles_title_meta").val().length);
14
+ if(jQuery(this).val().length > 0){
15
+ jQuery(".snippet-title-custom").text(event.target.value);
16
  jQuery(".snippet-title").css('display', 'none');
17
  jQuery(".snippet-title-custom").css('display', 'block');
18
  jQuery(".snippet-title-default").css('display', 'none');
19
+ } else if(jQuery(this).val().length == 0) {
20
+ jQuery(".snippet-title-default").css('display', 'block');
21
  jQuery(".snippet-title-custom").css('display', 'none');
22
  jQuery(".snippet-title").css('display', 'none');
23
+ };
24
  });
25
  });
26
 
27
  //Meta description counters / live preview
28
  jQuery(document).ready(function(){
29
+ jQuery("#seopress_titles_desc_counters").after("<div id=\"seopress_titles_desc_counters_val\">/ 160</div>");
30
  jQuery("#seopress_titles_desc_counters").text(jQuery("#seopress_titles_desc_meta").val().length);
31
+ if(jQuery('#seopress_titles_desc_meta').val().length > 160){
32
  jQuery('#seopress_titles_desc_counters').css('color', 'red');
33
  }
34
  jQuery("#seopress_titles_desc_meta").keyup(function(event) {
35
+ jQuery('#seopress_titles_desc_counters').css('color', 'inherit');
36
+ if(jQuery(this).val().length > 160){
37
  jQuery('#seopress_titles_desc_counters').css('color', 'red');
38
  }
39
+ jQuery("#seopress_titles_desc_counters").text(jQuery("#seopress_titles_desc_meta").val().length);
40
  if(jQuery(this).val().length > 0){
41
  jQuery(".snippet-description-custom").text(event.target.value);
42
  jQuery(".snippet-description").css('display', 'none');
48
  jQuery(".snippet-description").css('display', 'none');
49
  };
50
  });
51
+
52
+ jQuery("#excerpt").keyup(function(event) {
53
+ if(jQuery('#seopress_titles_desc_meta').val().length == 0){
54
+ if (jQuery(".snippet-description-custom").val().length == 0) {
55
+ jQuery(".snippet-description-custom").text(event.target.value);
56
+ jQuery(".snippet-description").css('display', 'none');
57
+ jQuery(".snippet-description-custom").css('display', 'inline');
58
+ jQuery(".snippet-description-default").css('display', 'none');
59
+ }
60
+ }
61
+ });
62
  });
63
 
64
  //Redirections
73
  jQuery("#seopress_redirections_value_live").css('display', 'none');
74
  };
75
  });
 
76
  });
assets/js/seopress-dashboard.js CHANGED
@@ -1,5 +1,45 @@
1
  jQuery(document).ready(function(){
2
  //Hide notices
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  //**Search Console
4
  jQuery('#notice-search-console').on('click', function() {
5
  jQuery('#notice-search-console').attr('data-notice', jQuery('#notice-search-console').attr('data-notice') == '1' ? '0' : '1');
1
  jQuery(document).ready(function(){
2
  //Hide notices
3
+ //**Divide comments
4
+ jQuery('#notice-divide-comments').on('click', function() {
5
+ jQuery('#notice-divide-comments').attr('data-notice', jQuery('#notice-divide-comments').attr('data-notice') == '1' ? '0' : '1');
6
+ jQuery.ajax({
7
+ method : 'POST',
8
+ url : seopressAjaxHideNotices.seopress_hide_notices,
9
+ _ajax_nonce: seopressAjaxHideNotices.seopress_nonce,
10
+ data : {
11
+ action: 'seopress_hide_notices',
12
+ notice: 'notice-divide-comments',
13
+ notice_value: jQuery('#notice-divide-comments').attr('data-notice'),
14
+ },
15
+ success : function( data ) {
16
+ jQuery( '#seopress-notice-save' ).css('display', 'block');
17
+ jQuery( '#seopress-notice-save .html' ).html('Notice successfully removed');
18
+ jQuery( '#notice-divide-comments-alert' ).fadeOut();
19
+ jQuery( '#seopress-notice-save' ).delay(3500).fadeOut();
20
+ },
21
+ });
22
+ });
23
+ //**RSS full text
24
+ jQuery('#notice-rss-use-excerpt').on('click', function() {
25
+ jQuery('#notice-rss-use-excerpt').attr('data-notice', jQuery('#notice-rss-use-excerpt').attr('data-notice') == '1' ? '0' : '1');
26
+ jQuery.ajax({
27
+ method : 'POST',
28
+ url : seopressAjaxHideNotices.seopress_hide_notices,
29
+ _ajax_nonce: seopressAjaxHideNotices.seopress_nonce,
30
+ data : {
31
+ action: 'seopress_hide_notices',
32
+ notice: 'notice-rss-use-excerpt',
33
+ notice_value: jQuery('#notice-rss-use-excerpt').attr('data-notice'),
34
+ },
35
+ success : function( data ) {
36
+ jQuery( '#seopress-notice-save' ).css('display', 'block');
37
+ jQuery( '#seopress-notice-save .html' ).html('Notice successfully removed');
38
+ jQuery( '#notice-rss-use-excerpt-alert' ).fadeOut();
39
+ jQuery( '#seopress-notice-save' ).delay(3500).fadeOut();
40
+ },
41
+ });
42
+ });
43
  //**Search Console
44
  jQuery('#notice-search-console').on('click', function() {
45
  jQuery('#notice-search-console').attr('data-notice', jQuery('#notice-search-console').attr('data-notice') == '1' ? '0' : '1');
assets/js/seopress-quick-edit.js ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (function($) {
2
+
3
+ // we create a copy of the WP inline edit post function
4
+ var $wp_inline_edit = inlineEditPost.edit;
5
+
6
+ // and then we overwrite the function with our own code
7
+ inlineEditPost.edit = function( id ) {
8
+
9
+ // "call" the original WP edit function
10
+ // we don't want to leave WordPress hanging
11
+ $wp_inline_edit.apply( this, arguments );
12
+
13
+ // now we take care of our business
14
+
15
+ // get the post ID
16
+ var $post_id = 0;
17
+ if ( typeof( id ) == 'object' ) {
18
+ $post_id = parseInt( this.getId( id ) );
19
+ }
20
+
21
+ if ( $post_id > 0 ) {
22
+ // define the edit row
23
+ var $edit_row = $( '#edit-' + $post_id );
24
+ var $post_row = $( '#post-' + $post_id );
25
+
26
+ // get the data
27
+ var $seopress_title = $( '.column-seopress_title', $post_row ).text();
28
+ var $seopress_desc = $( '.column-seopress_desc', $post_row ).text();
29
+
30
+ // populate the data
31
+ $( ':input[name="seopress_title"]', $edit_row ).val( $seopress_title );
32
+ $( ':input[name="seopress_desc"]', $edit_row ).val( $seopress_desc );
33
+ }
34
+ };
35
+
36
+ })(jQuery);
inc/admin/admin-metaboxes.php CHANGED
@@ -44,13 +44,35 @@ function seopress_cpt($post){
44
  return get_the_title().' - '.get_bloginfo('name');
45
  }
46
  }
47
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  function seopress_titles_desc($seopress_titles_desc) {
49
  if ($seopress_titles_desc !='') {
50
  return $seopress_titles_desc;
51
  } else {
52
  global $post;
53
- return substr(wp_strip_all_tags($post->post_content, true), 0, 160);
 
 
 
 
 
 
 
 
54
  }
55
  }
56
 
@@ -126,8 +148,8 @@ function seopress_cpt($post){
126
  echo seopress_display_date_snippet();
127
  echo '<div class="snippet-description">'.seopress_titles_desc($seopress_titles_desc).'...</div>
128
  <div class="snippet-description-custom" style="display:none"></div>
129
- <div class="snippet-description-default" style="display:none">'.substr(wp_strip_all_tags($post->post_content, true), 0, 160).'</div>
130
- </div>
131
  </div>
132
  </div>
133
  <div id="tabs-2">
44
  return get_the_title().' - '.get_bloginfo('name');
45
  }
46
  }
47
+
48
+ function seopress_titles_single_desc_option() {
49
+ global $post;
50
+ $seopress_get_current_cpt = get_post_type($post);
51
+
52
+ $seopress_titles_single_desc_option = get_option("seopress_titles_option_name");
53
+ if ( ! empty ( $seopress_titles_single_desc_option ) ) {
54
+ foreach ($seopress_titles_single_desc_option as $key => $seopress_titles_single_desc_value)
55
+ $options[$key] = $seopress_titles_single_desc_value;
56
+ if (isset($seopress_titles_single_desc_option['seopress_titles_single_titles'][$seopress_get_current_cpt]['description'])) {
57
+ return $seopress_titles_single_desc_option['seopress_titles_single_titles'][$seopress_get_current_cpt]['description'];
58
+ }
59
+ }
60
+ }
61
+
62
  function seopress_titles_desc($seopress_titles_desc) {
63
  if ($seopress_titles_desc !='') {
64
  return $seopress_titles_desc;
65
  } else {
66
  global $post;
67
+ if (seopress_titles_single_desc_option() !='') {
68
+ return seopress_titles_single_desc_option();
69
+ } elseif ( has_excerpt( $post->ID ) ) {
70
+ // This post has excerpt
71
+ return substr(wp_strip_all_tags($post->post_excerpt, true), 0, 160);
72
+ } else {
73
+ // This post has no excerpt
74
+ return substr(wp_strip_all_tags($post->post_content, true), 0, 160);
75
+ }
76
  }
77
  }
78
 
148
  echo seopress_display_date_snippet();
149
  echo '<div class="snippet-description">'.seopress_titles_desc($seopress_titles_desc).'...</div>
150
  <div class="snippet-description-custom" style="display:none"></div>
151
+ <div class="snippet-description-default" style="display:none">'.seopress_titles_desc($seopress_titles_desc).'</div>';
152
+ echo '</div>
153
  </div>
154
  </div>
155
  <div id="tabs-2">
inc/admin/admin.php CHANGED
@@ -157,7 +157,6 @@ class seopress_options
157
  $seopress_advanced_option_name = get_option('seopress_advanced_option_name');
158
 
159
  $seopress_advanced_option_name['seopress_advanced_advanced_attachments'] = '1';
160
- $seopress_advanced_option_name['seopress_advanced_advanced_stop_words'] = '1';
161
  $seopress_advanced_option_name['seopress_advanced_appearance_title_col'] = '1';
162
  $seopress_advanced_option_name['seopress_advanced_appearance_meta_desc_col'] = '1';
163
 
@@ -213,7 +212,7 @@ class seopress_options
213
 
214
  function seopress_titles_page(){
215
  $this->options = get_option( 'seopress_titles_option_name' );
216
- if (function_exists(seopress_admin_header)) {
217
  echo seopress_admin_header();
218
  }
219
  ?>
@@ -263,7 +262,7 @@ class seopress_options
263
 
264
  function seopress_xml_sitemap_page(){
265
  $this->options = get_option( 'seopress_xml_sitemap_option_name' );
266
- if (function_exists(seopress_admin_header)) {
267
  echo seopress_admin_header();
268
  }
269
  ?>
@@ -304,7 +303,7 @@ class seopress_options
304
 
305
  function seopress_social_page(){
306
  $this->options = get_option( 'seopress_social_option_name' );
307
- if (function_exists(seopress_admin_header)) {
308
  echo seopress_admin_header();
309
  }
310
  ?>
@@ -346,7 +345,7 @@ class seopress_options
346
 
347
  function seopress_google_analytics_page(){
348
  $this->options = get_option( 'seopress_google_analytics_option_name' );
349
- if (function_exists(seopress_admin_header)) {
350
  echo seopress_admin_header();
351
  }
352
  ?>
@@ -360,13 +359,22 @@ class seopress_options
360
  ?>
361
 
362
  <div id="seopress-tabs" class="wrap">
363
- <?php
364
-
365
- $plugin_settings_tabs = array(
366
- 'tab_seopress_google_analytics_enable' => __( "General", "wp-seopress" ),
367
- 'tab_seopress_google_analytics_features' => __( "Tracking", "wp-seopress" ),
368
- 'tab_seopress_google_analytics_custom_dimensions' => __( "Custom Dimensions", "wp-seopress" ),
369
- );
 
 
 
 
 
 
 
 
 
370
 
371
  echo '<h2 class="nav-tab-wrapper">';
372
  foreach ( $plugin_settings_tabs as $tab_key => $tab_caption ) {
@@ -377,6 +385,9 @@ class seopress_options
377
  <div class="seopress-tab <?php if ($current_tab == 'tab_seopress_google_analytics_enable') { echo 'active'; } ?>" id="tab_seopress_google_analytics_enable"><?php do_settings_sections( 'seopress-settings-admin-google-analytics-enable' ); ?></div>
378
  <div class="seopress-tab <?php if ($current_tab == 'tab_seopress_google_analytics_features') { echo 'active'; } ?>" id="tab_seopress_google_analytics_features"><?php do_settings_sections( 'seopress-settings-admin-google-analytics-features' ); ?></div>
379
  <div class="seopress-tab <?php if ($current_tab == 'tab_seopress_google_analytics_custom_dimensions') { echo 'active'; } ?>" id="tab_seopress_google_analytics_custom_dimensions"><?php do_settings_sections( 'seopress-settings-admin-google-analytics-custom-dimensions' ); ?></div>
 
 
 
380
  </div>
381
 
382
  <?php submit_button(); ?>
@@ -386,7 +397,7 @@ class seopress_options
386
 
387
  function seopress_advanced_page(){
388
  $this->options = get_option( 'seopress_advanced_option_name' );
389
- if (function_exists(seopress_admin_header)) {
390
  echo seopress_admin_header();
391
  }
392
  ?>
@@ -425,7 +436,7 @@ class seopress_options
425
 
426
  function seopress_import_export_page(){
427
  $this->options = get_option( 'seopress_import_export_option_name' );
428
- if (function_exists(seopress_admin_header)) {
429
  echo seopress_admin_header();
430
  }
431
  ?>
@@ -485,6 +496,20 @@ class seopress_options
485
  </div><!-- .inside -->
486
  </div><!-- .postbox -->
487
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
488
  <div class="postbox">
489
  <h3><span><?php _e( 'Reset All Settings', 'wp-seopress' ); ?></span></h3>
490
  <div class="inside">
@@ -598,6 +623,60 @@ class seopress_options
598
  <a class="button-primary" href="<?php echo admin_url( 'options-permalink.php' ); ?>"><?php _e('Fix this!','wp-seopress'); ?></a>
599
  </div>
600
  <?php } ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
601
  <?php if (seopress_xml_sitemap_general_enable_option() !='1') { ?>
602
  <div class="seopress-alert">
603
  <p>
@@ -1905,6 +1984,14 @@ class seopress_options
1905
  'seopress-settings-admin-advanced-appearance', // Page
1906
  'seopress_setting_section_advanced_appearance' // Section
1907
  );
 
 
 
 
 
 
 
 
1908
  }
1909
 
1910
  /**
@@ -3834,6 +3921,23 @@ class seopress_options
3834
  if (isset($this->options['seopress_advanced_appearance_nofollow_col'])) {
3835
  esc_attr( $this->options['seopress_advanced_appearance_nofollow_col']);
3836
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3837
  }
3838
  }
3839
 
157
  $seopress_advanced_option_name = get_option('seopress_advanced_option_name');
158
 
159
  $seopress_advanced_option_name['seopress_advanced_advanced_attachments'] = '1';
 
160
  $seopress_advanced_option_name['seopress_advanced_appearance_title_col'] = '1';
161
  $seopress_advanced_option_name['seopress_advanced_appearance_meta_desc_col'] = '1';
162
 
212
 
213
  function seopress_titles_page(){
214
  $this->options = get_option( 'seopress_titles_option_name' );
215
+ if (function_exists('seopress_admin_header')) {
216
  echo seopress_admin_header();
217
  }
218
  ?>
262
 
263
  function seopress_xml_sitemap_page(){
264
  $this->options = get_option( 'seopress_xml_sitemap_option_name' );
265
+ if (function_exists('seopress_admin_header')) {
266
  echo seopress_admin_header();
267
  }
268
  ?>
303
 
304
  function seopress_social_page(){
305
  $this->options = get_option( 'seopress_social_option_name' );
306
+ if (function_exists('seopress_admin_header')) {
307
  echo seopress_admin_header();
308
  }
309
  ?>
345
 
346
  function seopress_google_analytics_page(){
347
  $this->options = get_option( 'seopress_google_analytics_option_name' );
348
+ if (function_exists('seopress_admin_header')) {
349
  echo seopress_admin_header();
350
  }
351
  ?>
359
  ?>
360
 
361
  <div id="seopress-tabs" class="wrap">
362
+ <?php
363
+
364
+ if (is_plugin_active('wp-seopress-pro/seopress-pro.php')) {
365
+ $plugin_settings_tabs = array(
366
+ 'tab_seopress_google_analytics_enable' => __( "General", "wp-seopress" ),
367
+ 'tab_seopress_google_analytics_features' => __( "Tracking", "wp-seopress" ),
368
+ 'tab_seopress_google_analytics_custom_dimensions' => __( "Custom Dimensions", "wp-seopress" ),
369
+ 'tab_seopress_google_analytics_dashboard' => __( "Stats in Dashboard", "wp-seopress" ),
370
+ );
371
+ } else {
372
+ $plugin_settings_tabs = array(
373
+ 'tab_seopress_google_analytics_enable' => __( "General", "wp-seopress" ),
374
+ 'tab_seopress_google_analytics_features' => __( "Tracking", "wp-seopress" ),
375
+ 'tab_seopress_google_analytics_custom_dimensions' => __( "Custom Dimensions", "wp-seopress" ),
376
+ );
377
+ }
378
 
379
  echo '<h2 class="nav-tab-wrapper">';
380
  foreach ( $plugin_settings_tabs as $tab_key => $tab_caption ) {
385
  <div class="seopress-tab <?php if ($current_tab == 'tab_seopress_google_analytics_enable') { echo 'active'; } ?>" id="tab_seopress_google_analytics_enable"><?php do_settings_sections( 'seopress-settings-admin-google-analytics-enable' ); ?></div>
386
  <div class="seopress-tab <?php if ($current_tab == 'tab_seopress_google_analytics_features') { echo 'active'; } ?>" id="tab_seopress_google_analytics_features"><?php do_settings_sections( 'seopress-settings-admin-google-analytics-features' ); ?></div>
387
  <div class="seopress-tab <?php if ($current_tab == 'tab_seopress_google_analytics_custom_dimensions') { echo 'active'; } ?>" id="tab_seopress_google_analytics_custom_dimensions"><?php do_settings_sections( 'seopress-settings-admin-google-analytics-custom-dimensions' ); ?></div>
388
+ <?php if (is_plugin_active('wp-seopress-pro/seopress-pro.php')) { ?>
389
+ <div class="seopress-tab <?php if ($current_tab == 'tab_seopress_google_analytics_dashboard') { echo 'active'; } ?>" id="tab_seopress_google_analytics_dashboard"><?php do_settings_sections( 'seopress-settings-admin-google-analytics-dashboard' ); ?></div>
390
+ <?php } ?>
391
  </div>
392
 
393
  <?php submit_button(); ?>
397
 
398
  function seopress_advanced_page(){
399
  $this->options = get_option( 'seopress_advanced_option_name' );
400
+ if (function_exists('seopress_admin_header')) {
401
  echo seopress_admin_header();
402
  }
403
  ?>
436
 
437
  function seopress_import_export_page(){
438
  $this->options = get_option( 'seopress_import_export_option_name' );
439
+ if (function_exists('seopress_admin_header')) {
440
  echo seopress_admin_header();
441
  }
442
  ?>
496
  </div><!-- .inside -->
497
  </div><!-- .postbox -->
498
 
499
+ <div class="postbox">
500
+ <h3><span><?php _e( 'Reset All Notices From Notifications Center', 'wp-seopress' ); ?></span></h3>
501
+ <div class="inside">
502
+ <p><?php _e( 'By clicking Reset Notices, you\'ll see all notices again in notifications center.', 'wp-seopress' ); ?></p>
503
+ <form method="post" enctype="multipart/form-data">
504
+ <p>
505
+ <input type="hidden" name="seopress_action" value="reset_notices_settings" />
506
+ <?php wp_nonce_field( 'seopress_reset_notices_nonce', 'seopress_reset_notices_nonce' ); ?>
507
+ <?php submit_button( __( 'Reset notices', 'wp-seopress' ), 'secondary', 'submit', false ); ?>
508
+ </p>
509
+ </form>
510
+ </div><!-- .inside -->
511
+ </div><!-- .postbox -->
512
+
513
  <div class="postbox">
514
  <h3><span><?php _e( 'Reset All Settings', 'wp-seopress' ); ?></span></h3>
515
  <div class="inside">
623
  <a class="button-primary" href="<?php echo admin_url( 'options-permalink.php' ); ?>"><?php _e('Fix this!','wp-seopress'); ?></a>
624
  </div>
625
  <?php } ?>
626
+ <?php
627
+ if(get_option('rss_use_excerpt') =='0') {
628
+ function seopress_get_hidden_notices_rss_use_excerpt_option() {
629
+ $seopress_get_hidden_notices_rss_use_excerpt_option = get_option("seopress_notices");
630
+ if ( ! empty ( $seopress_get_hidden_notices_rss_use_excerpt_option ) ) {
631
+ foreach ($seopress_get_hidden_notices_rss_use_excerpt_option as $key => $seopress_get_hidden_notices_rss_use_excerpt_value)
632
+ $options[$key] = $seopress_get_hidden_notices_rss_use_excerpt_value;
633
+ if (isset($seopress_get_hidden_notices_rss_use_excerpt_option['notice-rss-use-excerpt'])) {
634
+ return $seopress_get_hidden_notices_rss_use_excerpt_option['notice-rss-use-excerpt'];
635
+ }
636
+ }
637
+ }
638
+ if(seopress_get_hidden_notices_rss_use_excerpt_option() =='1') {
639
+ //do nothing
640
+ } else { ?>
641
+ <div id="notice-rss-use-excerpt-alert" class="seopress-alert deleteable">
642
+ <p>
643
+ <span class="dashicons dashicons-warning"></span>
644
+ <?php _e('You RSS feed show full text!','wp-seopress'); ?>
645
+ <span class="impact medium"><?php _e('Medium impact','wp-seopress'); ?></span>
646
+ </p>
647
+ <a class="button-primary" href="<?php echo admin_url( 'options-reading.php' ); ?>"><?php _e('Fix this!','wp-seopress'); ?></a>
648
+ <span name="notice-rss-use-excerpt" id="notice-rss-use-excerpt" class="dashicons dashicons-trash remove-notice" data-notice="notice-rss-use-excerpt"></span>
649
+ </div>
650
+ <?php }
651
+ }
652
+ ?>
653
+ <?php
654
+ if(get_option('page_comments') =='1') {
655
+ function seopress_get_hidden_notices_divide_comments_option() {
656
+ $seopress_get_hidden_notices_divide_comments_option = get_option("seopress_notices");
657
+ if ( ! empty ( $seopress_get_hidden_notices_divide_comments_option ) ) {
658
+ foreach ($seopress_get_hidden_notices_divide_comments_option as $key => $seopress_get_hidden_notices_divide_comments_value)
659
+ $options[$key] = $seopress_get_hidden_notices_divide_comments_value;
660
+ if (isset($seopress_get_hidden_notices_divide_comments_option['notice-divide-comments'])) {
661
+ return $seopress_get_hidden_notices_divide_comments_option['notice-divide-comments'];
662
+ }
663
+ }
664
+ }
665
+ if(seopress_get_hidden_notices_divide_comments_option() =='1') {
666
+ //do nothing
667
+ } else { ?>
668
+ <div id="notice-divide-comments-alert" class="seopress-alert deleteable">
669
+ <p>
670
+ <span class="dashicons dashicons-warning"></span>
671
+ <?php _e('Break comments into pages is ON!','wp-seopress'); ?>
672
+ <span class="impact high"><?php _e('Huge impact','wp-seopress'); ?></span>
673
+ </p>
674
+ <a class="button-primary" href="<?php echo admin_url( 'options-discussion.php' ); ?>"><?php _e('Disable this!','wp-seopress'); ?></a>
675
+ <span name="notice-divide-comments" id="notice-divide-comments" class="dashicons dashicons-trash remove-notice" data-notice="notice-divide-comments"></span>
676
+ </div>
677
+ <?php }
678
+ }
679
+ ?>
680
  <?php if (seopress_xml_sitemap_general_enable_option() !='1') { ?>
681
  <div class="seopress-alert">
682
  <p>
1984
  'seopress-settings-admin-advanced-appearance', // Page
1985
  'seopress_setting_section_advanced_appearance' // Section
1986
  );
1987
+
1988
+ add_settings_field(
1989
+ 'seopress_advanced_appearance_genesis_seo_metaboxe', // ID
1990
+ __("Hide Genesis SEO Metaboxe","wp-seopress"), // Title
1991
+ array( $this, 'seopress_advanced_appearance_genesis_seo_metaboxe_callback' ), // Callback
1992
+ 'seopress-settings-admin-advanced-appearance', // Page
1993
+ 'seopress_setting_section_advanced_appearance' // Section
1994
+ );
1995
  }
1996
 
1997
  /**
3921
  if (isset($this->options['seopress_advanced_appearance_nofollow_col'])) {
3922
  esc_attr( $this->options['seopress_advanced_appearance_nofollow_col']);
3923
  }
3924
+ }
3925
+
3926
+ public function seopress_advanced_appearance_genesis_seo_metaboxe_callback()
3927
+ {
3928
+ $options = get_option( 'seopress_advanced_option_name' );
3929
+
3930
+ $check = isset($options['seopress_advanced_appearance_genesis_seo_metaboxe']);
3931
+
3932
+ echo '<input id="seopress_advanced_appearance_genesis_seo_metaboxe" name="seopress_advanced_option_name[seopress_advanced_appearance_genesis_seo_metaboxe]" type="checkbox"';
3933
+ if ('1' == $check) echo 'checked="yes"';
3934
+ echo ' value="1"/>';
3935
+
3936
+ echo '<label for="seopress_advanced_appearance_genesis_seo_metaboxe">'. __( 'Remove Genesis SEO Metaboxe', 'wp-seopress' ) .'</label>';
3937
+
3938
+ if (isset($this->options['seopress_advanced_appearance_genesis_seo_metaboxe'])) {
3939
+ esc_attr( $this->options['seopress_advanced_appearance_genesis_seo_metaboxe']);
3940
+ }
3941
  }
3942
  }
3943
 
inc/functions/options-advanced-admin.php CHANGED
@@ -108,6 +108,48 @@ if (seopress_advanced_appearance_title_col_option() !='' || seopress_advanced_ap
108
  }
109
  }
110
  add_action('admin_menu', 'seopress_add_columns', 999);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
111
  }
112
 
113
  //Stop words
@@ -125,7 +167,7 @@ function seopress_advanced_advanced_stop_words_option() {
125
  if (seopress_advanced_advanced_stop_words_option() !='') {
126
  global $pagenow;
127
  if ( $pagenow == 'post-new.php' || $pagenow == 'post.php') {
128
-
129
  function seopress_advanced_advanced_stop_words_hook($slug) {
130
 
131
  $stop_words_list_en = 'a,about,above,after,again,against,all,am,an,and,any,are,aren\'t,as,at,be,because,been,before,being,below,between,both,but,by,can\'t,cannot,could,couldn\'t,did,didn\'t,do,does,doesn\'t,doing,don\'t,down,during,each,few,for,from,further,had,hadn\'t,has,hasn\'t,have,haven\'t,having,he,he\'d,he\'ll,he\'s,her,here,here\'s,hers,herself,him,himself,his,how,how\'s,i,i\'d,,i\'ll,i\'m,i\'ve,if,in,into,is,isn\'t,it,it\'s,its,itself,let\'s,me,more,most,mustn\'t,my,myself,no,nor,not,of,off,on,once,only,or,other,ought,our,ours,ourselves,out,over,own,same,shan\'t,she,she\'d,she\'ll,she\'s,should,shouldn\'t,so,some,such,than,that,that\'s,the,their,theirs,them,themselves,then,there,there\'s,these,they,they\'d,they\'ll,they\'re,they\'ve,this,those,through,to,too,under,until,up,very,was,wasn\'t,we,we\'d,we\'ll,we\'re,we\'ve,were,weren\'t,what,what\'s,when,when\'s,where,where\'s,which,while,who,who\'s,whom,why,why\'s,with,won\'t,would,wouldn\'t,you,you\'d,you\'ll,you\'re,you\'ve,your,yours,yourself,yourselves';
@@ -237,3 +279,221 @@ if (seopress_advanced_advanced_stop_words_option() !='') {
237
  add_filter('sanitize_title', 'seopress_advanced_advanced_stop_words_hook');
238
  }
239
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
108
  }
109
  }
110
  add_action('admin_menu', 'seopress_add_columns', 999);
111
+
112
+ //Sortable columns
113
+ foreach (seopress_get_post_types() as $key => $value) {
114
+ add_filter( 'manage_edit-'.$key.'_sortable_columns' , 'wnetpp_admin_sortable_columns' );
115
+ }
116
+
117
+ function wnetpp_admin_sortable_columns($columns) {
118
+ $columns['seopress_noindex'] = 'seopress_noindex';
119
+ return $columns;
120
+ }
121
+
122
+ add_filter( 'pre_get_posts', 'wnetpp_admin_sort_columns_by');
123
+ function wnetpp_admin_sort_columns_by( $query ) {
124
+ if( ! is_admin() ) {
125
+ return;
126
+ } else {
127
+ $orderby = $query->get('orderby');
128
+ if( 'seopress_noindex' == $orderby ) {
129
+ $query->set('meta_key', '_seopress_robots_index');
130
+ $query->set('orderby','meta_value');
131
+ }
132
+ }
133
+ }
134
+ }
135
+
136
+ //Remove Genesis SEO Metaboxe
137
+ function seopress_advanced_appearance_genesis_seo_metaboxe_hook_option() {
138
+ $seopress_advanced_appearance_genesis_seo_metaboxe_hook_option = get_option("seopress_advanced_option_name");
139
+ if ( ! empty ( $seopress_advanced_appearance_genesis_seo_metaboxe_hook_option ) ) {
140
+ foreach ($seopress_advanced_appearance_genesis_seo_metaboxe_hook_option as $key => $seopress_advanced_appearance_genesis_seo_metaboxe_hook_value)
141
+ $options[$key] = $seopress_advanced_appearance_genesis_seo_metaboxe_hook_value;
142
+ if (isset($seopress_advanced_appearance_genesis_seo_metaboxe_hook_option['seopress_advanced_appearance_genesis_seo_metaboxe'])) {
143
+ return $seopress_advanced_appearance_genesis_seo_metaboxe_hook_option['seopress_advanced_appearance_genesis_seo_metaboxe'];
144
+ }
145
+ }
146
+ }
147
+
148
+ if (seopress_advanced_appearance_genesis_seo_metaboxe_hook_option() !='') {
149
+ function seopress_advanced_appearance_genesis_seo_metaboxe_hook() {
150
+ remove_action( 'admin_menu', 'genesis_add_inpost_seo_box' );
151
+ }
152
+ add_action('init', 'seopress_advanced_appearance_genesis_seo_metaboxe_hook', 999);
153
  }
154
 
155
  //Stop words
167
  if (seopress_advanced_advanced_stop_words_option() !='') {
168
  global $pagenow;
169
  if ( $pagenow == 'post-new.php' || $pagenow == 'post.php') {
170
+
171
  function seopress_advanced_advanced_stop_words_hook($slug) {
172
 
173
  $stop_words_list_en = 'a,about,above,after,again,against,all,am,an,and,any,are,aren\'t,as,at,be,because,been,before,being,below,between,both,but,by,can\'t,cannot,could,couldn\'t,did,didn\'t,do,does,doesn\'t,doing,don\'t,down,during,each,few,for,from,further,had,hadn\'t,has,hasn\'t,have,haven\'t,having,he,he\'d,he\'ll,he\'s,her,here,here\'s,hers,herself,him,himself,his,how,how\'s,i,i\'d,,i\'ll,i\'m,i\'ve,if,in,into,is,isn\'t,it,it\'s,its,itself,let\'s,me,more,most,mustn\'t,my,myself,no,nor,not,of,off,on,once,only,or,other,ought,our,ours,ourselves,out,over,own,same,shan\'t,she,she\'d,she\'ll,she\'s,should,shouldn\'t,so,some,such,than,that,that\'s,the,their,theirs,them,themselves,then,there,there\'s,these,they,they\'d,they\'ll,they\'re,they\'ve,this,those,through,to,too,under,until,up,very,was,wasn\'t,we,we\'d,we\'ll,we\'re,we\'ve,were,weren\'t,what,what\'s,when,when\'s,where,where\'s,which,while,who,who\'s,whom,why,why\'s,with,won\'t,would,wouldn\'t,you,you\'d,you\'ll,you\'re,you\'ve,your,yours,yourself,yourselves';
279
  add_filter('sanitize_title', 'seopress_advanced_advanced_stop_words_hook');
280
  }
281
  }
282
+
283
+ //Bulk actions
284
+ //noindex
285
+ foreach (seopress_get_post_types() as $key => $value) {
286
+ add_filter( 'bulk_actions-edit-'.$key, 'seopress_bulk_actions_noindex' );
287
+ }
288
+
289
+ function seopress_bulk_actions_noindex($bulk_actions) {
290
+ $bulk_actions['seopress_noindex'] = __( 'Enable noindex', 'wp-seopress');
291
+ return $bulk_actions;
292
+ }
293
+ foreach (seopress_get_post_types() as $key => $value) {
294
+ add_filter( 'handle_bulk_actions-edit-'.$key, 'seopress_bulk_action_noindex_handler', 10, 3 );
295
+ }
296
+
297
+ function seopress_bulk_action_noindex_handler( $redirect_to, $doaction, $post_ids ) {
298
+ if ( $doaction !== 'seopress_noindex' ) {
299
+ return $redirect_to;
300
+ }
301
+ foreach ( $post_ids as $post_id ) {
302
+ // Perform action for each post.
303
+ update_post_meta( $post_id, '_seopress_robots_index', 'yes' );
304
+ }
305
+ $redirect_to = add_query_arg( 'bulk_noindex_posts', count( $post_ids ), $redirect_to );
306
+ return $redirect_to;
307
+ }
308
+
309
+ add_action( 'admin_notices', 'seopress_bulk_action_noindex_admin_notice' );
310
+
311
+ function seopress_bulk_action_noindex_admin_notice() {
312
+ if ( ! empty( $_REQUEST['bulk_noindex_posts'] ) ) {
313
+ $noindex_count = intval( $_REQUEST['bulk_noindex_posts'] );
314
+ printf( '<div id="message" class="updated fade"><p>' .
315
+ _n( '%s post to noindex.',
316
+ '%s posts to noindex.',
317
+ $noindex_count,
318
+ 'wp-seopress'
319
+ ) . '</p></div>', $noindex_count );
320
+ }
321
+ }
322
+
323
+ //index
324
+ foreach (seopress_get_post_types() as $key => $value) {
325
+ add_filter( 'bulk_actions-edit-'.$key, 'seopress_bulk_actions_index' );
326
+ }
327
+
328
+ function seopress_bulk_actions_index($bulk_actions) {
329
+ $bulk_actions['seopress_index'] = __( 'Enable index', 'wp-seopress');
330
+ return $bulk_actions;
331
+ }
332
+
333
+ foreach (seopress_get_post_types() as $key => $value) {
334
+ add_filter( 'handle_bulk_actions-edit-'.$key, 'seopress_bulk_action_index_handler', 10, 3 );
335
+ }
336
+
337
+ function seopress_bulk_action_index_handler( $redirect_to, $doaction, $post_ids ) {
338
+ if ( $doaction !== 'seopress_index' ) {
339
+ return $redirect_to;
340
+ }
341
+ foreach ( $post_ids as $post_id ) {
342
+ // Perform action for each post.
343
+ delete_post_meta( $post_id, '_seopress_robots_index', '' );
344
+ }
345
+ $redirect_to = add_query_arg( 'bulk_index_posts', count( $post_ids ), $redirect_to );
346
+ return $redirect_to;
347
+ }
348
+
349
+ add_action( 'admin_notices', 'seopress_bulk_action_index_admin_notice' );
350
+
351
+ function seopress_bulk_action_index_admin_notice() {
352
+ if ( ! empty( $_REQUEST['bulk_index_posts'] ) ) {
353
+ $index_count = intval( $_REQUEST['bulk_index_posts'] );
354
+ printf( '<div id="message" class="updated fade"><p>' .
355
+ _n( '%s post to index.',
356
+ '%s posts to index.',
357
+ $index_count,
358
+ 'wp-seopress'
359
+ ) . '</p></div>', $index_count );
360
+ }
361
+ }
362
+
363
+ //nofollow
364
+ foreach (seopress_get_post_types() as $key => $value) {
365
+ add_filter( 'bulk_actions-edit-'.$key, 'seopress_bulk_actions_nofollow' );
366
+ }
367
+
368
+ function seopress_bulk_actions_nofollow($bulk_actions) {
369
+ $bulk_actions['seopress_nofollow'] = __( 'Enable nofollow', 'wp-seopress');
370
+ return $bulk_actions;
371
+ }
372
+ foreach (seopress_get_post_types() as $key => $value) {
373
+ add_filter( 'handle_bulk_actions-edit-'.$key, 'seopress_bulk_action_nofollow_handler', 10, 3 );
374
+ }
375
+
376
+ function seopress_bulk_action_nofollow_handler( $redirect_to, $doaction, $post_ids ) {
377
+ if ( $doaction !== 'seopress_nofollow' ) {
378
+ return $redirect_to;
379
+ }
380
+ foreach ( $post_ids as $post_id ) {
381
+ // Perform action for each post.
382
+ update_post_meta( $post_id, '_seopress_robots_nofollow', 'yes' );
383
+ }
384
+ $redirect_to = add_query_arg( 'bulk_nofollow_posts', count( $post_ids ), $redirect_to );
385
+ return $redirect_to;
386
+ }
387
+
388
+ add_action( 'admin_notices', 'seopress_bulk_action_nofollow_admin_notice' );
389
+
390
+ function seopress_bulk_action_nofollow_admin_notice() {
391
+ if ( ! empty( $_REQUEST['bulk_nofollow_posts'] ) ) {
392
+ $nofollow_count = intval( $_REQUEST['bulk_nofollow_posts'] );
393
+ printf( '<div id="message" class="updated fade"><p>' .
394
+ _n( '%s post to nofollow.',
395
+ '%s posts to nofollow.',
396
+ $nofollow_count,
397
+ 'wp-seopress'
398
+ ) . '</p></div>', $nofollow_count );
399
+ }
400
+ }
401
+
402
+ //follow
403
+ foreach (seopress_get_post_types() as $key => $value) {
404
+ add_filter( 'bulk_actions-edit-'.$key, 'seopress_bulk_actions_follow' );
405
+ }
406
+
407
+ function seopress_bulk_actions_follow($bulk_actions) {
408
+ $bulk_actions['seopress_follow'] = __( 'Enable follow', 'wp-seopress');
409
+ return $bulk_actions;
410
+ }
411
+
412
+ foreach (seopress_get_post_types() as $key => $value) {
413
+ add_filter( 'handle_bulk_actions-edit-'.$key, 'seopress_bulk_action_follow_handler', 10, 3 );
414
+ }
415
+
416
+ function seopress_bulk_action_follow_handler( $redirect_to, $doaction, $post_ids ) {
417
+ if ( $doaction !== 'seopress_follow' ) {
418
+ return $redirect_to;
419
+ }
420
+ foreach ( $post_ids as $post_id ) {
421
+ // Perform action for each post.
422
+ delete_post_meta( $post_id, '_seopress_robots_follow', '' );
423
+ }
424
+ $redirect_to = add_query_arg( 'bulk_follow_posts', count( $post_ids ), $redirect_to );
425
+ return $redirect_to;
426
+ }
427
+
428
+ add_action( 'admin_notices', 'seopress_bulk_action_follow_admin_notice' );
429
+
430
+ function seopress_bulk_action_follow_admin_notice() {
431
+ if ( ! empty( $_REQUEST['bulk_follow_posts'] ) ) {
432
+ $follow_count = intval( $_REQUEST['bulk_follow_posts'] );
433
+ printf( '<div id="message" class="updated fade"><p>' .
434
+ _n( '%s post to follow.',
435
+ '%s posts to follow.',
436
+ $follow_count,
437
+ 'wp-seopress'
438
+ ) . '</p></div>', $follow_count );
439
+ }
440
+ }
441
+
442
+ //Quick Edit
443
+ add_action( 'quick_edit_custom_box', 'seopress_bulk_quick_edit_custom_box', 10, 2 );
444
+
445
+ function seopress_bulk_quick_edit_custom_box($column_name) {
446
+ static $printNonce = TRUE;
447
+ if ( $printNonce ) {
448
+ $printNonce = FALSE;
449
+ wp_nonce_field( plugin_basename( __FILE__ ), 'seopress_title_edit_nonce' );
450
+ }
451
+
452
+ ?>
453
+ <div class="wp-clearfix"></div>
454
+ <fieldset class="inline-edit-col-left inline-edit-book">
455
+ <div class="inline-edit-col column-<?php echo $column_name; ?>">
456
+
457
+ <?php
458
+ switch ( $column_name ) {
459
+ case 'seopress_title':
460
+ ?>
461
+ <h4><?php _e('SEO','wp-seopress'); ?></h4>
462
+ <label class="inline-edit-group">
463
+ <span class="title"><?php _e('Title tag','wp-seopress'); ?></span>
464
+ <span class="input-text-wrap"><input type="text" name="seopress_title" /></span>
465
+ </label>
466
+ <?php
467
+ break;
468
+ case 'seopress_desc':
469
+ ?>
470
+ <label class="inline-edit-tags">
471
+ <span class="title"><?php _e('Meta description','wp-seopress'); ?></span>
472
+ <textarea cols="22" rows="1" name="seopress_desc" autocomplete="off" role="combobox" aria-autocomplete="list" aria-expanded="false"></textarea>
473
+ </label>
474
+ <?php
475
+ break;
476
+ }
477
+ ?>
478
+ </label>
479
+ </div>
480
+ </fieldset>
481
+ <?php
482
+ }
483
+
484
+ add_action('save_post','seopress_bulk_quick_edit_save_post', 10, 2);
485
+ function seopress_bulk_quick_edit_save_post($post_id) {
486
+ if (!current_user_can('edit_post', $post_id)) {
487
+ return;
488
+ }
489
+ $_POST += array("seopress_title_edit_nonce" => '');
490
+ if (!wp_verify_nonce($_POST["seopress_title_edit_nonce"], plugin_basename( __FILE__ ))) {
491
+ return;
492
+ }
493
+ if (isset($_REQUEST['seopress_title'])) {
494
+ update_post_meta($post_id, '_seopress_titles_title', esc_html($_REQUEST['seopress_title']));
495
+ }
496
+ if (isset($_REQUEST['seopress_desc'])) {
497
+ update_post_meta($post_id, '_seopress_titles_desc', esc_html($_REQUEST['seopress_desc']));
498
+ }
499
+ }
inc/functions/options-import-export.php CHANGED
@@ -69,6 +69,23 @@ function seopress_import_settings() {
69
  }
70
  add_action( 'admin_init', 'seopress_import_settings' );
71
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
72
  //Reset SEOPress Settings
73
  function seopress_reset_settings() {
74
  if( empty( $_POST['seopress_action'] ) || 'reset_settings' != $_POST['seopress_action'] )
69
  }
70
  add_action( 'admin_init', 'seopress_import_settings' );
71
 
72
+ //Reset SEOPress Notices Settings
73
+ function seopress_reset_notices_settings() {
74
+ if( empty( $_POST['seopress_action'] ) || 'reset_notices_settings' != $_POST['seopress_action'] )
75
+ return;
76
+ if( ! wp_verify_nonce( $_POST['seopress_reset_notices_nonce'], 'seopress_reset_notices_nonce' ) )
77
+ return;
78
+ if( ! current_user_can( 'manage_options' ) )
79
+ return;
80
+
81
+ global $wpdb;
82
+
83
+ $wpdb->query("DELETE FROM $wpdb->options WHERE option_name LIKE 'seopress_notices' ");
84
+
85
+ wp_safe_redirect( admin_url( 'admin.php?page=seopress-import-export' ) ); exit;
86
+ }
87
+ add_action( 'admin_init', 'seopress_reset_notices_settings' );
88
+
89
  //Reset SEOPress Settings
90
  function seopress_reset_settings() {
91
  if( empty( $_POST['seopress_action'] ) || 'reset_settings' != $_POST['seopress_action'] )
languages/wp-seopress-fr_FR.mo CHANGED
Binary file
languages/wp-seopress-fr_FR.po CHANGED
@@ -2,8 +2,8 @@ msgid ""
2
  msgstr ""
3
  "Project-Id-Version: SEOPress\n"
4
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/wp-cloudy\n"
5
- "POT-Creation-Date: 2017-01-16 21:58+0100\n"
6
- "PO-Revision-Date: 2017-01-16 21:59+0100\n"
7
  "Last-Translator: \n"
8
  "Language-Team: Benjamin DENIS <contact@seopress.org>\n"
9
  "Language: fr_FR\n"
@@ -34,70 +34,70 @@ msgid "Support"
34
  msgstr "Support"
35
 
36
  #: inc/admin/admin-metaboxes.php:11 inc/admin/admin-metaboxes.php:13
37
- #: inc/admin/adminbar.php:16
38
  msgid "SEO"
39
  msgstr "SEO"
40
 
41
- #: inc/admin/admin-metaboxes.php:86
42
  msgid "Titles settings"
43
  msgstr "Paramètres de titres"
44
 
45
- #: inc/admin/admin-metaboxes.php:87 inc/admin/admin.php:177
46
- #: inc/admin/admin.php:243 inc/admin/admin.php:407 inc/admin/admin.php:808
47
  #: inc/admin/adminbar.php:46
48
  msgid "Advanced"
49
  msgstr "Avancé"
50
 
51
- #: inc/admin/admin-metaboxes.php:88 inc/admin/admin.php:175
52
- #: inc/admin/admin.php:750 inc/admin/adminbar.php:34
53
  msgid "Social"
54
  msgstr "Social"
55
 
56
- #: inc/admin/admin-metaboxes.php:90 inc/admin/admin.php:1018
57
  msgid "Redirections"
58
  msgstr "Redirections"
59
 
60
- #: inc/admin/admin-metaboxes.php:93
61
  msgid "Google News"
62
  msgstr "Google News"
63
 
64
- #: inc/admin/admin-metaboxes.php:102
65
  msgid "Title"
66
  msgstr "Titre"
67
 
68
- #: inc/admin/admin-metaboxes.php:103
69
  msgid "Enter your title"
70
  msgstr "Entrez votre titre"
71
 
72
- #: inc/admin/admin-metaboxes.php:107 inc/admin/admin-metaboxes.php:115
73
  msgid "(maximum recommended limit)"
74
  msgstr "(limite maximale recommandée)"
75
 
76
- #: inc/admin/admin-metaboxes.php:110 inc/admin/admin.php:475
77
- #: inc/admin/admin.php:1149
78
  msgid "Meta description"
79
  msgstr "Meta description"
80
 
81
- #: inc/admin/admin-metaboxes.php:111
82
  msgid "Enter your meta description"
83
  msgstr "Entrez votre méta description"
84
 
85
- #: inc/admin/admin-metaboxes.php:120
86
  msgid "Google Snippet Preview"
87
  msgstr "Aperçu Google Snippet"
88
 
89
- #: inc/admin/admin-metaboxes.php:121
90
  msgid "This is what your page will look like in Google search results"
91
  msgstr ""
92
  "Voilà à quoi ressemblera votre page dans les résultats de recherche Google"
93
 
94
- #: inc/admin/admin-metaboxes.php:137 inc/admin/admin.php:1307
95
- #: inc/admin/admin.php:2132 inc/admin/admin.php:2265 inc/admin/admin.php:2355
96
- #: inc/admin/admin.php:2428 inc/admin/admin.php:2477 inc/admin/admin.php:2557
97
  msgid "noindex"
98
  msgstr "noindex"
99
 
100
- #: inc/admin/admin-metaboxes.php:138 inc/admin/admin.php:2559
101
  msgid ""
102
  "Do not display all pages of the site in Google search results and do not "
103
  "display \"Cached\" links in search results."
@@ -105,22 +105,22 @@ msgstr ""
105
  "Ne pas afficher toutes les pages du site dans les résultats de recherche "
106
  "<br>et ne pas afficher de lien \"En cache\" dans les résultats de recherche."
107
 
108
- #: inc/admin/admin-metaboxes.php:143 inc/admin/admin.php:1315
109
- #: inc/admin/admin.php:2151 inc/admin/admin.php:2284 inc/admin/admin.php:2374
110
- #: inc/admin/admin.php:2576
111
  msgid "nofollow"
112
  msgstr "nofollow"
113
 
114
- #: inc/admin/admin-metaboxes.php:144 inc/admin/admin.php:2578
115
  msgid "Do not follow links for all pages."
116
  msgstr "Ne pas suivre les liens de tout le site."
117
 
118
- #: inc/admin/admin-metaboxes.php:149 inc/admin/admin.php:1323
119
- #: inc/admin/admin.php:2595
120
  msgid "noodp"
121
  msgstr "noodp"
122
 
123
- #: inc/admin/admin-metaboxes.php:150 inc/admin/admin.php:2597
124
  msgid ""
125
  "Do not use Open Directory project metadata for titles or excerpts for all "
126
  "pages."
@@ -128,173 +128,173 @@ msgstr ""
128
  "Ne pas utiliser les métadonnées de l'Open Directory project pour les titres "
129
  "ou les extraits de tout le site."
130
 
131
- #: inc/admin/admin-metaboxes.php:155 inc/admin/admin.php:1331
132
- #: inc/admin/admin.php:2614
133
  msgid "noimageindex"
134
  msgstr "noimageindex"
135
 
136
- #: inc/admin/admin-metaboxes.php:156 inc/admin/admin.php:2616
137
  msgid "Do not index images from the entire site."
138
  msgstr "Ne pas indexer les images de tout le site."
139
 
140
- #: inc/admin/admin-metaboxes.php:161 inc/admin/admin.php:1339
141
- #: inc/admin/admin.php:2633
142
  msgid "noarchive"
143
  msgstr "noarchive"
144
 
145
- #: inc/admin/admin-metaboxes.php:162 inc/admin/admin.php:2635
146
  msgid "Do not display a \"Cached\" link in the Google search results."
147
  msgstr "Ne pas afficher de lien \"En cache\" dans les résultats de recherche."
148
 
149
- #: inc/admin/admin-metaboxes.php:167 inc/admin/admin.php:1347
150
- #: inc/admin/admin.php:2652
151
  msgid "nosnippet"
152
  msgstr "nosnippet"
153
 
154
- #: inc/admin/admin-metaboxes.php:168 inc/admin/admin.php:2654
155
  msgid ""
156
  "Do not display a description in the Google search results for all pages."
157
  msgstr ""
158
  "Ne pas afficher de description dans les résultats de recherche pour toutes "
159
  "les pages du site."
160
 
161
- #: inc/admin/admin-metaboxes.php:171 inc/admin/admin.php:479
162
  msgid "Canonical URL"
163
  msgstr "URL Canonique"
164
 
165
- #: inc/admin/admin-metaboxes.php:172
166
  msgid "Default value: "
167
  msgstr "Valeur par défaut: "
168
 
169
- #: inc/admin/admin-metaboxes.php:178
170
  msgid "Facebook Title"
171
  msgstr "Titre Facebook"
172
 
173
- #: inc/admin/admin-metaboxes.php:179
174
  msgid "Enter your Facebook title"
175
  msgstr "Entrez votre titre Facebook"
176
 
177
- #: inc/admin/admin-metaboxes.php:182
178
  msgid "Facebook description"
179
  msgstr "Description Facebook"
180
 
181
- #: inc/admin/admin-metaboxes.php:183
182
  msgid "Enter your Facebook description"
183
  msgstr "Entrez votre description Facebook"
184
 
185
- #: inc/admin/admin-metaboxes.php:186
186
  msgid "Facebook Thumbnail"
187
  msgstr "Miniature Facebook"
188
 
189
- #: inc/admin/admin-metaboxes.php:187
190
  msgid "Minimum size: 200x200px"
191
  msgstr "Taille minimum : 200x200px"
192
 
193
- #: inc/admin/admin-metaboxes.php:188 inc/admin/admin-metaboxes.php:204
194
- #: inc/admin/admin.php:3050 inc/admin/admin.php:3102
195
  msgid "Select your default thumbnail"
196
  msgstr "Sélectionnez votre miniature par défaut"
197
 
198
- #: inc/admin/admin-metaboxes.php:189 inc/admin/admin-metaboxes.php:205
199
- #: inc/admin/admin.php:2833 inc/admin/admin.php:3052 inc/admin/admin.php:3104
200
  msgid "Upload an Image"
201
  msgstr "Envoyer une image"
202
 
203
- #: inc/admin/admin-metaboxes.php:194
204
  msgid "Twitter Title"
205
  msgstr "Titre Twitter"
206
 
207
- #: inc/admin/admin-metaboxes.php:195
208
  msgid "Enter your Twitter title"
209
  msgstr "Entrez votre titre Twitter"
210
 
211
- #: inc/admin/admin-metaboxes.php:198
212
  msgid "Twitter description"
213
  msgstr "Description Twitter"
214
 
215
- #: inc/admin/admin-metaboxes.php:199
216
  msgid "Enter your Twitter description"
217
  msgstr "Entrez votre description Twitter"
218
 
219
- #: inc/admin/admin-metaboxes.php:202
220
  msgid "Twitter Thumbnail"
221
  msgstr "Miniature Twitter"
222
 
223
- #: inc/admin/admin-metaboxes.php:203
224
  msgid "Minimum size: 160x160px"
225
  msgstr "Taille minimum : 160x160px"
226
 
227
- #: inc/admin/admin-metaboxes.php:214
228
  msgid "Enable redirection?"
229
  msgstr "Activer la redirection ?"
230
 
231
- #: inc/admin/admin-metaboxes.php:218
232
  msgid "URL redirection"
233
  msgstr "URL de redirection"
234
 
235
- #: inc/admin/admin-metaboxes.php:220
236
  msgid "301"
237
  msgstr "301"
238
 
239
- #: inc/admin/admin-metaboxes.php:221
240
  msgid "302"
241
  msgstr "302"
242
 
243
- #: inc/admin/admin-metaboxes.php:222
244
  msgid "307"
245
  msgstr "307"
246
 
247
- #: inc/admin/admin-metaboxes.php:224
248
  msgid "Enter your URL"
249
  msgstr "Saisissez votre URL"
250
 
251
- #: inc/admin/admin-metaboxes.php:227 inc/admin/admin-metaboxes.php:229
252
  msgid "Test your URL"
253
  msgstr "Tester votre URL"
254
 
255
- #: inc/admin/admin-metaboxes.php:238
256
  msgid "Exclude this post from Google News Sitemap?"
257
  msgstr "Exclure cet article du sitemap Google News ?"
258
 
259
- #: inc/admin/admin-metaboxes.php:242
260
  msgid "Google News Genres"
261
  msgstr "Genres Google News"
262
 
263
- #: inc/admin/admin-metaboxes.php:244 inc/admin/admin.php:3270
264
- #: inc/admin/admin.php:3347 inc/admin/admin.php:3424 inc/admin/admin.php:3501
265
- #: inc/admin/admin.php:3578
266
  msgid "None"
267
  msgstr "Aucun"
268
 
269
- #: inc/admin/admin-metaboxes.php:245
270
  msgid "Press Release"
271
  msgstr "Press Release"
272
 
273
- #: inc/admin/admin-metaboxes.php:246
274
  msgid "Satire"
275
  msgstr "Satire"
276
 
277
- #: inc/admin/admin-metaboxes.php:247
278
  msgid "Blog"
279
  msgstr "Blog"
280
 
281
- #: inc/admin/admin-metaboxes.php:248
282
  msgid "OpEd"
283
  msgstr "OpEd"
284
 
285
- #: inc/admin/admin-metaboxes.php:249
286
  msgid "Opinion"
287
  msgstr "Opinion"
288
 
289
- #: inc/admin/admin-metaboxes.php:250
290
  msgid "UserGenerated"
291
  msgstr "UserGenerated"
292
 
293
- #: inc/admin/admin-metaboxes.php:255
294
  msgid "Google News Keywords <em>(max recommended limit: 12)</em>"
295
  msgstr "Mots clés Google News <em>(limite max recommandée: 12)</em>"
296
 
297
- #: inc/admin/admin-metaboxes.php:256
298
  msgid "Enter your Google News Keywords"
299
  msgstr "Entrez vos mots clés Google News"
300
 
@@ -302,177 +302,177 @@ msgstr "Entrez vos mots clés Google News"
302
  msgid "404 - Page not found"
303
  msgstr "404 - Page non trouvée"
304
 
305
- #: inc/admin/admin.php:173 inc/admin/adminbar.php:22
306
  msgid "Titles & Metas"
307
  msgstr "Titres et Métas"
308
 
309
- #: inc/admin/admin.php:174 inc/admin/admin.php:721 inc/admin/adminbar.php:28
310
  msgid "XML / HTML Sitemap"
311
  msgstr "Sitemap XML / HTML"
312
 
313
- #: inc/admin/admin.php:176 inc/admin/admin.php:779 inc/admin/adminbar.php:40
314
  msgid "Google Analytics"
315
  msgstr "Google Analytics"
316
 
317
- #: inc/admin/admin.php:178
318
  msgid "Import / Export / Reset settings"
319
  msgstr "Import / Export / Réinitialisation des paramètres"
320
 
321
- #: inc/admin/admin.php:178 inc/admin/admin.php:1059 inc/admin/adminbar.php:52
322
  msgid "Import / Export / Reset"
323
  msgstr "Importer / Exporter / Réinitialiser"
324
 
325
- #: inc/admin/admin.php:185
326
  #, php-format
327
  msgid "%%sitetitle%%"
328
  msgstr "%%sitetitle%%"
329
 
330
- #: inc/admin/admin.php:185 inc/admin/admin.php:2055 inc/admin/admin.php:2102
331
- #: inc/admin/admin.php:2217 inc/admin/admin.php:2325 inc/admin/admin.php:2399
332
- #: inc/admin/admin.php:2449 inc/admin/admin.php:2498 inc/admin/admin.php:2528
333
  msgid "Site Title"
334
  msgstr "Titre du Site"
335
 
336
- #: inc/admin/admin.php:186
337
  #, php-format
338
  msgid "%%tagline%%"
339
  msgstr "%%tagline%%"
340
 
341
- #: inc/admin/admin.php:186 inc/admin/admin.php:2056 inc/admin/admin.php:2067
342
  msgid "Tagline"
343
  msgstr "Slogan du site"
344
 
345
- #: inc/admin/admin.php:187
346
  #, php-format
347
  msgid "%%post_title%%"
348
  msgstr "%%post_title%%"
349
 
350
- #: inc/admin/admin.php:187
351
  msgid "Post Title (post, page, custom post type)"
352
  msgstr "Titre du post (article, page, type d'article personnalisé)"
353
 
354
- #: inc/admin/admin.php:188
355
  #, php-format
356
  msgid "%%post_excerpt%%"
357
  msgstr "%%post_excerpt%%"
358
 
359
- #: inc/admin/admin.php:188
360
  msgid "Post excerpt"
361
  msgstr "Extrait du post"
362
 
363
- #: inc/admin/admin.php:189
364
  #, php-format
365
  msgid "%%post_date%%"
366
  msgstr "%%post_date%%"
367
 
368
- #: inc/admin/admin.php:189
369
  msgid "Post date"
370
  msgstr "Date du post"
371
 
372
- #: inc/admin/admin.php:190
373
  #, php-format
374
  msgid "%%post_author%%"
375
  msgstr "%%post_author%%"
376
 
377
- #: inc/admin/admin.php:190 inc/admin/admin.php:2398
378
  msgid "Post author"
379
  msgstr "Auteur du post"
380
 
381
- #: inc/admin/admin.php:191
382
  #, php-format
383
  msgid "%%_category_title%%"
384
  msgstr "%%_category_title%%"
385
 
386
- #: inc/admin/admin.php:191
387
  msgid "Category title"
388
  msgstr "Titre de catégorie"
389
 
390
- #: inc/admin/admin.php:192
391
  #, php-format
392
  msgid "%%_category_description%%"
393
  msgstr "%%_category_description%%"
394
 
395
- #: inc/admin/admin.php:192
396
  msgid "Category description"
397
  msgstr "Description de la catégorie"
398
 
399
- #: inc/admin/admin.php:193
400
  #, php-format
401
  msgid "%%tag_title%%"
402
  msgstr "%%tag_title%%"
403
 
404
- #: inc/admin/admin.php:193
405
  msgid "Tag title"
406
  msgstr "Titre de l'étiquette"
407
 
408
- #: inc/admin/admin.php:194
409
  #, php-format
410
  msgid "%%tag_description%%"
411
  msgstr "%%tag_description%%"
412
 
413
- #: inc/admin/admin.php:194
414
  msgid "Tag description"
415
  msgstr "Description de l'étiquette"
416
 
417
- #: inc/admin/admin.php:195
418
  #, php-format
419
  msgid "%%term_title%%"
420
  msgstr "%%term_title%%"
421
 
422
- #: inc/admin/admin.php:195
423
  msgid "Term title"
424
  msgstr "Titre du terme"
425
 
426
- #: inc/admin/admin.php:196
427
  #, php-format
428
  msgid "%%term_description%%"
429
  msgstr "%%term_description%%"
430
 
431
- #: inc/admin/admin.php:196
432
  msgid "Term description"
433
  msgstr "Description du terme"
434
 
435
- #: inc/admin/admin.php:197
436
  #, php-format
437
  msgid "%%search_keywords%%"
438
  msgstr "%%search_keywords%%"
439
 
440
- #: inc/admin/admin.php:197
441
  msgid "Search keywords"
442
  msgstr "Mots clés de recherche"
443
 
444
- #: inc/admin/admin.php:198
445
  #, php-format
446
  msgid "%%current_pagination%%"
447
  msgstr "%%current_pagination%%"
448
 
449
- #: inc/admin/admin.php:198
450
  msgid "Current number page"
451
  msgstr "Numéro de page actuel"
452
 
453
- #: inc/admin/admin.php:199
454
  #, php-format
455
  msgid "%%cpt_plural%%"
456
  msgstr "%%cpt_plural%%"
457
 
458
- #: inc/admin/admin.php:199
459
  msgid "Plural Post Type Archive name"
460
  msgstr "Nom pluriel archives type d'article personnalisé"
461
 
462
- #: inc/admin/admin.php:200
463
  #, php-format
464
  msgid "%%date_archive%%"
465
  msgstr "%%date_archive%%"
466
 
467
- #: inc/admin/admin.php:200
468
  msgid "Date Archive"
469
  msgstr "Date d'archive"
470
 
471
- #: inc/admin/admin.php:206
472
  msgid "Templates variables"
473
  msgstr "Modèles de variables"
474
 
475
- #: inc/admin/admin.php:224
476
  msgid ""
477
  "Discourage search engines from indexing this site is <strong>ON!</strong> "
478
  "None of the following settings will be applied."
@@ -480,71 +480,75 @@ msgstr ""
480
  "Décourager les moteurs de recherche d’indexer ce site est <strong>actif !</"
481
  "strong> Aucun des paramètres suivants ne s’appliqueront."
482
 
483
- #: inc/admin/admin.php:225
484
  msgid "Change this settings"
485
  msgstr "Changer ce paramètre"
486
 
487
- #: inc/admin/admin.php:239
488
  msgid "Home"
489
  msgstr "Accueil"
490
 
491
- #: inc/admin/admin.php:240
492
  msgid "Single Post Types"
493
  msgstr "Détail Types de contenus"
494
 
495
- #: inc/admin/admin.php:241
496
  msgid "Archives"
497
  msgstr "Archives"
498
 
499
- #: inc/admin/admin.php:242 inc/admin/admin.php:285
500
  msgid "Taxonomies"
501
  msgstr "Taxonomies"
502
 
503
- #: inc/admin/admin.php:283 inc/admin/admin.php:366
504
  msgid "General"
505
  msgstr "Général"
506
 
507
- #: inc/admin/admin.php:284
508
  msgid "Post Types"
509
  msgstr "Types de contenus"
510
 
511
- #: inc/admin/admin.php:286
512
  msgid "HTML Sitemap"
513
  msgstr "Sitemap HTML"
514
 
515
- #: inc/admin/admin.php:324
516
  msgid "Knowledge Graph"
517
  msgstr "Knowledge Graph"
518
 
519
- #: inc/admin/admin.php:325
520
  msgid "Your social accounts"
521
  msgstr "Vos comptes sociaux"
522
 
523
- #: inc/admin/admin.php:326
524
  msgid "Facebook"
525
  msgstr "Facebook"
526
 
527
- #: inc/admin/admin.php:327
528
  msgid "Twitter"
529
  msgstr "Twitter"
530
 
531
- #: inc/admin/admin.php:367
532
  msgid "Tracking"
533
  msgstr "Suivi"
534
 
535
- #: inc/admin/admin.php:368
536
  msgid "Custom Dimensions"
537
  msgstr "Dimensions personnalisées"
538
 
539
- #: inc/admin/admin.php:408
 
 
 
 
540
  msgid "Appearance"
541
  msgstr "Apparence"
542
 
543
- #: inc/admin/admin.php:439
544
  msgid "Export Settings"
545
  msgstr "Exporter Paramètres"
546
 
547
- #: inc/admin/admin.php:441
548
  msgid ""
549
  "Export the plugin settings for this site as a .json file. This allows you to "
550
  "easily import the configuration into another site."
@@ -553,15 +557,15 @@ msgstr ""
553
  "vous permet d'importer facilement votre configuration dans un autre site "
554
  "WordPress."
555
 
556
- #: inc/admin/admin.php:446
557
  msgid "Export"
558
  msgstr "Exporter"
559
 
560
- #: inc/admin/admin.php:453
561
  msgid "Import Settings"
562
  msgstr "Importer Paramètres"
563
 
564
- #: inc/admin/admin.php:455
565
  msgid ""
566
  "Import the plugin settings from a .json file. This file can be obtained by "
567
  "exporting the settings on another site using the form above."
@@ -570,52 +574,68 @@ msgstr ""
570
  "être obtenu en exportant les paramètres depuis un autre site en utilisant le "
571
  "formulaire ci-dessus."
572
 
573
- #: inc/admin/admin.php:463
574
  msgid "Import"
575
  msgstr "Importer"
576
 
577
- #: inc/admin/admin.php:470
578
  msgid "Import posts metadata from Yoast"
579
  msgstr ""
580
  "Importer les méta données des articles, pages, types d'articles "
581
  "personnalisés depuis Yoast"
582
 
583
- #: inc/admin/admin.php:472
584
  msgid "By clicking Migrate, we'll import:"
585
  msgstr "En cliquant sur Migrer, vous importerez :"
586
 
587
- #: inc/admin/admin.php:474
588
  msgid "Title tags"
589
  msgstr "Balises titres"
590
 
591
- #: inc/admin/admin.php:476
592
  msgid "Facebook Open Graph tags (title, description and image thumbnail)"
593
  msgstr "Balises Facebook Open Graph (titre, description et miniature)"
594
 
595
- #: inc/admin/admin.php:477
596
  msgid "Twitter tags (title, description and image thumbnail)"
597
  msgstr "Balises Twitter (titre, description et miniature)"
598
 
599
- #: inc/admin/admin.php:478
600
  msgid "Meta Robots (noindex, nofollow...)"
601
  msgstr "Meta Robots (noindex, nofollow...)"
602
 
603
- #: inc/admin/admin.php:481
604
  msgid ""
605
  "<strong>WARNING:</strong> Migration will delete all SEOPress posts metadata"
606
  msgstr ""
607
  "<strong>ATTENTION :</strong> La migration supprimera toutes les méta-données "
608
  "de SEOPress"
609
 
610
- #: inc/admin/admin.php:482
611
  msgid "Migrate now"
612
  msgstr "Migrer maintenant"
613
 
614
- #: inc/admin/admin.php:489
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
615
  msgid "Reset All Settings"
616
  msgstr "Tout réinitialiser"
617
 
618
- #: inc/admin/admin.php:491
619
  msgid ""
620
  "<strong>WARNING:</strong> Delete all options related to SEOPress in your "
621
  "database AND set settings to their default values."
@@ -623,15 +643,15 @@ msgstr ""
623
  "<strong>AVERTISSEMENT:</strong> Supprime toutes les options liées à SEOPress "
624
  "dans la base de données et redéfini ces derniers à leurs valeurs par défaut."
625
 
626
- #: inc/admin/admin.php:496
627
  msgid "Reset settings"
628
  msgstr "Réinitialiser les paramètres"
629
 
630
- #: inc/admin/admin.php:533
631
  msgid "Notifications Center"
632
  msgstr "Centre de Notifications"
633
 
634
- #: inc/admin/admin.php:538
635
  msgid ""
636
  "We notice that you use Yoast SEO plugin. <br>Do you want to migrate all your "
637
  "posts metadata to SEOPress?"
@@ -640,159 +660,171 @@ msgstr ""
640
  "méta données de vos articles, pages et types d'articles personnalisés vers "
641
  "SEOPress ?"
642
 
643
- #: inc/admin/admin.php:540
644
  msgid "Migrate!"
645
  msgstr "Migrer !"
646
 
647
- #: inc/admin/admin.php:561
648
  msgid "Your site doesn't use an SSL certificate!"
649
  msgstr "Votre site n'utilise pas de certificat SSL !"
650
 
651
- #: inc/admin/admin.php:562
652
  msgid "Learn more"
653
  msgstr "En savoir plus"
654
 
655
- #: inc/admin/admin.php:563
656
  msgid "Low impact"
657
  msgstr "Impact faible"
658
 
659
- #: inc/admin/admin.php:565
660
  msgid "Buy an SSL!"
661
  msgstr "Acheter un SSL !"
662
 
663
- #: inc/admin/admin.php:575
664
  msgid "Your site is not visible to Search Engines!"
665
  msgstr "Votre site n'est pas visible aux moteurs de recherche !"
666
 
667
- #: inc/admin/admin.php:576 inc/admin/admin.php:586 inc/admin/admin.php:596
668
  msgid "High impact"
669
  msgstr "Impact élevé"
670
 
671
- #: inc/admin/admin.php:578 inc/admin/admin.php:588 inc/admin/admin.php:598
672
- #: inc/admin/admin.php:608 inc/admin/admin.php:680
673
  msgid "Fix this!"
674
  msgstr "Régler !"
675
 
676
- #: inc/admin/admin.php:585
677
  msgid "Your site title is empty!"
678
  msgstr "Le titre de votre site est vide !"
679
 
680
- #: inc/admin/admin.php:595
681
  msgid ""
682
  "Your permalinks are not SEO Friendly! Enable pretty permalinks to fix this."
683
  msgstr ""
684
  "Vos permaliens ne sont pas SEO Friendly ! Veuillez activer la réécriture "
685
  "d'URL pour résoudre cela."
686
 
687
- #: inc/admin/admin.php:605
688
- msgid "You don't have an XML Sitemap!"
689
- msgstr "Vous n'avez pas de Sitemap XML !"
690
 
691
- #: inc/admin/admin.php:606
692
  msgid "Medium impact"
693
  msgstr "Impact modéré"
694
 
695
- #: inc/admin/admin.php:629
696
- msgid "Do you have a Google Business page? It's free!"
697
- msgstr "Avez vous une page Google Business ? C'est gratuit !"
698
 
699
- #: inc/admin/admin.php:630 inc/admin/admin.php:666
700
  msgid "Huge impact"
701
  msgstr "Impact élevé"
702
 
703
- #: inc/admin/admin.php:632
 
 
 
 
 
 
 
 
 
 
 
 
704
  msgid "Create your page now!"
705
  msgstr "Créez votre page !"
706
 
707
- #: inc/admin/admin.php:665
708
  msgid "Add your site to Google. It's free!"
709
  msgstr "Ajoutez votre site à Google. C’est gratuit !"
710
 
711
- #: inc/admin/admin.php:668
712
  msgid "Add your site to Search Console!"
713
  msgstr "Ajoutez à Search Console !"
714
 
715
- #: inc/admin/admin.php:678
716
  msgid "You have to enter your licence key to get updates and support"
717
  msgstr ""
718
  "Vous devez entrer votre clé de licence pour obtenir mises à jour et support"
719
 
720
- #: inc/admin/admin.php:692
721
  msgid "Titles & metas"
722
  msgstr "Titres et Métas"
723
 
724
- #: inc/admin/admin.php:693
725
  msgid "Manage all your titles & metas"
726
  msgstr "Gérez tous vos titres et métas"
727
 
728
- #: inc/admin/admin.php:694 inc/admin/admin.php:723 inc/admin/admin.php:752
729
- #: inc/admin/admin.php:781 inc/admin/admin.php:810 inc/admin/admin.php:839
730
- #: inc/admin/admin.php:867 inc/admin/admin.php:895 inc/admin/admin.php:923
731
- #: inc/admin/admin.php:952 inc/admin/admin.php:963 inc/admin/admin.php:992
732
- #: inc/admin/admin.php:1020 inc/admin/admin.php:1049 inc/admin/admin.php:1061
733
- #: inc/admin/admin.php:1073
734
  msgid "Manage"
735
  msgstr "Gérer"
736
 
737
- #: inc/admin/admin.php:706 inc/admin/admin.php:710 inc/admin/admin.php:735
738
- #: inc/admin/admin.php:739 inc/admin/admin.php:764 inc/admin/admin.php:768
739
- #: inc/admin/admin.php:793 inc/admin/admin.php:797 inc/admin/admin.php:822
740
- #: inc/admin/admin.php:826 inc/admin/admin.php:851 inc/admin/admin.php:855
741
- #: inc/admin/admin.php:879 inc/admin/admin.php:883 inc/admin/admin.php:907
742
- #: inc/admin/admin.php:911 inc/admin/admin.php:935 inc/admin/admin.php:939
743
- #: inc/admin/admin.php:975 inc/admin/admin.php:979 inc/admin/admin.php:1004
744
- #: inc/admin/admin.php:1008 inc/admin/admin.php:1032 inc/admin/admin.php:1036
745
  msgid "Click to disable this feature"
746
  msgstr "Cliquez pour désactiver cette fonctionnalité"
747
 
748
- #: inc/admin/admin.php:707 inc/admin/admin.php:709 inc/admin/admin.php:736
749
- #: inc/admin/admin.php:738 inc/admin/admin.php:765 inc/admin/admin.php:767
750
- #: inc/admin/admin.php:794 inc/admin/admin.php:796 inc/admin/admin.php:823
751
- #: inc/admin/admin.php:825 inc/admin/admin.php:852 inc/admin/admin.php:854
752
- #: inc/admin/admin.php:880 inc/admin/admin.php:882 inc/admin/admin.php:908
753
- #: inc/admin/admin.php:910 inc/admin/admin.php:936 inc/admin/admin.php:938
754
- #: inc/admin/admin.php:976 inc/admin/admin.php:978 inc/admin/admin.php:1005
755
- #: inc/admin/admin.php:1007 inc/admin/admin.php:1033 inc/admin/admin.php:1035
756
  msgid "Click to enable this feature"
757
  msgstr "Cliquez pour activer cette fonctionnalité"
758
 
759
- #: inc/admin/admin.php:722
760
  msgid "Manage your XML / HTML Sitemap"
761
  msgstr "Gérez votre plan de site XML / HTML"
762
 
763
- #: inc/admin/admin.php:751
764
  msgid "Open Graph, Twitter Card, Google Knowledge Graph and more..."
765
  msgstr "Open Graph, Twitter Card, Google Knowledge Graph et plus..."
766
 
767
- #: inc/admin/admin.php:780
768
  msgid "Track everything about your visitors with Google Analytics"
769
  msgstr "Suivez tout ce qui concerne vos visiteurs avec Google Analytics"
770
 
771
- #: inc/admin/admin.php:809
772
  msgid "Advanced SEO options for advanced users!"
773
  msgstr "Options SEO avancées pour utilisateurs avancés !"
774
 
775
- #: inc/admin/admin.php:837
776
  msgid "WooCommerce"
777
  msgstr "WooCommerce"
778
 
779
- #: inc/admin/admin.php:838
780
  msgid "Improve WooCommerce SEO"
781
  msgstr "Améliorer le SEO de WooCommerce"
782
 
783
- #: inc/admin/admin.php:865
784
  msgid "Dublin Core"
785
  msgstr "Dublin Core"
786
 
787
- #: inc/admin/admin.php:866
788
  msgid "Add Dublin Core meta tags"
789
  msgstr "Ajout des balises Dublin Core"
790
 
791
- #: inc/admin/admin.php:893
792
  msgid "Structured Data Types"
793
  msgstr "Types de données structurées"
794
 
795
- #: inc/admin/admin.php:894
796
  msgid ""
797
  "Add data types to your content: articles, courses, recipes, videos, events "
798
  "and products"
@@ -800,318 +832,322 @@ msgstr ""
800
  "Ajout des types de données à vos contenus : articles, cours, recettes, "
801
  "vidéos, événements et produits"
802
 
803
- #: inc/admin/admin.php:921
804
  msgid "Breadcrumbs"
805
  msgstr "Fil d'Ariane"
806
 
807
- #: inc/admin/admin.php:922
808
  msgid "Enable Breadcrumbs for your theme and improve your SEO in SERPs"
809
  msgstr ""
810
  "Activer le fil d'Ariane pour votre thème et améliorer votre SEO dans les "
811
  "résultats de recherche "
812
 
813
- #: inc/admin/admin.php:950
814
  msgid "Google Page Speed"
815
  msgstr "Google Page Speed"
816
 
817
- #: inc/admin/admin.php:951
818
  msgid "Track your website performance to improve SEO with Google Page Speed"
819
  msgstr ""
820
  "Suivez les performances de votre site Web afin d’améliorer le SEO avec "
821
  "Google Page Speed"
822
 
823
- #: inc/admin/admin.php:961
824
  msgid "Robots"
825
  msgstr "Robots"
826
 
827
- #: inc/admin/admin.php:962
828
  msgid "Edit your robots.txt file"
829
  msgstr "Editer votre fichier robots.txt"
830
 
831
- #: inc/admin/admin.php:990
832
  msgid "Google News Sitemap"
833
  msgstr "Google News Sitemap"
834
 
835
- #: inc/admin/admin.php:991
836
  msgid "Optimize your site for Google News"
837
  msgstr "Optimisez votre site pour Google Actualités"
838
 
839
- #: inc/admin/admin.php:1019
840
  msgid "Monitor 404, create 301, 302 and 307 redirections"
841
  msgstr "Surveiller les 404, créer des redirections 301, 302 et 307"
842
 
843
- #: inc/admin/admin.php:1047
844
  msgid "htaccess"
845
  msgstr "htaccess"
846
 
847
- #: inc/admin/admin.php:1048
848
  msgid "Edit your htaccess file."
849
  msgstr "Modifier votre fichier htaccess."
850
 
851
- #: inc/admin/admin.php:1060
852
  msgid "Import / export SEOPress settings from site to site."
853
  msgstr "Importer / Exporter les paramètres d'un site à un autre"
854
 
855
- #: inc/admin/admin.php:1071
856
  msgid "License"
857
  msgstr "Licence"
858
 
859
- #: inc/admin/admin.php:1072
860
  msgid "Edit your SEOPress license key."
861
  msgstr "Modifier votre clé de licence SEOPress."
862
 
863
- #: inc/admin/admin.php:1141
864
  msgid "Site title"
865
  msgstr "Titre du site"
866
 
867
- #: inc/admin/admin.php:1364 inc/admin/admin.php:2671
868
  msgid "Enable XML Sitemap"
869
  msgstr "Activez le Sitemap XML"
870
 
871
- #: inc/admin/admin.php:1372 inc/admin/admin.php:2690
872
  msgid "Enable HTML Sitemap"
873
  msgstr "Activez le Sitemap HTML"
874
 
875
- #: inc/admin/admin.php:1388
876
  msgid "Check to INCLUDE Post Types"
877
  msgstr "Cochez pour INCLURE les Types d'article"
878
 
879
- #: inc/admin/admin.php:1404
880
  msgid "Check to INCLUDE Taxonomies"
881
  msgstr "Cochez pour INCLURE les Taxonomies"
882
 
883
- #: inc/admin/admin.php:1420
884
  msgid "Enter a post, page or custom post type ID(s) to display the sitemap"
885
  msgstr ""
886
  "Saisissez un ID d'article, de page ou de type de contenu où afficher le plan "
887
  "de site."
888
 
889
- #: inc/admin/admin.php:1428
890
  msgid "Exclude some Posts, Pages or Custom Post Types"
891
  msgstr "Exclure certains articles, pages ou types de contenus."
892
 
893
- #: inc/admin/admin.php:1445
894
  msgid "Person or organization"
895
  msgstr "Personne ou Organisation"
896
 
897
- #: inc/admin/admin.php:1453
898
  msgid "Your name / organization"
899
  msgstr "Votre nom / organisation"
900
 
901
- #: inc/admin/admin.php:1461
902
  msgid "Your photo / organization logo"
903
  msgstr "Votre photo / logo"
904
 
905
- #: inc/admin/admin.php:1469
906
  msgid "Organization Phone number (only for Organization)"
907
  msgstr ""
908
  "Numéro de téléphone de l'organisation (seulement pour les organisations)"
909
 
910
- #: inc/admin/admin.php:1477
911
  msgid "Contact type (only for Organization)"
912
  msgstr "Type de contact (seulement pour les organisations)"
913
 
914
- #: inc/admin/admin.php:1485
915
  msgid "Contact option (only for Organization)"
916
  msgstr "Option de contact (seulement pour les organisations)"
917
 
918
- #: inc/admin/admin.php:1502
919
  msgid "Facebook Page URL"
920
  msgstr "URL de la page Facebook"
921
 
922
- #: inc/admin/admin.php:1510
923
  msgid "Twitter Username"
924
  msgstr "Compte utilisateur Twitter"
925
 
926
- #: inc/admin/admin.php:1518
927
  msgid "Google + URL"
928
  msgstr "URL Google +"
929
 
930
- #: inc/admin/admin.php:1526
931
  msgid "Pinterest URL"
932
  msgstr "URL Pinterest"
933
 
934
- #: inc/admin/admin.php:1534
935
  msgid "Instagram URL"
936
  msgstr "URL Instagram"
937
 
938
- #: inc/admin/admin.php:1542
939
  msgid "YouTube URL"
940
  msgstr "URL YouTube"
941
 
942
- #: inc/admin/admin.php:1550
943
  msgid "LinkedIn URL"
944
  msgstr "URL LinkedIn"
945
 
946
- #: inc/admin/admin.php:1558
947
  msgid "MySpace URL"
948
  msgstr "URL MySpace"
949
 
950
- #: inc/admin/admin.php:1566
951
  msgid "Soundcloud URL"
952
  msgstr "URL Soundcloud"
953
 
954
- #: inc/admin/admin.php:1574
955
  msgid "Tumblr URL"
956
  msgstr "URL Tumblr"
957
 
958
- #: inc/admin/admin.php:1591
959
  msgid "Enable Open Graph Data"
960
  msgstr "Activez les données Open Graph"
961
 
962
- #: inc/admin/admin.php:1599
963
  msgid "Select a default image"
964
  msgstr "Sélectionnez une image par défaut"
965
 
966
- #: inc/admin/admin.php:1607
967
  msgid "Facebook Admin ID"
968
  msgstr "Facebook Admin ID"
969
 
970
- #: inc/admin/admin.php:1615
971
  msgid "Facebook App ID"
972
  msgstr "Facebook App ID"
973
 
974
- #: inc/admin/admin.php:1632
975
  msgid "Enable Twitter Card"
976
  msgstr "Activez Twitter Card"
977
 
978
- #: inc/admin/admin.php:1640
979
  msgid "Default Twitter Image"
980
  msgstr "Image Twitter par défaut"
981
 
982
- #: inc/admin/admin.php:1648
983
  msgid "Image size for Twitter Summary card"
984
  msgstr "Taille d'image pour Twitter Summary Card"
985
 
986
- #: inc/admin/admin.php:1665 inc/admin/admin.php:3141
987
  msgid "Enable Google Analytics tracking"
988
  msgstr "Activer le suivi Google Analytics"
989
 
990
- #: inc/admin/admin.php:1673
991
  msgid "Enter your tracking ID"
992
  msgstr "Saisissez votre ID de suivi"
993
 
994
- #: inc/admin/admin.php:1681
995
  msgid "Exclude user roles from tracking"
996
  msgstr "Exclure des rôles utilisateurs du suivi"
997
 
998
- #: inc/admin/admin.php:1699 inc/admin/admin.php:3193
999
  msgid "Enable remarketing, demographics and interest reporting"
1000
  msgstr ""
1001
  "Activer le remarketing, les rapports démographiques et centres d'intérêts"
1002
 
1003
- #: inc/admin/admin.php:1707 inc/admin/admin.php:3210
1004
  msgid "Enable IP Anonymization"
1005
  msgstr "Activer l'anonymisation des IP"
1006
 
1007
- #: inc/admin/admin.php:1715 inc/admin/admin.php:3227
1008
  msgid "Enhanced Link Attribution"
1009
  msgstr "Améliorer l'attribution des liens"
1010
 
1011
- #: inc/admin/admin.php:1723 inc/admin/admin.php:3244
1012
  msgid "Enable cross-domain tracking"
1013
  msgstr "Activer le suivi cross-domain"
1014
 
1015
- #: inc/admin/admin.php:1731
1016
  msgid "Cross domains"
1017
  msgstr "Cross domains"
1018
 
1019
- #: inc/admin/admin.php:1749
1020
  msgid "Track Authors"
1021
  msgstr "Suivre les Auteurs"
1022
 
1023
- #: inc/admin/admin.php:1757
1024
  msgid "Track Categories"
1025
  msgstr "Suivre les Catégories"
1026
 
1027
- #: inc/admin/admin.php:1765
1028
  msgid "Track Tags"
1029
  msgstr "Suivre les Etiquettes"
1030
 
1031
- #: inc/admin/admin.php:1773
1032
  msgid "Track Post Types"
1033
  msgstr "Suivre les Types d'articles personnalisés"
1034
 
1035
- #: inc/admin/admin.php:1781
1036
  msgid "Track Logged In Users"
1037
  msgstr "Suivre les utilisateurs connectés"
1038
 
1039
- #: inc/admin/admin.php:1798
1040
  msgid "Redirect attachment pages to post parent"
1041
  msgstr ""
1042
  "Rediriger les pages de type pièces jointes vers la page parent (attachment)"
1043
 
1044
- #: inc/admin/admin.php:1806
1045
  msgid "Remove stop words from URL"
1046
  msgstr "Supprimer les mots inutiles des URL"
1047
 
1048
- #: inc/admin/admin.php:1814
1049
  msgid "Remove /category/ in URL"
1050
  msgstr "Supprimer /category/ dans les URLs"
1051
 
1052
- #: inc/admin/admin.php:1822
1053
  msgid "Google site verification"
1054
  msgstr "Vérification de site Google"
1055
 
1056
- #: inc/admin/admin.php:1830
1057
  msgid "Bing site verification"
1058
  msgstr "Vérification de site Bing"
1059
 
1060
- #: inc/admin/admin.php:1838
1061
  msgid "Pinterest site verification"
1062
  msgstr "Vérification de site Pinterest :"
1063
 
1064
- #: inc/admin/admin.php:1846
1065
  msgid "Yandex site verification"
1066
  msgstr "Vérification de site Yandex"
1067
 
1068
- #: inc/admin/admin.php:1863
1069
  msgid "SEOPress in admin bar"
1070
  msgstr "SEOPress dans la barre d’admin"
1071
 
1072
- #: inc/admin/admin.php:1871
1073
  msgid "Hide SEOPress Notifications Center"
1074
  msgstr "Cacher le Centre de Notifications SEOPress"
1075
 
1076
- #: inc/admin/admin.php:1879
1077
  msgid "Show Title tag column in post types"
1078
  msgstr "Afficher la balise Titre dans les colonnes des articles personnalisés"
1079
 
1080
- #: inc/admin/admin.php:1887
1081
  msgid "Show Meta description column in post types"
1082
  msgstr ""
1083
  "Afficher la meta description dans les colonnes des articles personnalisés"
1084
 
1085
- #: inc/admin/admin.php:1895
1086
  msgid "Show noindex column in post types"
1087
  msgstr "Afficher la colonne noindex dans les types d'articles"
1088
 
1089
- #: inc/admin/admin.php:1903
1090
  msgid "Show nofollow column in post types"
1091
  msgstr "Afficher la colonne nofollow dans les types d'articles"
1092
 
1093
- #: inc/admin/admin.php:1947
 
 
 
 
1094
  msgid "<p>Customize your titles & metas for homepage</p>"
1095
  msgstr "<p>Personnalisez vos titres et métas pour l'accueil</p>"
1096
 
1097
- #: inc/admin/admin.php:1952
1098
  msgid "<p>Customize your titles & metas for Single Custom Post Types</p>"
1099
  msgstr ""
1100
  "<p>Personnalisez vos titres et métas pour les singles des Types d'article</p>"
1101
 
1102
- #: inc/admin/admin.php:1957
1103
  msgid "<p>Customize your metas for all pages</p>"
1104
  msgstr "<p>Personnalisez vos métas pour toutes les pages</p>"
1105
 
1106
- #: inc/admin/admin.php:1962
1107
  msgid "<p>Customize your metas for all taxonomies archives</p>"
1108
  msgstr "<p>Personnalisez vos métas pour toutes les archives de taxonomies</p>"
1109
 
1110
- #: inc/admin/admin.php:1967
1111
  msgid "<p>Customize your metas for all archives</p>"
1112
  msgstr "<p>Personnalisez vos métas pour les archives</p>"
1113
 
1114
- #: inc/admin/admin.php:1972
1115
  msgid ""
1116
  "To view your sitemap, enable permalinks (not default one), and save settings "
1117
  "to flush them."
@@ -1119,467 +1155,472 @@ msgstr ""
1119
  "Pour voir votre sitemap, activez les permaliens (pas ceux par défaut), et "
1120
  "sauvegardez les paramètres pour les mettre à jour."
1121
 
1122
- #: inc/admin/admin.php:1973
1123
  msgid ""
1124
  "Only the last 1000 items are listed in Sitemaps for performances issues."
1125
  msgstr ""
1126
  "Seuls les 1000 derniers éléments sont répertoriés dans les Sitemaps pour des "
1127
  "raisons de performances."
1128
 
1129
- #: inc/admin/admin.php:1975
1130
  msgid "View your sitemap"
1131
  msgstr "Voir votre sitemap"
1132
 
1133
- #: inc/admin/admin.php:1977
1134
  msgid "Ping Google manually"
1135
  msgstr "Pinger Google manuellement"
1136
 
1137
- #: inc/admin/admin.php:1979
1138
  msgid "Flush permalinks"
1139
  msgstr "Mettre à jour les permaliens"
1140
 
1141
- #: inc/admin/admin.php:1985
1142
  msgid "<p>Create an HTML for your visitors and boost your SEO</p>"
1143
  msgstr ""
1144
  "<p>Créez un plan de site HTML pour vos visiteurs et boostez votre SEO</p>"
1145
 
1146
- #: inc/admin/admin.php:1990
1147
  msgid "<p>Include / Exclude Post Types</p>"
1148
  msgstr "<p>Inclure / Exclure les Types d'article</p>"
1149
 
1150
- #: inc/admin/admin.php:1995
1151
  msgid "<p>Include / Exclude Taxonomies</p>"
1152
  msgstr "<p>Inclure / Exclure les Taxonomies</p>"
1153
 
1154
- #: inc/admin/admin.php:2000
1155
  msgid "<p>Configure Google Knowledge Graph</p>"
1156
  msgstr "<p>Configurer Google Knowledge Graph</p>"
1157
 
1158
- #: inc/admin/admin.php:2005
1159
  msgid "<p>Link your site with your social accounts</p>"
1160
  msgstr "<p>Lier votre site à vos comptes sociaux</p>"
1161
 
1162
- #: inc/admin/admin.php:2010
1163
  msgid "<p>Manage Open Graph datas</p>"
1164
  msgstr "<p>Gérer l'Open Graph datas</p>"
1165
 
1166
- #: inc/admin/admin.php:2015
1167
  msgid "<p>Manage your Twitter card</p>"
1168
  msgstr "<p>Gérer votre Twitter card</p>"
1169
 
1170
- #: inc/admin/admin.php:2020
1171
  msgid "<p>Link your Google Analytics to your website</p>"
1172
  msgstr "<p>Lier Google Analytics à votre site</p>"
1173
 
1174
- #: inc/admin/admin.php:2025
1175
  msgid "<p>Configure your Google Analytics tracking code</p>"
1176
  msgstr "<p>Configurer votre code de suivi Google Analytics</p>"
1177
 
1178
- #: inc/admin/admin.php:2030
1179
  msgid "<p>Configure your Google Analytics custom dimensions"
1180
  msgstr "<p>Configurer vos dimensions personnalisées pour Google Analytics"
1181
 
1182
- #: inc/admin/admin.php:2036
1183
  msgid "<p>Advanced SEO options</p>"
1184
  msgstr "<p>Options avancées de SEO</p>"
1185
 
1186
- #: inc/admin/admin.php:2041
1187
  msgid "<p>Customize SEOPress to fit your needs</p>"
1188
  msgstr "<p>Personnaliser SEOPress pour correspondre à vos besoins</p>"
1189
 
1190
- #: inc/admin/admin.php:2052
1191
  msgid "My awesome website"
1192
  msgstr "Mon super site"
1193
 
1194
- #: inc/admin/admin.php:2057 inc/admin/admin.php:2068 inc/admin/admin.php:2104
1195
- #: inc/admin/admin.php:2219 inc/admin/admin.php:2250 inc/admin/admin.php:2327
1196
- #: inc/admin/admin.php:2400 inc/admin/admin.php:2450 inc/admin/admin.php:2499
1197
- #: inc/admin/admin.php:2529
1198
  msgid "More tags"
1199
  msgstr "Plus de balises"
1200
 
1201
- #: inc/admin/admin.php:2063
1202
  msgid "This is a cool website about Wookiees"
1203
  msgstr "Un site cool sur les Wookies"
1204
 
1205
- #: inc/admin/admin.php:2081 inc/admin/admin.php:2190 inc/admin/admin.php:2304
1206
- #: inc/admin/admin.php:2389 inc/admin/admin.php:2439 inc/admin/admin.php:2488
1207
- #: inc/admin/admin.php:2520
1208
  msgid "Title template"
1209
  msgstr "Template de Titre"
1210
 
1211
- #: inc/admin/admin.php:2100
1212
  msgid "Post Title"
1213
  msgstr "Titre du post"
1214
 
1215
- #: inc/admin/admin.php:2111 inc/admin/admin.php:2226 inc/admin/admin.php:2334
1216
- #: inc/admin/admin.php:2406 inc/admin/admin.php:2456 inc/admin/admin.php:2505
1217
- #: inc/admin/admin.php:2535
1218
  msgid "Meta description template"
1219
  msgstr "Template de Méta Description"
1220
 
1221
- #: inc/admin/admin.php:2170
1222
  msgid "Display date in Google search results?"
1223
  msgstr "Afficher la date dans les résultats de recherche Google ?"
1224
 
1225
- #: inc/admin/admin.php:2210
1226
  msgid "Category Title"
1227
  msgstr "Titre de catégorie"
1228
 
1229
- #: inc/admin/admin.php:2212
1230
  msgid "Tag Title"
1231
  msgstr "Titre de l'étiquette"
1232
 
1233
- #: inc/admin/admin.php:2214
1234
  msgid "Term Title"
1235
  msgstr "Titre du terme"
1236
 
1237
- #: inc/admin/admin.php:2243
1238
  msgid "Category Description"
1239
  msgstr "Description de la catégorie"
1240
 
1241
- #: inc/admin/admin.php:2245
1242
  msgid "Tag Description"
1243
  msgstr "Description du tag"
1244
 
1245
- #: inc/admin/admin.php:2247
1246
  msgid "Term Description"
1247
  msgstr "Description du terme"
1248
 
1249
- #: inc/admin/admin.php:2323
1250
  msgid "Post Type Archive Name"
1251
  msgstr "Nom d'archive du Type d'article"
1252
 
1253
- #: inc/admin/admin.php:2387
1254
  msgid "Author archives"
1255
  msgstr "Archives de l'auteur"
1256
 
1257
- #: inc/admin/admin.php:2437
1258
  msgid "Date archives"
1259
  msgstr "Archives par date"
1260
 
1261
- #: inc/admin/admin.php:2448
1262
  msgid "Archive date"
1263
  msgstr "Date d'archive"
1264
 
1265
- #: inc/admin/admin.php:2486
1266
  msgid "Search archives"
1267
  msgstr "Archives de recherche"
1268
 
1269
- #: inc/admin/admin.php:2497
1270
  msgid "Search Keywords"
1271
  msgstr "Mots clés recherchés"
1272
 
1273
- #: inc/admin/admin.php:2518
1274
  msgid "404 archives"
1275
  msgstr "Page 404"
1276
 
1277
- #: inc/admin/admin.php:2731 inc/admin/admin.php:2771
1278
  msgid "Include"
1279
  msgstr "Inclure"
1280
 
1281
- #: inc/admin/admin.php:2784
1282
  msgid "eg: 2, 28, 68"
1283
  msgstr "ex: 2, 28, 68"
1284
 
1285
- #: inc/admin/admin.php:2792
1286
  msgid "eg: 13, 8, 38"
1287
  msgstr "ex: 13, 8, 38"
1288
 
1289
- #: inc/admin/admin.php:2806
1290
  msgid "Person"
1291
  msgstr "Personne"
1292
 
1293
- #: inc/admin/admin.php:2809
1294
  msgid "Organization"
1295
  msgstr "Organisation"
1296
 
1297
- #: inc/admin/admin.php:2820
1298
  msgid "eg: Apple"
1299
  msgstr "ex: Apple"
1300
 
1301
- #: inc/admin/admin.php:2831
1302
  msgid "Select your logo"
1303
  msgstr "Sélectionnez votre logo"
1304
 
1305
- #: inc/admin/admin.php:2857
1306
  msgid "eg: +33123456789 (internationalized version required)"
1307
  msgstr "par exemple: +33123456789 (version internationalisée nécessaire)"
1308
 
1309
- #: inc/admin/admin.php:2872
1310
  msgid "Customer support"
1311
  msgstr "Support client"
1312
 
1313
- #: inc/admin/admin.php:2875
1314
  msgid "Technical support"
1315
  msgstr "Support technique"
1316
 
1317
- #: inc/admin/admin.php:2878
1318
  msgid "Billing support"
1319
  msgstr "Support facturation"
1320
 
1321
- #: inc/admin/admin.php:2881
1322
  msgid "Bill payment"
1323
  msgstr "Paiement facturation"
1324
 
1325
- #: inc/admin/admin.php:2884
1326
  msgid "Sales"
1327
  msgstr "Ventes"
1328
 
1329
- #: inc/admin/admin.php:2887
1330
  msgid "Credit card support"
1331
  msgstr "Support carte de crédit"
1332
 
1333
- #: inc/admin/admin.php:2890
1334
  msgid "Emergency"
1335
  msgstr "Urgence"
1336
 
1337
- #: inc/admin/admin.php:2893
1338
  msgid "Baggage tracking"
1339
  msgstr "Suivi des bagages"
1340
 
1341
- #: inc/admin/admin.php:2896
1342
  msgid "Roadside assistance"
1343
  msgstr "Assistance routière"
1344
 
1345
- #: inc/admin/admin.php:2899
1346
  msgid "Package tracking"
1347
  msgstr "Suivi des colis"
1348
 
1349
- #: inc/admin/admin.php:2916
1350
  msgid "Toll Free"
1351
  msgstr "Gratuit"
1352
 
1353
- #: inc/admin/admin.php:2919
1354
  msgid "Hearing impaired supported"
1355
  msgstr "Support pour les personnes souffrant d'une déficience auditive"
1356
 
1357
- #: inc/admin/admin.php:2930
1358
  msgid "eg: https://www.facebook.com/your-page"
1359
  msgstr "ex: https://www.facebook.com/your-page"
1360
 
1361
- #: inc/admin/admin.php:2940
1362
  msgid "eg: @wpcloudy"
1363
  msgstr "ex: @wpcloudy"
1364
 
1365
- #: inc/admin/admin.php:2950
1366
  msgid "eg: https://plus.google.com/+BenjaminDenis"
1367
  msgstr "ex: https://plus.google.com/+BenjaminDenis"
1368
 
1369
- #: inc/admin/admin.php:2960
1370
  msgid "eg: https://pinterest.com/wpbuy/"
1371
  msgstr "ex: https://pinterest.com/wpbuy/"
1372
 
1373
- #: inc/admin/admin.php:2970
1374
  msgid "eg: https://www.instagram.com/your-name/"
1375
  msgstr "ex: https://www.instagram.com/your-name/"
1376
 
1377
- #: inc/admin/admin.php:2980
1378
  msgid "eg: https://www.youtube.com/channel/UCpQzarWu55UzCIH7-OW6pwA"
1379
  msgstr "ex: https://www.youtube.com/channel/UCpQzarWu55UzCIH7-OW6pwA"
1380
 
1381
- #: inc/admin/admin.php:2990
1382
  msgid "eg: https://www.linkedin.com/in/benjamin-denis-70672b3b"
1383
  msgstr "ex: https://www.linkedin.com/in/benjamin-denis-70672b3b"
1384
 
1385
- #: inc/admin/admin.php:3000
1386
  msgid "eg: https://myspace.com/your-page"
1387
  msgstr "ex: https://myspace.com/your-page"
1388
 
1389
- #: inc/admin/admin.php:3010
1390
  msgid "eg: https://soundcloud.com/michaelmccannmusic"
1391
  msgstr "ex: https://soundcloud.com/michaelmccannmusic"
1392
 
1393
- #: inc/admin/admin.php:3020
1394
  msgid "eg: https://your-site.tumblr.com"
1395
  msgstr "ex: https://your-site.tumblr.com"
1396
 
1397
- #: inc/admin/admin.php:3037
1398
  msgid "Enable OG data"
1399
  msgstr "Activer les données OG"
1400
 
1401
- #: inc/admin/admin.php:3089
1402
  msgid "Enable Twitter card"
1403
  msgstr "Activer Twitter Card"
1404
 
1405
- #: inc/admin/admin.php:3120
1406
  msgid "Default"
1407
  msgstr "Défaut"
1408
 
1409
- #: inc/admin/admin.php:3123
1410
  msgid "Large"
1411
  msgstr "Grande"
1412
 
1413
- #: inc/admin/admin.php:3151
1414
  msgid "Enter your Tracking ID (UA-XXXX-XX)"
1415
  msgstr "Entrer votre ID de tracking (UA-XXXX-XX)"
1416
 
1417
- #: inc/admin/admin.php:3254
1418
  msgid "Enter yours domains"
1419
  msgstr "Saisissez vos domaines"
1420
 
1421
- #: inc/admin/admin.php:3273 inc/admin/admin.php:3350 inc/admin/admin.php:3427
1422
- #: inc/admin/admin.php:3504 inc/admin/admin.php:3581
1423
  msgid "Custom Dimension #1"
1424
  msgstr "Dimension personnalisée #1"
1425
 
1426
- #: inc/admin/admin.php:3276 inc/admin/admin.php:3353 inc/admin/admin.php:3430
1427
- #: inc/admin/admin.php:3507 inc/admin/admin.php:3584
1428
  msgid "Custom Dimension #2"
1429
  msgstr "Dimension personnalisée #2"
1430
 
1431
- #: inc/admin/admin.php:3279 inc/admin/admin.php:3356 inc/admin/admin.php:3433
1432
- #: inc/admin/admin.php:3510 inc/admin/admin.php:3587
1433
  msgid "Custom Dimension #3"
1434
  msgstr "Dimension personnalisée #3"
1435
 
1436
- #: inc/admin/admin.php:3282 inc/admin/admin.php:3359 inc/admin/admin.php:3436
1437
- #: inc/admin/admin.php:3513 inc/admin/admin.php:3590
1438
  msgid "Custom Dimension #4"
1439
  msgstr "Dimension personnalisée #4"
1440
 
1441
- #: inc/admin/admin.php:3285 inc/admin/admin.php:3362 inc/admin/admin.php:3439
1442
- #: inc/admin/admin.php:3516 inc/admin/admin.php:3593
1443
  msgid "Custom Dimension #5"
1444
  msgstr "Dimension personnalisée #5"
1445
 
1446
- #: inc/admin/admin.php:3288 inc/admin/admin.php:3365 inc/admin/admin.php:3442
1447
- #: inc/admin/admin.php:3519 inc/admin/admin.php:3596
1448
  msgid "Custom Dimension #6"
1449
  msgstr "Dimension personnalisée #6"
1450
 
1451
- #: inc/admin/admin.php:3291 inc/admin/admin.php:3368 inc/admin/admin.php:3445
1452
- #: inc/admin/admin.php:3522 inc/admin/admin.php:3599
1453
  msgid "Custom Dimension #7"
1454
  msgstr "Dimension personnalisée #7"
1455
 
1456
- #: inc/admin/admin.php:3294 inc/admin/admin.php:3371 inc/admin/admin.php:3448
1457
- #: inc/admin/admin.php:3525 inc/admin/admin.php:3602
1458
  msgid "Custom Dimension #8"
1459
  msgstr "Dimension personnalisée #8"
1460
 
1461
- #: inc/admin/admin.php:3297 inc/admin/admin.php:3374 inc/admin/admin.php:3451
1462
- #: inc/admin/admin.php:3528 inc/admin/admin.php:3605
1463
  msgid "Custom Dimension #9"
1464
  msgstr "Dimension personnalisée #9"
1465
 
1466
- #: inc/admin/admin.php:3300 inc/admin/admin.php:3377 inc/admin/admin.php:3454
1467
- #: inc/admin/admin.php:3531 inc/admin/admin.php:3608
1468
  msgid "Custom Dimension #10"
1469
  msgstr "Dimension personnalisée #10"
1470
 
1471
- #: inc/admin/admin.php:3303 inc/admin/admin.php:3380 inc/admin/admin.php:3457
1472
- #: inc/admin/admin.php:3534 inc/admin/admin.php:3611
1473
  msgid "Custom Dimension #11"
1474
  msgstr "Dimension personnalisée #11"
1475
 
1476
- #: inc/admin/admin.php:3306 inc/admin/admin.php:3383 inc/admin/admin.php:3460
1477
- #: inc/admin/admin.php:3537 inc/admin/admin.php:3614
1478
  msgid "Custom Dimension #12"
1479
  msgstr "Dimension personnalisée #12"
1480
 
1481
- #: inc/admin/admin.php:3309 inc/admin/admin.php:3386 inc/admin/admin.php:3463
1482
- #: inc/admin/admin.php:3540 inc/admin/admin.php:3617
1483
  msgid "Custom Dimension #13"
1484
  msgstr "Dimension personnalisée #13"
1485
 
1486
- #: inc/admin/admin.php:3312 inc/admin/admin.php:3389 inc/admin/admin.php:3466
1487
- #: inc/admin/admin.php:3543 inc/admin/admin.php:3620
1488
  msgid "Custom Dimension #14"
1489
  msgstr "Dimension personnalisée #14"
1490
 
1491
- #: inc/admin/admin.php:3315 inc/admin/admin.php:3392 inc/admin/admin.php:3469
1492
- #: inc/admin/admin.php:3546 inc/admin/admin.php:3623
1493
  msgid "Custom Dimension #15"
1494
  msgstr "Dimension personnalisée #15"
1495
 
1496
- #: inc/admin/admin.php:3318 inc/admin/admin.php:3395 inc/admin/admin.php:3472
1497
- #: inc/admin/admin.php:3549 inc/admin/admin.php:3626
1498
  msgid "Custom Dimension #16"
1499
  msgstr "Dimension personnalisée #16"
1500
 
1501
- #: inc/admin/admin.php:3321 inc/admin/admin.php:3398 inc/admin/admin.php:3475
1502
- #: inc/admin/admin.php:3552 inc/admin/admin.php:3629
1503
  msgid "Custom Dimension #17"
1504
  msgstr "Dimension personnalisée #17"
1505
 
1506
- #: inc/admin/admin.php:3324 inc/admin/admin.php:3401 inc/admin/admin.php:3478
1507
- #: inc/admin/admin.php:3555 inc/admin/admin.php:3632
1508
  msgid "Custom Dimension #18"
1509
  msgstr "Dimension personnalisée #18"
1510
 
1511
- #: inc/admin/admin.php:3327 inc/admin/admin.php:3404 inc/admin/admin.php:3481
1512
- #: inc/admin/admin.php:3558 inc/admin/admin.php:3635
1513
  msgid "Custom Dimension #19"
1514
  msgstr "Dimension personnalisée #19"
1515
 
1516
- #: inc/admin/admin.php:3330 inc/admin/admin.php:3407 inc/admin/admin.php:3484
1517
- #: inc/admin/admin.php:3561 inc/admin/admin.php:3638
1518
  msgid "Custom Dimension #20"
1519
  msgstr "Dimension personnalisée #20"
1520
 
1521
- #: inc/admin/admin.php:3656
1522
  msgid "Redirect attachment pages to post parent (or homepage if none)"
1523
  msgstr ""
1524
  "Rediriger les pages de pièces jointes vers le post parent (si aucun, "
1525
  "rediriger vers page d'accueil)"
1526
 
1527
- #: inc/admin/admin.php:3673
1528
  msgid "Remove stop words in permalinks"
1529
  msgstr "Supprimer les mots clés inutiles des permaliens"
1530
 
1531
- #: inc/admin/admin.php:3673
1532
  msgid ""
1533
  "Setting based on site language. Supported language EN, FR, ES, DE, IT, PT."
1534
  msgstr ""
1535
  "Réglage basé sur la langue du site. Langue prise en charge EN, FR, ES, DE, "
1536
  "IT, PT."
1537
 
1538
- #: inc/admin/admin.php:3690
1539
  msgid "Remove /category/ in your permalinks"
1540
  msgstr "Supprimer /category/ dans vos permaliens"
1541
 
1542
- #: inc/admin/admin.php:3700
1543
  msgid "Enter Google meta value site verification"
1544
  msgstr "Entrer la meta de vérification de site Google"
1545
 
1546
- #: inc/admin/admin.php:3710
1547
  msgid "Enter Bing meta value site verification"
1548
  msgstr "Entrer la meta de vérification de site Bing"
1549
 
1550
- #: inc/admin/admin.php:3720
1551
  msgid "Enter Pinterest meta value site verification"
1552
  msgstr "Entrer la meta de vérification de site Pinterest"
1553
 
1554
- #: inc/admin/admin.php:3730
1555
  msgid "Enter Yandex meta value site verification"
1556
  msgstr "Entrer la meta de vérification de site Yandex"
1557
 
1558
- #: inc/admin/admin.php:3747
1559
  msgid "Remove SEOPress from Admin Bar in backend"
1560
  msgstr "Supprimer SEOPress de la barre d'outils dans l'administration"
1561
 
1562
- #: inc/admin/admin.php:3764
1563
  msgid "Hide Notifications Center in SEOPress Dashboard page"
1564
  msgstr "Masquer le Centre de Notifications du Tableau de Bord de SEOPress"
1565
 
1566
- #: inc/admin/admin.php:3781
1567
  msgid "Add title column"
1568
  msgstr "Ajouter la colonne Titre"
1569
 
1570
- #: inc/admin/admin.php:3798
1571
  msgid "Add meta description column"
1572
  msgstr "Ajouter la colonne meta description"
1573
 
1574
- #: inc/admin/admin.php:3815
1575
  msgid "Display noindex status"
1576
  msgstr "Affiche le statut noindex"
1577
 
1578
- #: inc/admin/admin.php:3832
1579
  msgid "Display nofollow status"
1580
  msgstr "Affiche le statut nofollow"
1581
 
 
 
 
 
1582
  #: inc/functions/options-advanced-admin.php:77
 
1583
  msgid "Title tag"
1584
  msgstr "Balise Titre"
1585
 
@@ -1595,6 +1636,22 @@ msgstr "Noindex ?"
1595
  msgid "Nofollow?"
1596
  msgstr "Nofollow ?"
1597
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1598
  #: inc/functions/options-import-export.php:48
1599
  msgid "Please upload a valid .json file"
1600
  msgstr "Veuillez uploader un fichier JSON valide"
@@ -1603,15 +1660,15 @@ msgstr "Veuillez uploader un fichier JSON valide"
1603
  msgid "Please upload a file to import"
1604
  msgstr "Uploader un fichier à importer SVP"
1605
 
1606
- #: seopress.php:237
1607
  msgid "Settings"
1608
  msgstr "Paramètres"
1609
 
1610
- #: seopress.php:238
1611
  msgid "SEOPress.org"
1612
  msgstr "SEOPress.org"
1613
 
1614
- #: seopress.php:240
1615
  msgid "GO PRO!"
1616
  msgstr "PASSEZ PRO !"
1617
 
2
  msgstr ""
3
  "Project-Id-Version: SEOPress\n"
4
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/wp-cloudy\n"
5
+ "POT-Creation-Date: 2017-01-31 19:22+0100\n"
6
+ "PO-Revision-Date: 2017-01-31 19:25+0100\n"
7
  "Last-Translator: \n"
8
  "Language-Team: Benjamin DENIS <contact@seopress.org>\n"
9
  "Language: fr_FR\n"
34
  msgstr "Support"
35
 
36
  #: inc/admin/admin-metaboxes.php:11 inc/admin/admin-metaboxes.php:13
37
+ #: inc/admin/adminbar.php:16 inc/functions/options-advanced-admin.php:461
38
  msgid "SEO"
39
  msgstr "SEO"
40
 
41
+ #: inc/admin/admin-metaboxes.php:108
42
  msgid "Titles settings"
43
  msgstr "Paramètres de titres"
44
 
45
+ #: inc/admin/admin-metaboxes.php:109 inc/admin/admin.php:176
46
+ #: inc/admin/admin.php:242 inc/admin/admin.php:418 inc/admin/admin.php:887
47
  #: inc/admin/adminbar.php:46
48
  msgid "Advanced"
49
  msgstr "Avancé"
50
 
51
+ #: inc/admin/admin-metaboxes.php:110 inc/admin/admin.php:174
52
+ #: inc/admin/admin.php:829 inc/admin/adminbar.php:34
53
  msgid "Social"
54
  msgstr "Social"
55
 
56
+ #: inc/admin/admin-metaboxes.php:112 inc/admin/admin.php:1097
57
  msgid "Redirections"
58
  msgstr "Redirections"
59
 
60
+ #: inc/admin/admin-metaboxes.php:115
61
  msgid "Google News"
62
  msgstr "Google News"
63
 
64
+ #: inc/admin/admin-metaboxes.php:124
65
  msgid "Title"
66
  msgstr "Titre"
67
 
68
+ #: inc/admin/admin-metaboxes.php:125
69
  msgid "Enter your title"
70
  msgstr "Entrez votre titre"
71
 
72
+ #: inc/admin/admin-metaboxes.php:129 inc/admin/admin-metaboxes.php:137
73
  msgid "(maximum recommended limit)"
74
  msgstr "(limite maximale recommandée)"
75
 
76
+ #: inc/admin/admin-metaboxes.php:132 inc/admin/admin.php:486
77
+ #: inc/admin/admin.php:1228 inc/functions/options-advanced-admin.php:471
78
  msgid "Meta description"
79
  msgstr "Meta description"
80
 
81
+ #: inc/admin/admin-metaboxes.php:133
82
  msgid "Enter your meta description"
83
  msgstr "Entrez votre méta description"
84
 
85
+ #: inc/admin/admin-metaboxes.php:142
86
  msgid "Google Snippet Preview"
87
  msgstr "Aperçu Google Snippet"
88
 
89
+ #: inc/admin/admin-metaboxes.php:143
90
  msgid "This is what your page will look like in Google search results"
91
  msgstr ""
92
  "Voilà à quoi ressemblera votre page dans les résultats de recherche Google"
93
 
94
+ #: inc/admin/admin-metaboxes.php:159 inc/admin/admin.php:1386
95
+ #: inc/admin/admin.php:2219 inc/admin/admin.php:2352 inc/admin/admin.php:2442
96
+ #: inc/admin/admin.php:2515 inc/admin/admin.php:2564 inc/admin/admin.php:2644
97
  msgid "noindex"
98
  msgstr "noindex"
99
 
100
+ #: inc/admin/admin-metaboxes.php:160 inc/admin/admin.php:2646
101
  msgid ""
102
  "Do not display all pages of the site in Google search results and do not "
103
  "display \"Cached\" links in search results."
105
  "Ne pas afficher toutes les pages du site dans les résultats de recherche "
106
  "<br>et ne pas afficher de lien \"En cache\" dans les résultats de recherche."
107
 
108
+ #: inc/admin/admin-metaboxes.php:165 inc/admin/admin.php:1394
109
+ #: inc/admin/admin.php:2238 inc/admin/admin.php:2371 inc/admin/admin.php:2461
110
+ #: inc/admin/admin.php:2663
111
  msgid "nofollow"
112
  msgstr "nofollow"
113
 
114
+ #: inc/admin/admin-metaboxes.php:166 inc/admin/admin.php:2665
115
  msgid "Do not follow links for all pages."
116
  msgstr "Ne pas suivre les liens de tout le site."
117
 
118
+ #: inc/admin/admin-metaboxes.php:171 inc/admin/admin.php:1402
119
+ #: inc/admin/admin.php:2682
120
  msgid "noodp"
121
  msgstr "noodp"
122
 
123
+ #: inc/admin/admin-metaboxes.php:172 inc/admin/admin.php:2684
124
  msgid ""
125
  "Do not use Open Directory project metadata for titles or excerpts for all "
126
  "pages."
128
  "Ne pas utiliser les métadonnées de l'Open Directory project pour les titres "
129
  "ou les extraits de tout le site."
130
 
131
+ #: inc/admin/admin-metaboxes.php:177 inc/admin/admin.php:1410
132
+ #: inc/admin/admin.php:2701
133
  msgid "noimageindex"
134
  msgstr "noimageindex"
135
 
136
+ #: inc/admin/admin-metaboxes.php:178 inc/admin/admin.php:2703
137
  msgid "Do not index images from the entire site."
138
  msgstr "Ne pas indexer les images de tout le site."
139
 
140
+ #: inc/admin/admin-metaboxes.php:183 inc/admin/admin.php:1418
141
+ #: inc/admin/admin.php:2720
142
  msgid "noarchive"
143
  msgstr "noarchive"
144
 
145
+ #: inc/admin/admin-metaboxes.php:184 inc/admin/admin.php:2722
146
  msgid "Do not display a \"Cached\" link in the Google search results."
147
  msgstr "Ne pas afficher de lien \"En cache\" dans les résultats de recherche."
148
 
149
+ #: inc/admin/admin-metaboxes.php:189 inc/admin/admin.php:1426
150
+ #: inc/admin/admin.php:2739
151
  msgid "nosnippet"
152
  msgstr "nosnippet"
153
 
154
+ #: inc/admin/admin-metaboxes.php:190 inc/admin/admin.php:2741
155
  msgid ""
156
  "Do not display a description in the Google search results for all pages."
157
  msgstr ""
158
  "Ne pas afficher de description dans les résultats de recherche pour toutes "
159
  "les pages du site."
160
 
161
+ #: inc/admin/admin-metaboxes.php:193 inc/admin/admin.php:490
162
  msgid "Canonical URL"
163
  msgstr "URL Canonique"
164
 
165
+ #: inc/admin/admin-metaboxes.php:194
166
  msgid "Default value: "
167
  msgstr "Valeur par défaut: "
168
 
169
+ #: inc/admin/admin-metaboxes.php:200
170
  msgid "Facebook Title"
171
  msgstr "Titre Facebook"
172
 
173
+ #: inc/admin/admin-metaboxes.php:201
174
  msgid "Enter your Facebook title"
175
  msgstr "Entrez votre titre Facebook"
176
 
177
+ #: inc/admin/admin-metaboxes.php:204
178
  msgid "Facebook description"
179
  msgstr "Description Facebook"
180
 
181
+ #: inc/admin/admin-metaboxes.php:205
182
  msgid "Enter your Facebook description"
183
  msgstr "Entrez votre description Facebook"
184
 
185
+ #: inc/admin/admin-metaboxes.php:208
186
  msgid "Facebook Thumbnail"
187
  msgstr "Miniature Facebook"
188
 
189
+ #: inc/admin/admin-metaboxes.php:209
190
  msgid "Minimum size: 200x200px"
191
  msgstr "Taille minimum : 200x200px"
192
 
193
+ #: inc/admin/admin-metaboxes.php:210 inc/admin/admin-metaboxes.php:226
194
+ #: inc/admin/admin.php:3137 inc/admin/admin.php:3189
195
  msgid "Select your default thumbnail"
196
  msgstr "Sélectionnez votre miniature par défaut"
197
 
198
+ #: inc/admin/admin-metaboxes.php:211 inc/admin/admin-metaboxes.php:227
199
+ #: inc/admin/admin.php:2920 inc/admin/admin.php:3139 inc/admin/admin.php:3191
200
  msgid "Upload an Image"
201
  msgstr "Envoyer une image"
202
 
203
+ #: inc/admin/admin-metaboxes.php:216
204
  msgid "Twitter Title"
205
  msgstr "Titre Twitter"
206
 
207
+ #: inc/admin/admin-metaboxes.php:217
208
  msgid "Enter your Twitter title"
209
  msgstr "Entrez votre titre Twitter"
210
 
211
+ #: inc/admin/admin-metaboxes.php:220
212
  msgid "Twitter description"
213
  msgstr "Description Twitter"
214
 
215
+ #: inc/admin/admin-metaboxes.php:221
216
  msgid "Enter your Twitter description"
217
  msgstr "Entrez votre description Twitter"
218
 
219
+ #: inc/admin/admin-metaboxes.php:224
220
  msgid "Twitter Thumbnail"
221
  msgstr "Miniature Twitter"
222
 
223
+ #: inc/admin/admin-metaboxes.php:225
224
  msgid "Minimum size: 160x160px"
225
  msgstr "Taille minimum : 160x160px"
226
 
227
+ #: inc/admin/admin-metaboxes.php:236
228
  msgid "Enable redirection?"
229
  msgstr "Activer la redirection ?"
230
 
231
+ #: inc/admin/admin-metaboxes.php:240
232
  msgid "URL redirection"
233
  msgstr "URL de redirection"
234
 
235
+ #: inc/admin/admin-metaboxes.php:242
236
  msgid "301"
237
  msgstr "301"
238
 
239
+ #: inc/admin/admin-metaboxes.php:243
240
  msgid "302"
241
  msgstr "302"
242
 
243
+ #: inc/admin/admin-metaboxes.php:244
244
  msgid "307"
245
  msgstr "307"
246
 
247
+ #: inc/admin/admin-metaboxes.php:246
248
  msgid "Enter your URL"
249
  msgstr "Saisissez votre URL"
250
 
251
+ #: inc/admin/admin-metaboxes.php:249 inc/admin/admin-metaboxes.php:251
252
  msgid "Test your URL"
253
  msgstr "Tester votre URL"
254
 
255
+ #: inc/admin/admin-metaboxes.php:260
256
  msgid "Exclude this post from Google News Sitemap?"
257
  msgstr "Exclure cet article du sitemap Google News ?"
258
 
259
+ #: inc/admin/admin-metaboxes.php:264
260
  msgid "Google News Genres"
261
  msgstr "Genres Google News"
262
 
263
+ #: inc/admin/admin-metaboxes.php:266 inc/admin/admin.php:3357
264
+ #: inc/admin/admin.php:3434 inc/admin/admin.php:3511 inc/admin/admin.php:3588
265
+ #: inc/admin/admin.php:3665
266
  msgid "None"
267
  msgstr "Aucun"
268
 
269
+ #: inc/admin/admin-metaboxes.php:267
270
  msgid "Press Release"
271
  msgstr "Press Release"
272
 
273
+ #: inc/admin/admin-metaboxes.php:268
274
  msgid "Satire"
275
  msgstr "Satire"
276
 
277
+ #: inc/admin/admin-metaboxes.php:269
278
  msgid "Blog"
279
  msgstr "Blog"
280
 
281
+ #: inc/admin/admin-metaboxes.php:270
282
  msgid "OpEd"
283
  msgstr "OpEd"
284
 
285
+ #: inc/admin/admin-metaboxes.php:271
286
  msgid "Opinion"
287
  msgstr "Opinion"
288
 
289
+ #: inc/admin/admin-metaboxes.php:272
290
  msgid "UserGenerated"
291
  msgstr "UserGenerated"
292
 
293
+ #: inc/admin/admin-metaboxes.php:277
294
  msgid "Google News Keywords <em>(max recommended limit: 12)</em>"
295
  msgstr "Mots clés Google News <em>(limite max recommandée: 12)</em>"
296
 
297
+ #: inc/admin/admin-metaboxes.php:278
298
  msgid "Enter your Google News Keywords"
299
  msgstr "Entrez vos mots clés Google News"
300
 
302
  msgid "404 - Page not found"
303
  msgstr "404 - Page non trouvée"
304
 
305
+ #: inc/admin/admin.php:172 inc/admin/adminbar.php:22
306
  msgid "Titles & Metas"
307
  msgstr "Titres et Métas"
308
 
309
+ #: inc/admin/admin.php:173 inc/admin/admin.php:800 inc/admin/adminbar.php:28
310
  msgid "XML / HTML Sitemap"
311
  msgstr "Sitemap XML / HTML"
312
 
313
+ #: inc/admin/admin.php:175 inc/admin/admin.php:858 inc/admin/adminbar.php:40
314
  msgid "Google Analytics"
315
  msgstr "Google Analytics"
316
 
317
+ #: inc/admin/admin.php:177
318
  msgid "Import / Export / Reset settings"
319
  msgstr "Import / Export / Réinitialisation des paramètres"
320
 
321
+ #: inc/admin/admin.php:177 inc/admin/admin.php:1138 inc/admin/adminbar.php:52
322
  msgid "Import / Export / Reset"
323
  msgstr "Importer / Exporter / Réinitialiser"
324
 
325
+ #: inc/admin/admin.php:184
326
  #, php-format
327
  msgid "%%sitetitle%%"
328
  msgstr "%%sitetitle%%"
329
 
330
+ #: inc/admin/admin.php:184 inc/admin/admin.php:2142 inc/admin/admin.php:2189
331
+ #: inc/admin/admin.php:2304 inc/admin/admin.php:2412 inc/admin/admin.php:2486
332
+ #: inc/admin/admin.php:2536 inc/admin/admin.php:2585 inc/admin/admin.php:2615
333
  msgid "Site Title"
334
  msgstr "Titre du Site"
335
 
336
+ #: inc/admin/admin.php:185
337
  #, php-format
338
  msgid "%%tagline%%"
339
  msgstr "%%tagline%%"
340
 
341
+ #: inc/admin/admin.php:185 inc/admin/admin.php:2143 inc/admin/admin.php:2154
342
  msgid "Tagline"
343
  msgstr "Slogan du site"
344
 
345
+ #: inc/admin/admin.php:186
346
  #, php-format
347
  msgid "%%post_title%%"
348
  msgstr "%%post_title%%"
349
 
350
+ #: inc/admin/admin.php:186
351
  msgid "Post Title (post, page, custom post type)"
352
  msgstr "Titre du post (article, page, type d'article personnalisé)"
353
 
354
+ #: inc/admin/admin.php:187
355
  #, php-format
356
  msgid "%%post_excerpt%%"
357
  msgstr "%%post_excerpt%%"
358
 
359
+ #: inc/admin/admin.php:187
360
  msgid "Post excerpt"
361
  msgstr "Extrait du post"
362
 
363
+ #: inc/admin/admin.php:188
364
  #, php-format
365
  msgid "%%post_date%%"
366
  msgstr "%%post_date%%"
367
 
368
+ #: inc/admin/admin.php:188
369
  msgid "Post date"
370
  msgstr "Date du post"
371
 
372
+ #: inc/admin/admin.php:189
373
  #, php-format
374
  msgid "%%post_author%%"
375
  msgstr "%%post_author%%"
376
 
377
+ #: inc/admin/admin.php:189 inc/admin/admin.php:2485
378
  msgid "Post author"
379
  msgstr "Auteur du post"
380
 
381
+ #: inc/admin/admin.php:190
382
  #, php-format
383
  msgid "%%_category_title%%"
384
  msgstr "%%_category_title%%"
385
 
386
+ #: inc/admin/admin.php:190
387
  msgid "Category title"
388
  msgstr "Titre de catégorie"
389
 
390
+ #: inc/admin/admin.php:191
391
  #, php-format
392
  msgid "%%_category_description%%"
393
  msgstr "%%_category_description%%"
394
 
395
+ #: inc/admin/admin.php:191
396
  msgid "Category description"
397
  msgstr "Description de la catégorie"
398
 
399
+ #: inc/admin/admin.php:192
400
  #, php-format
401
  msgid "%%tag_title%%"
402
  msgstr "%%tag_title%%"
403
 
404
+ #: inc/admin/admin.php:192
405
  msgid "Tag title"
406
  msgstr "Titre de l'étiquette"
407
 
408
+ #: inc/admin/admin.php:193
409
  #, php-format
410
  msgid "%%tag_description%%"
411
  msgstr "%%tag_description%%"
412
 
413
+ #: inc/admin/admin.php:193
414
  msgid "Tag description"
415
  msgstr "Description de l'étiquette"
416
 
417
+ #: inc/admin/admin.php:194
418
  #, php-format
419
  msgid "%%term_title%%"
420
  msgstr "%%term_title%%"
421
 
422
+ #: inc/admin/admin.php:194
423
  msgid "Term title"
424
  msgstr "Titre du terme"
425
 
426
+ #: inc/admin/admin.php:195
427
  #, php-format
428
  msgid "%%term_description%%"
429
  msgstr "%%term_description%%"
430
 
431
+ #: inc/admin/admin.php:195
432
  msgid "Term description"
433
  msgstr "Description du terme"
434
 
435
+ #: inc/admin/admin.php:196
436
  #, php-format
437
  msgid "%%search_keywords%%"
438
  msgstr "%%search_keywords%%"
439
 
440
+ #: inc/admin/admin.php:196
441
  msgid "Search keywords"
442
  msgstr "Mots clés de recherche"
443
 
444
+ #: inc/admin/admin.php:197
445
  #, php-format
446
  msgid "%%current_pagination%%"
447
  msgstr "%%current_pagination%%"
448
 
449
+ #: inc/admin/admin.php:197
450
  msgid "Current number page"
451
  msgstr "Numéro de page actuel"
452
 
453
+ #: inc/admin/admin.php:198
454
  #, php-format
455
  msgid "%%cpt_plural%%"
456
  msgstr "%%cpt_plural%%"
457
 
458
+ #: inc/admin/admin.php:198
459
  msgid "Plural Post Type Archive name"
460
  msgstr "Nom pluriel archives type d'article personnalisé"
461
 
462
+ #: inc/admin/admin.php:199
463
  #, php-format
464
  msgid "%%date_archive%%"
465
  msgstr "%%date_archive%%"
466
 
467
+ #: inc/admin/admin.php:199
468
  msgid "Date Archive"
469
  msgstr "Date d'archive"
470
 
471
+ #: inc/admin/admin.php:205
472
  msgid "Templates variables"
473
  msgstr "Modèles de variables"
474
 
475
+ #: inc/admin/admin.php:223
476
  msgid ""
477
  "Discourage search engines from indexing this site is <strong>ON!</strong> "
478
  "None of the following settings will be applied."
480
  "Décourager les moteurs de recherche d’indexer ce site est <strong>actif !</"
481
  "strong> Aucun des paramètres suivants ne s’appliqueront."
482
 
483
+ #: inc/admin/admin.php:224
484
  msgid "Change this settings"
485
  msgstr "Changer ce paramètre"
486
 
487
+ #: inc/admin/admin.php:238
488
  msgid "Home"
489
  msgstr "Accueil"
490
 
491
+ #: inc/admin/admin.php:239
492
  msgid "Single Post Types"
493
  msgstr "Détail Types de contenus"
494
 
495
+ #: inc/admin/admin.php:240
496
  msgid "Archives"
497
  msgstr "Archives"
498
 
499
+ #: inc/admin/admin.php:241 inc/admin/admin.php:284
500
  msgid "Taxonomies"
501
  msgstr "Taxonomies"
502
 
503
+ #: inc/admin/admin.php:282 inc/admin/admin.php:366 inc/admin/admin.php:373
504
  msgid "General"
505
  msgstr "Général"
506
 
507
+ #: inc/admin/admin.php:283
508
  msgid "Post Types"
509
  msgstr "Types de contenus"
510
 
511
+ #: inc/admin/admin.php:285
512
  msgid "HTML Sitemap"
513
  msgstr "Sitemap HTML"
514
 
515
+ #: inc/admin/admin.php:323
516
  msgid "Knowledge Graph"
517
  msgstr "Knowledge Graph"
518
 
519
+ #: inc/admin/admin.php:324
520
  msgid "Your social accounts"
521
  msgstr "Vos comptes sociaux"
522
 
523
+ #: inc/admin/admin.php:325
524
  msgid "Facebook"
525
  msgstr "Facebook"
526
 
527
+ #: inc/admin/admin.php:326
528
  msgid "Twitter"
529
  msgstr "Twitter"
530
 
531
+ #: inc/admin/admin.php:367 inc/admin/admin.php:374
532
  msgid "Tracking"
533
  msgstr "Suivi"
534
 
535
+ #: inc/admin/admin.php:368 inc/admin/admin.php:375
536
  msgid "Custom Dimensions"
537
  msgstr "Dimensions personnalisées"
538
 
539
+ #: inc/admin/admin.php:369
540
+ msgid "Stats in Dashboard"
541
+ msgstr "Stats dans le Tableau de bord"
542
+
543
+ #: inc/admin/admin.php:419
544
  msgid "Appearance"
545
  msgstr "Apparence"
546
 
547
+ #: inc/admin/admin.php:450
548
  msgid "Export Settings"
549
  msgstr "Exporter Paramètres"
550
 
551
+ #: inc/admin/admin.php:452
552
  msgid ""
553
  "Export the plugin settings for this site as a .json file. This allows you to "
554
  "easily import the configuration into another site."
557
  "vous permet d'importer facilement votre configuration dans un autre site "
558
  "WordPress."
559
 
560
+ #: inc/admin/admin.php:457
561
  msgid "Export"
562
  msgstr "Exporter"
563
 
564
+ #: inc/admin/admin.php:464
565
  msgid "Import Settings"
566
  msgstr "Importer Paramètres"
567
 
568
+ #: inc/admin/admin.php:466
569
  msgid ""
570
  "Import the plugin settings from a .json file. This file can be obtained by "
571
  "exporting the settings on another site using the form above."
574
  "être obtenu en exportant les paramètres depuis un autre site en utilisant le "
575
  "formulaire ci-dessus."
576
 
577
+ #: inc/admin/admin.php:474
578
  msgid "Import"
579
  msgstr "Importer"
580
 
581
+ #: inc/admin/admin.php:481
582
  msgid "Import posts metadata from Yoast"
583
  msgstr ""
584
  "Importer les méta données des articles, pages, types d'articles "
585
  "personnalisés depuis Yoast"
586
 
587
+ #: inc/admin/admin.php:483
588
  msgid "By clicking Migrate, we'll import:"
589
  msgstr "En cliquant sur Migrer, vous importerez :"
590
 
591
+ #: inc/admin/admin.php:485
592
  msgid "Title tags"
593
  msgstr "Balises titres"
594
 
595
+ #: inc/admin/admin.php:487
596
  msgid "Facebook Open Graph tags (title, description and image thumbnail)"
597
  msgstr "Balises Facebook Open Graph (titre, description et miniature)"
598
 
599
+ #: inc/admin/admin.php:488
600
  msgid "Twitter tags (title, description and image thumbnail)"
601
  msgstr "Balises Twitter (titre, description et miniature)"
602
 
603
+ #: inc/admin/admin.php:489
604
  msgid "Meta Robots (noindex, nofollow...)"
605
  msgstr "Meta Robots (noindex, nofollow...)"
606
 
607
+ #: inc/admin/admin.php:492
608
  msgid ""
609
  "<strong>WARNING:</strong> Migration will delete all SEOPress posts metadata"
610
  msgstr ""
611
  "<strong>ATTENTION :</strong> La migration supprimera toutes les méta-données "
612
  "de SEOPress"
613
 
614
+ #: inc/admin/admin.php:493
615
  msgid "Migrate now"
616
  msgstr "Migrer maintenant"
617
 
618
+ #: inc/admin/admin.php:500
619
+ msgid "Reset All Notices From Notifications Center"
620
+ msgstr "Réinitialiser toutes les notices du Centre de Notifications"
621
+
622
+ #: inc/admin/admin.php:502
623
+ msgid ""
624
+ "By clicking Reset Notices, you'll see all notices again in notifications "
625
+ "center."
626
+ msgstr ""
627
+ "En cliquant sur Réinitialiser Notices, vous verrez à nouveau les notices "
628
+ "dans le centre de notifications."
629
+
630
+ #: inc/admin/admin.php:507
631
+ msgid "Reset notices"
632
+ msgstr "Réinitialiser Notices"
633
+
634
+ #: inc/admin/admin.php:514
635
  msgid "Reset All Settings"
636
  msgstr "Tout réinitialiser"
637
 
638
+ #: inc/admin/admin.php:516
639
  msgid ""
640
  "<strong>WARNING:</strong> Delete all options related to SEOPress in your "
641
  "database AND set settings to their default values."
643
  "<strong>AVERTISSEMENT:</strong> Supprime toutes les options liées à SEOPress "
644
  "dans la base de données et redéfini ces derniers à leurs valeurs par défaut."
645
 
646
+ #: inc/admin/admin.php:521
647
  msgid "Reset settings"
648
  msgstr "Réinitialiser les paramètres"
649
 
650
+ #: inc/admin/admin.php:558
651
  msgid "Notifications Center"
652
  msgstr "Centre de Notifications"
653
 
654
+ #: inc/admin/admin.php:563
655
  msgid ""
656
  "We notice that you use Yoast SEO plugin. <br>Do you want to migrate all your "
657
  "posts metadata to SEOPress?"
660
  "méta données de vos articles, pages et types d'articles personnalisés vers "
661
  "SEOPress ?"
662
 
663
+ #: inc/admin/admin.php:565
664
  msgid "Migrate!"
665
  msgstr "Migrer !"
666
 
667
+ #: inc/admin/admin.php:586
668
  msgid "Your site doesn't use an SSL certificate!"
669
  msgstr "Votre site n'utilise pas de certificat SSL !"
670
 
671
+ #: inc/admin/admin.php:587
672
  msgid "Learn more"
673
  msgstr "En savoir plus"
674
 
675
+ #: inc/admin/admin.php:588
676
  msgid "Low impact"
677
  msgstr "Impact faible"
678
 
679
+ #: inc/admin/admin.php:590
680
  msgid "Buy an SSL!"
681
  msgstr "Acheter un SSL !"
682
 
683
+ #: inc/admin/admin.php:600
684
  msgid "Your site is not visible to Search Engines!"
685
  msgstr "Votre site n'est pas visible aux moteurs de recherche !"
686
 
687
+ #: inc/admin/admin.php:601 inc/admin/admin.php:611 inc/admin/admin.php:621
688
  msgid "High impact"
689
  msgstr "Impact élevé"
690
 
691
+ #: inc/admin/admin.php:603 inc/admin/admin.php:613 inc/admin/admin.php:623
692
+ #: inc/admin/admin.php:647 inc/admin/admin.php:687 inc/admin/admin.php:759
693
  msgid "Fix this!"
694
  msgstr "Régler !"
695
 
696
+ #: inc/admin/admin.php:610
697
  msgid "Your site title is empty!"
698
  msgstr "Le titre de votre site est vide !"
699
 
700
+ #: inc/admin/admin.php:620
701
  msgid ""
702
  "Your permalinks are not SEO Friendly! Enable pretty permalinks to fix this."
703
  msgstr ""
704
  "Vos permaliens ne sont pas SEO Friendly ! Veuillez activer la réécriture "
705
  "d'URL pour résoudre cela."
706
 
707
+ #: inc/admin/admin.php:644
708
+ msgid "You RSS feed show full text!"
709
+ msgstr "Votre flux RSS affiche le texte complet !"
710
 
711
+ #: inc/admin/admin.php:645 inc/admin/admin.php:685
712
  msgid "Medium impact"
713
  msgstr "Impact modéré"
714
 
715
+ #: inc/admin/admin.php:671
716
+ msgid "Break comments into pages is ON!"
717
+ msgstr "Diviser les commentaires en plusieurs pages est actif !"
718
 
719
+ #: inc/admin/admin.php:672 inc/admin/admin.php:709 inc/admin/admin.php:745
720
  msgid "Huge impact"
721
  msgstr "Impact élevé"
722
 
723
+ #: inc/admin/admin.php:674
724
+ msgid "Disable this!"
725
+ msgstr "Désactiver !"
726
+
727
+ #: inc/admin/admin.php:684
728
+ msgid "You don't have an XML Sitemap!"
729
+ msgstr "Vous n'avez pas de Sitemap XML !"
730
+
731
+ #: inc/admin/admin.php:708
732
+ msgid "Do you have a Google Business page? It's free!"
733
+ msgstr "Avez vous une page Google Business ? C'est gratuit !"
734
+
735
+ #: inc/admin/admin.php:711
736
  msgid "Create your page now!"
737
  msgstr "Créez votre page !"
738
 
739
+ #: inc/admin/admin.php:744
740
  msgid "Add your site to Google. It's free!"
741
  msgstr "Ajoutez votre site à Google. C’est gratuit !"
742
 
743
+ #: inc/admin/admin.php:747
744
  msgid "Add your site to Search Console!"
745
  msgstr "Ajoutez à Search Console !"
746
 
747
+ #: inc/admin/admin.php:757
748
  msgid "You have to enter your licence key to get updates and support"
749
  msgstr ""
750
  "Vous devez entrer votre clé de licence pour obtenir mises à jour et support"
751
 
752
+ #: inc/admin/admin.php:771
753
  msgid "Titles & metas"
754
  msgstr "Titres et Métas"
755
 
756
+ #: inc/admin/admin.php:772
757
  msgid "Manage all your titles & metas"
758
  msgstr "Gérez tous vos titres et métas"
759
 
760
+ #: inc/admin/admin.php:773 inc/admin/admin.php:802 inc/admin/admin.php:831
761
+ #: inc/admin/admin.php:860 inc/admin/admin.php:889 inc/admin/admin.php:918
762
+ #: inc/admin/admin.php:946 inc/admin/admin.php:974 inc/admin/admin.php:1002
763
+ #: inc/admin/admin.php:1031 inc/admin/admin.php:1042 inc/admin/admin.php:1071
764
+ #: inc/admin/admin.php:1099 inc/admin/admin.php:1128 inc/admin/admin.php:1140
765
+ #: inc/admin/admin.php:1152
766
  msgid "Manage"
767
  msgstr "Gérer"
768
 
769
+ #: inc/admin/admin.php:785 inc/admin/admin.php:789 inc/admin/admin.php:814
770
+ #: inc/admin/admin.php:818 inc/admin/admin.php:843 inc/admin/admin.php:847
771
+ #: inc/admin/admin.php:872 inc/admin/admin.php:876 inc/admin/admin.php:901
772
+ #: inc/admin/admin.php:905 inc/admin/admin.php:930 inc/admin/admin.php:934
773
+ #: inc/admin/admin.php:958 inc/admin/admin.php:962 inc/admin/admin.php:986
774
+ #: inc/admin/admin.php:990 inc/admin/admin.php:1014 inc/admin/admin.php:1018
775
+ #: inc/admin/admin.php:1054 inc/admin/admin.php:1058 inc/admin/admin.php:1083
776
+ #: inc/admin/admin.php:1087 inc/admin/admin.php:1111 inc/admin/admin.php:1115
777
  msgid "Click to disable this feature"
778
  msgstr "Cliquez pour désactiver cette fonctionnalité"
779
 
780
+ #: inc/admin/admin.php:786 inc/admin/admin.php:788 inc/admin/admin.php:815
781
+ #: inc/admin/admin.php:817 inc/admin/admin.php:844 inc/admin/admin.php:846
782
+ #: inc/admin/admin.php:873 inc/admin/admin.php:875 inc/admin/admin.php:902
783
+ #: inc/admin/admin.php:904 inc/admin/admin.php:931 inc/admin/admin.php:933
784
+ #: inc/admin/admin.php:959 inc/admin/admin.php:961 inc/admin/admin.php:987
785
+ #: inc/admin/admin.php:989 inc/admin/admin.php:1015 inc/admin/admin.php:1017
786
+ #: inc/admin/admin.php:1055 inc/admin/admin.php:1057 inc/admin/admin.php:1084
787
+ #: inc/admin/admin.php:1086 inc/admin/admin.php:1112 inc/admin/admin.php:1114
788
  msgid "Click to enable this feature"
789
  msgstr "Cliquez pour activer cette fonctionnalité"
790
 
791
+ #: inc/admin/admin.php:801
792
  msgid "Manage your XML / HTML Sitemap"
793
  msgstr "Gérez votre plan de site XML / HTML"
794
 
795
+ #: inc/admin/admin.php:830
796
  msgid "Open Graph, Twitter Card, Google Knowledge Graph and more..."
797
  msgstr "Open Graph, Twitter Card, Google Knowledge Graph et plus..."
798
 
799
+ #: inc/admin/admin.php:859
800
  msgid "Track everything about your visitors with Google Analytics"
801
  msgstr "Suivez tout ce qui concerne vos visiteurs avec Google Analytics"
802
 
803
+ #: inc/admin/admin.php:888
804
  msgid "Advanced SEO options for advanced users!"
805
  msgstr "Options SEO avancées pour utilisateurs avancés !"
806
 
807
+ #: inc/admin/admin.php:916
808
  msgid "WooCommerce"
809
  msgstr "WooCommerce"
810
 
811
+ #: inc/admin/admin.php:917
812
  msgid "Improve WooCommerce SEO"
813
  msgstr "Améliorer le SEO de WooCommerce"
814
 
815
+ #: inc/admin/admin.php:944
816
  msgid "Dublin Core"
817
  msgstr "Dublin Core"
818
 
819
+ #: inc/admin/admin.php:945
820
  msgid "Add Dublin Core meta tags"
821
  msgstr "Ajout des balises Dublin Core"
822
 
823
+ #: inc/admin/admin.php:972
824
  msgid "Structured Data Types"
825
  msgstr "Types de données structurées"
826
 
827
+ #: inc/admin/admin.php:973
828
  msgid ""
829
  "Add data types to your content: articles, courses, recipes, videos, events "
830
  "and products"
832
  "Ajout des types de données à vos contenus : articles, cours, recettes, "
833
  "vidéos, événements et produits"
834
 
835
+ #: inc/admin/admin.php:1000
836
  msgid "Breadcrumbs"
837
  msgstr "Fil d'Ariane"
838
 
839
+ #: inc/admin/admin.php:1001
840
  msgid "Enable Breadcrumbs for your theme and improve your SEO in SERPs"
841
  msgstr ""
842
  "Activer le fil d'Ariane pour votre thème et améliorer votre SEO dans les "
843
  "résultats de recherche "
844
 
845
+ #: inc/admin/admin.php:1029
846
  msgid "Google Page Speed"
847
  msgstr "Google Page Speed"
848
 
849
+ #: inc/admin/admin.php:1030
850
  msgid "Track your website performance to improve SEO with Google Page Speed"
851
  msgstr ""
852
  "Suivez les performances de votre site Web afin d’améliorer le SEO avec "
853
  "Google Page Speed"
854
 
855
+ #: inc/admin/admin.php:1040
856
  msgid "Robots"
857
  msgstr "Robots"
858
 
859
+ #: inc/admin/admin.php:1041
860
  msgid "Edit your robots.txt file"
861
  msgstr "Editer votre fichier robots.txt"
862
 
863
+ #: inc/admin/admin.php:1069
864
  msgid "Google News Sitemap"
865
  msgstr "Google News Sitemap"
866
 
867
+ #: inc/admin/admin.php:1070
868
  msgid "Optimize your site for Google News"
869
  msgstr "Optimisez votre site pour Google Actualités"
870
 
871
+ #: inc/admin/admin.php:1098
872
  msgid "Monitor 404, create 301, 302 and 307 redirections"
873
  msgstr "Surveiller les 404, créer des redirections 301, 302 et 307"
874
 
875
+ #: inc/admin/admin.php:1126
876
  msgid "htaccess"
877
  msgstr "htaccess"
878
 
879
+ #: inc/admin/admin.php:1127
880
  msgid "Edit your htaccess file."
881
  msgstr "Modifier votre fichier htaccess."
882
 
883
+ #: inc/admin/admin.php:1139
884
  msgid "Import / export SEOPress settings from site to site."
885
  msgstr "Importer / Exporter les paramètres d'un site à un autre"
886
 
887
+ #: inc/admin/admin.php:1150
888
  msgid "License"
889
  msgstr "Licence"
890
 
891
+ #: inc/admin/admin.php:1151
892
  msgid "Edit your SEOPress license key."
893
  msgstr "Modifier votre clé de licence SEOPress."
894
 
895
+ #: inc/admin/admin.php:1220
896
  msgid "Site title"
897
  msgstr "Titre du site"
898
 
899
+ #: inc/admin/admin.php:1443 inc/admin/admin.php:2758
900
  msgid "Enable XML Sitemap"
901
  msgstr "Activez le Sitemap XML"
902
 
903
+ #: inc/admin/admin.php:1451 inc/admin/admin.php:2777
904
  msgid "Enable HTML Sitemap"
905
  msgstr "Activez le Sitemap HTML"
906
 
907
+ #: inc/admin/admin.php:1467
908
  msgid "Check to INCLUDE Post Types"
909
  msgstr "Cochez pour INCLURE les Types d'article"
910
 
911
+ #: inc/admin/admin.php:1483
912
  msgid "Check to INCLUDE Taxonomies"
913
  msgstr "Cochez pour INCLURE les Taxonomies"
914
 
915
+ #: inc/admin/admin.php:1499
916
  msgid "Enter a post, page or custom post type ID(s) to display the sitemap"
917
  msgstr ""
918
  "Saisissez un ID d'article, de page ou de type de contenu où afficher le plan "
919
  "de site."
920
 
921
+ #: inc/admin/admin.php:1507
922
  msgid "Exclude some Posts, Pages or Custom Post Types"
923
  msgstr "Exclure certains articles, pages ou types de contenus."
924
 
925
+ #: inc/admin/admin.php:1524
926
  msgid "Person or organization"
927
  msgstr "Personne ou Organisation"
928
 
929
+ #: inc/admin/admin.php:1532
930
  msgid "Your name / organization"
931
  msgstr "Votre nom / organisation"
932
 
933
+ #: inc/admin/admin.php:1540
934
  msgid "Your photo / organization logo"
935
  msgstr "Votre photo / logo"
936
 
937
+ #: inc/admin/admin.php:1548
938
  msgid "Organization Phone number (only for Organization)"
939
  msgstr ""
940
  "Numéro de téléphone de l'organisation (seulement pour les organisations)"
941
 
942
+ #: inc/admin/admin.php:1556
943
  msgid "Contact type (only for Organization)"
944
  msgstr "Type de contact (seulement pour les organisations)"
945
 
946
+ #: inc/admin/admin.php:1564
947
  msgid "Contact option (only for Organization)"
948
  msgstr "Option de contact (seulement pour les organisations)"
949
 
950
+ #: inc/admin/admin.php:1581
951
  msgid "Facebook Page URL"
952
  msgstr "URL de la page Facebook"
953
 
954
+ #: inc/admin/admin.php:1589
955
  msgid "Twitter Username"
956
  msgstr "Compte utilisateur Twitter"
957
 
958
+ #: inc/admin/admin.php:1597
959
  msgid "Google + URL"
960
  msgstr "URL Google +"
961
 
962
+ #: inc/admin/admin.php:1605
963
  msgid "Pinterest URL"
964
  msgstr "URL Pinterest"
965
 
966
+ #: inc/admin/admin.php:1613
967
  msgid "Instagram URL"
968
  msgstr "URL Instagram"
969
 
970
+ #: inc/admin/admin.php:1621
971
  msgid "YouTube URL"
972
  msgstr "URL YouTube"
973
 
974
+ #: inc/admin/admin.php:1629
975
  msgid "LinkedIn URL"
976
  msgstr "URL LinkedIn"
977
 
978
+ #: inc/admin/admin.php:1637
979
  msgid "MySpace URL"
980
  msgstr "URL MySpace"
981
 
982
+ #: inc/admin/admin.php:1645
983
  msgid "Soundcloud URL"
984
  msgstr "URL Soundcloud"
985
 
986
+ #: inc/admin/admin.php:1653
987
  msgid "Tumblr URL"
988
  msgstr "URL Tumblr"
989
 
990
+ #: inc/admin/admin.php:1670
991
  msgid "Enable Open Graph Data"
992
  msgstr "Activez les données Open Graph"
993
 
994
+ #: inc/admin/admin.php:1678
995
  msgid "Select a default image"
996
  msgstr "Sélectionnez une image par défaut"
997
 
998
+ #: inc/admin/admin.php:1686
999
  msgid "Facebook Admin ID"
1000
  msgstr "Facebook Admin ID"
1001
 
1002
+ #: inc/admin/admin.php:1694
1003
  msgid "Facebook App ID"
1004
  msgstr "Facebook App ID"
1005
 
1006
+ #: inc/admin/admin.php:1711
1007
  msgid "Enable Twitter Card"
1008
  msgstr "Activez Twitter Card"
1009
 
1010
+ #: inc/admin/admin.php:1719
1011
  msgid "Default Twitter Image"
1012
  msgstr "Image Twitter par défaut"
1013
 
1014
+ #: inc/admin/admin.php:1727
1015
  msgid "Image size for Twitter Summary card"
1016
  msgstr "Taille d'image pour Twitter Summary Card"
1017
 
1018
+ #: inc/admin/admin.php:1744 inc/admin/admin.php:3228
1019
  msgid "Enable Google Analytics tracking"
1020
  msgstr "Activer le suivi Google Analytics"
1021
 
1022
+ #: inc/admin/admin.php:1752
1023
  msgid "Enter your tracking ID"
1024
  msgstr "Saisissez votre ID de suivi"
1025
 
1026
+ #: inc/admin/admin.php:1760
1027
  msgid "Exclude user roles from tracking"
1028
  msgstr "Exclure des rôles utilisateurs du suivi"
1029
 
1030
+ #: inc/admin/admin.php:1778 inc/admin/admin.php:3280
1031
  msgid "Enable remarketing, demographics and interest reporting"
1032
  msgstr ""
1033
  "Activer le remarketing, les rapports démographiques et centres d'intérêts"
1034
 
1035
+ #: inc/admin/admin.php:1786 inc/admin/admin.php:3297
1036
  msgid "Enable IP Anonymization"
1037
  msgstr "Activer l'anonymisation des IP"
1038
 
1039
+ #: inc/admin/admin.php:1794 inc/admin/admin.php:3314
1040
  msgid "Enhanced Link Attribution"
1041
  msgstr "Améliorer l'attribution des liens"
1042
 
1043
+ #: inc/admin/admin.php:1802 inc/admin/admin.php:3331
1044
  msgid "Enable cross-domain tracking"
1045
  msgstr "Activer le suivi cross-domain"
1046
 
1047
+ #: inc/admin/admin.php:1810
1048
  msgid "Cross domains"
1049
  msgstr "Cross domains"
1050
 
1051
+ #: inc/admin/admin.php:1828
1052
  msgid "Track Authors"
1053
  msgstr "Suivre les Auteurs"
1054
 
1055
+ #: inc/admin/admin.php:1836
1056
  msgid "Track Categories"
1057
  msgstr "Suivre les Catégories"
1058
 
1059
+ #: inc/admin/admin.php:1844
1060
  msgid "Track Tags"
1061
  msgstr "Suivre les Etiquettes"
1062
 
1063
+ #: inc/admin/admin.php:1852
1064
  msgid "Track Post Types"
1065
  msgstr "Suivre les Types d'articles personnalisés"
1066
 
1067
+ #: inc/admin/admin.php:1860
1068
  msgid "Track Logged In Users"
1069
  msgstr "Suivre les utilisateurs connectés"
1070
 
1071
+ #: inc/admin/admin.php:1877
1072
  msgid "Redirect attachment pages to post parent"
1073
  msgstr ""
1074
  "Rediriger les pages de type pièces jointes vers la page parent (attachment)"
1075
 
1076
+ #: inc/admin/admin.php:1885
1077
  msgid "Remove stop words from URL"
1078
  msgstr "Supprimer les mots inutiles des URL"
1079
 
1080
+ #: inc/admin/admin.php:1893
1081
  msgid "Remove /category/ in URL"
1082
  msgstr "Supprimer /category/ dans les URLs"
1083
 
1084
+ #: inc/admin/admin.php:1901
1085
  msgid "Google site verification"
1086
  msgstr "Vérification de site Google"
1087
 
1088
+ #: inc/admin/admin.php:1909
1089
  msgid "Bing site verification"
1090
  msgstr "Vérification de site Bing"
1091
 
1092
+ #: inc/admin/admin.php:1917
1093
  msgid "Pinterest site verification"
1094
  msgstr "Vérification de site Pinterest :"
1095
 
1096
+ #: inc/admin/admin.php:1925
1097
  msgid "Yandex site verification"
1098
  msgstr "Vérification de site Yandex"
1099
 
1100
+ #: inc/admin/admin.php:1942
1101
  msgid "SEOPress in admin bar"
1102
  msgstr "SEOPress dans la barre d’admin"
1103
 
1104
+ #: inc/admin/admin.php:1950
1105
  msgid "Hide SEOPress Notifications Center"
1106
  msgstr "Cacher le Centre de Notifications SEOPress"
1107
 
1108
+ #: inc/admin/admin.php:1958
1109
  msgid "Show Title tag column in post types"
1110
  msgstr "Afficher la balise Titre dans les colonnes des articles personnalisés"
1111
 
1112
+ #: inc/admin/admin.php:1966
1113
  msgid "Show Meta description column in post types"
1114
  msgstr ""
1115
  "Afficher la meta description dans les colonnes des articles personnalisés"
1116
 
1117
+ #: inc/admin/admin.php:1974
1118
  msgid "Show noindex column in post types"
1119
  msgstr "Afficher la colonne noindex dans les types d'articles"
1120
 
1121
+ #: inc/admin/admin.php:1982
1122
  msgid "Show nofollow column in post types"
1123
  msgstr "Afficher la colonne nofollow dans les types d'articles"
1124
 
1125
+ #: inc/admin/admin.php:1990
1126
+ msgid "Hide Genesis SEO Metaboxe"
1127
+ msgstr "Cacher la metaboxe Genesis SEO"
1128
+
1129
+ #: inc/admin/admin.php:2034
1130
  msgid "<p>Customize your titles & metas for homepage</p>"
1131
  msgstr "<p>Personnalisez vos titres et métas pour l'accueil</p>"
1132
 
1133
+ #: inc/admin/admin.php:2039
1134
  msgid "<p>Customize your titles & metas for Single Custom Post Types</p>"
1135
  msgstr ""
1136
  "<p>Personnalisez vos titres et métas pour les singles des Types d'article</p>"
1137
 
1138
+ #: inc/admin/admin.php:2044
1139
  msgid "<p>Customize your metas for all pages</p>"
1140
  msgstr "<p>Personnalisez vos métas pour toutes les pages</p>"
1141
 
1142
+ #: inc/admin/admin.php:2049
1143
  msgid "<p>Customize your metas for all taxonomies archives</p>"
1144
  msgstr "<p>Personnalisez vos métas pour toutes les archives de taxonomies</p>"
1145
 
1146
+ #: inc/admin/admin.php:2054
1147
  msgid "<p>Customize your metas for all archives</p>"
1148
  msgstr "<p>Personnalisez vos métas pour les archives</p>"
1149
 
1150
+ #: inc/admin/admin.php:2059
1151
  msgid ""
1152
  "To view your sitemap, enable permalinks (not default one), and save settings "
1153
  "to flush them."
1155
  "Pour voir votre sitemap, activez les permaliens (pas ceux par défaut), et "
1156
  "sauvegardez les paramètres pour les mettre à jour."
1157
 
1158
+ #: inc/admin/admin.php:2060
1159
  msgid ""
1160
  "Only the last 1000 items are listed in Sitemaps for performances issues."
1161
  msgstr ""
1162
  "Seuls les 1000 derniers éléments sont répertoriés dans les Sitemaps pour des "
1163
  "raisons de performances."
1164
 
1165
+ #: inc/admin/admin.php:2062
1166
  msgid "View your sitemap"
1167
  msgstr "Voir votre sitemap"
1168
 
1169
+ #: inc/admin/admin.php:2064
1170
  msgid "Ping Google manually"
1171
  msgstr "Pinger Google manuellement"
1172
 
1173
+ #: inc/admin/admin.php:2066
1174
  msgid "Flush permalinks"
1175
  msgstr "Mettre à jour les permaliens"
1176
 
1177
+ #: inc/admin/admin.php:2072
1178
  msgid "<p>Create an HTML for your visitors and boost your SEO</p>"
1179
  msgstr ""
1180
  "<p>Créez un plan de site HTML pour vos visiteurs et boostez votre SEO</p>"
1181
 
1182
+ #: inc/admin/admin.php:2077
1183
  msgid "<p>Include / Exclude Post Types</p>"
1184
  msgstr "<p>Inclure / Exclure les Types d'article</p>"
1185
 
1186
+ #: inc/admin/admin.php:2082
1187
  msgid "<p>Include / Exclude Taxonomies</p>"
1188
  msgstr "<p>Inclure / Exclure les Taxonomies</p>"
1189
 
1190
+ #: inc/admin/admin.php:2087
1191
  msgid "<p>Configure Google Knowledge Graph</p>"
1192
  msgstr "<p>Configurer Google Knowledge Graph</p>"
1193
 
1194
+ #: inc/admin/admin.php:2092
1195
  msgid "<p>Link your site with your social accounts</p>"
1196
  msgstr "<p>Lier votre site à vos comptes sociaux</p>"
1197
 
1198
+ #: inc/admin/admin.php:2097
1199
  msgid "<p>Manage Open Graph datas</p>"
1200
  msgstr "<p>Gérer l'Open Graph datas</p>"
1201
 
1202
+ #: inc/admin/admin.php:2102
1203
  msgid "<p>Manage your Twitter card</p>"
1204
  msgstr "<p>Gérer votre Twitter card</p>"
1205
 
1206
+ #: inc/admin/admin.php:2107
1207
  msgid "<p>Link your Google Analytics to your website</p>"
1208
  msgstr "<p>Lier Google Analytics à votre site</p>"
1209
 
1210
+ #: inc/admin/admin.php:2112
1211
  msgid "<p>Configure your Google Analytics tracking code</p>"
1212
  msgstr "<p>Configurer votre code de suivi Google Analytics</p>"
1213
 
1214
+ #: inc/admin/admin.php:2117
1215
  msgid "<p>Configure your Google Analytics custom dimensions"
1216
  msgstr "<p>Configurer vos dimensions personnalisées pour Google Analytics"
1217
 
1218
+ #: inc/admin/admin.php:2123
1219
  msgid "<p>Advanced SEO options</p>"
1220
  msgstr "<p>Options avancées de SEO</p>"
1221
 
1222
+ #: inc/admin/admin.php:2128
1223
  msgid "<p>Customize SEOPress to fit your needs</p>"
1224
  msgstr "<p>Personnaliser SEOPress pour correspondre à vos besoins</p>"
1225
 
1226
+ #: inc/admin/admin.php:2139
1227
  msgid "My awesome website"
1228
  msgstr "Mon super site"
1229
 
1230
+ #: inc/admin/admin.php:2144 inc/admin/admin.php:2155 inc/admin/admin.php:2191
1231
+ #: inc/admin/admin.php:2306 inc/admin/admin.php:2337 inc/admin/admin.php:2414
1232
+ #: inc/admin/admin.php:2487 inc/admin/admin.php:2537 inc/admin/admin.php:2586
1233
+ #: inc/admin/admin.php:2616
1234
  msgid "More tags"
1235
  msgstr "Plus de balises"
1236
 
1237
+ #: inc/admin/admin.php:2150
1238
  msgid "This is a cool website about Wookiees"
1239
  msgstr "Un site cool sur les Wookies"
1240
 
1241
+ #: inc/admin/admin.php:2168 inc/admin/admin.php:2277 inc/admin/admin.php:2391
1242
+ #: inc/admin/admin.php:2476 inc/admin/admin.php:2526 inc/admin/admin.php:2575
1243
+ #: inc/admin/admin.php:2607
1244
  msgid "Title template"
1245
  msgstr "Template de Titre"
1246
 
1247
+ #: inc/admin/admin.php:2187
1248
  msgid "Post Title"
1249
  msgstr "Titre du post"
1250
 
1251
+ #: inc/admin/admin.php:2198 inc/admin/admin.php:2313 inc/admin/admin.php:2421
1252
+ #: inc/admin/admin.php:2493 inc/admin/admin.php:2543 inc/admin/admin.php:2592
1253
+ #: inc/admin/admin.php:2622
1254
  msgid "Meta description template"
1255
  msgstr "Template de Méta Description"
1256
 
1257
+ #: inc/admin/admin.php:2257
1258
  msgid "Display date in Google search results?"
1259
  msgstr "Afficher la date dans les résultats de recherche Google ?"
1260
 
1261
+ #: inc/admin/admin.php:2297
1262
  msgid "Category Title"
1263
  msgstr "Titre de catégorie"
1264
 
1265
+ #: inc/admin/admin.php:2299
1266
  msgid "Tag Title"
1267
  msgstr "Titre de l'étiquette"
1268
 
1269
+ #: inc/admin/admin.php:2301
1270
  msgid "Term Title"
1271
  msgstr "Titre du terme"
1272
 
1273
+ #: inc/admin/admin.php:2330
1274
  msgid "Category Description"
1275
  msgstr "Description de la catégorie"
1276
 
1277
+ #: inc/admin/admin.php:2332
1278
  msgid "Tag Description"
1279
  msgstr "Description du tag"
1280
 
1281
+ #: inc/admin/admin.php:2334
1282
  msgid "Term Description"
1283
  msgstr "Description du terme"
1284
 
1285
+ #: inc/admin/admin.php:2410
1286
  msgid "Post Type Archive Name"
1287
  msgstr "Nom d'archive du Type d'article"
1288
 
1289
+ #: inc/admin/admin.php:2474
1290
  msgid "Author archives"
1291
  msgstr "Archives de l'auteur"
1292
 
1293
+ #: inc/admin/admin.php:2524
1294
  msgid "Date archives"
1295
  msgstr "Archives par date"
1296
 
1297
+ #: inc/admin/admin.php:2535
1298
  msgid "Archive date"
1299
  msgstr "Date d'archive"
1300
 
1301
+ #: inc/admin/admin.php:2573
1302
  msgid "Search archives"
1303
  msgstr "Archives de recherche"
1304
 
1305
+ #: inc/admin/admin.php:2584
1306
  msgid "Search Keywords"
1307
  msgstr "Mots clés recherchés"
1308
 
1309
+ #: inc/admin/admin.php:2605
1310
  msgid "404 archives"
1311
  msgstr "Page 404"
1312
 
1313
+ #: inc/admin/admin.php:2818 inc/admin/admin.php:2858
1314
  msgid "Include"
1315
  msgstr "Inclure"
1316
 
1317
+ #: inc/admin/admin.php:2871
1318
  msgid "eg: 2, 28, 68"
1319
  msgstr "ex: 2, 28, 68"
1320
 
1321
+ #: inc/admin/admin.php:2879
1322
  msgid "eg: 13, 8, 38"
1323
  msgstr "ex: 13, 8, 38"
1324
 
1325
+ #: inc/admin/admin.php:2893
1326
  msgid "Person"
1327
  msgstr "Personne"
1328
 
1329
+ #: inc/admin/admin.php:2896
1330
  msgid "Organization"
1331
  msgstr "Organisation"
1332
 
1333
+ #: inc/admin/admin.php:2907
1334
  msgid "eg: Apple"
1335
  msgstr "ex: Apple"
1336
 
1337
+ #: inc/admin/admin.php:2918
1338
  msgid "Select your logo"
1339
  msgstr "Sélectionnez votre logo"
1340
 
1341
+ #: inc/admin/admin.php:2944
1342
  msgid "eg: +33123456789 (internationalized version required)"
1343
  msgstr "par exemple: +33123456789 (version internationalisée nécessaire)"
1344
 
1345
+ #: inc/admin/admin.php:2959
1346
  msgid "Customer support"
1347
  msgstr "Support client"
1348
 
1349
+ #: inc/admin/admin.php:2962
1350
  msgid "Technical support"
1351
  msgstr "Support technique"
1352
 
1353
+ #: inc/admin/admin.php:2965
1354
  msgid "Billing support"
1355
  msgstr "Support facturation"
1356
 
1357
+ #: inc/admin/admin.php:2968
1358
  msgid "Bill payment"
1359
  msgstr "Paiement facturation"
1360
 
1361
+ #: inc/admin/admin.php:2971
1362
  msgid "Sales"
1363
  msgstr "Ventes"
1364
 
1365
+ #: inc/admin/admin.php:2974
1366
  msgid "Credit card support"
1367
  msgstr "Support carte de crédit"
1368
 
1369
+ #: inc/admin/admin.php:2977
1370
  msgid "Emergency"
1371
  msgstr "Urgence"
1372
 
1373
+ #: inc/admin/admin.php:2980
1374
  msgid "Baggage tracking"
1375
  msgstr "Suivi des bagages"
1376
 
1377
+ #: inc/admin/admin.php:2983
1378
  msgid "Roadside assistance"
1379
  msgstr "Assistance routière"
1380
 
1381
+ #: inc/admin/admin.php:2986
1382
  msgid "Package tracking"
1383
  msgstr "Suivi des colis"
1384
 
1385
+ #: inc/admin/admin.php:3003
1386
  msgid "Toll Free"
1387
  msgstr "Gratuit"
1388
 
1389
+ #: inc/admin/admin.php:3006
1390
  msgid "Hearing impaired supported"
1391
  msgstr "Support pour les personnes souffrant d'une déficience auditive"
1392
 
1393
+ #: inc/admin/admin.php:3017
1394
  msgid "eg: https://www.facebook.com/your-page"
1395
  msgstr "ex: https://www.facebook.com/your-page"
1396
 
1397
+ #: inc/admin/admin.php:3027
1398
  msgid "eg: @wpcloudy"
1399
  msgstr "ex: @wpcloudy"
1400
 
1401
+ #: inc/admin/admin.php:3037
1402
  msgid "eg: https://plus.google.com/+BenjaminDenis"
1403
  msgstr "ex: https://plus.google.com/+BenjaminDenis"
1404
 
1405
+ #: inc/admin/admin.php:3047
1406
  msgid "eg: https://pinterest.com/wpbuy/"
1407
  msgstr "ex: https://pinterest.com/wpbuy/"
1408
 
1409
+ #: inc/admin/admin.php:3057
1410
  msgid "eg: https://www.instagram.com/your-name/"
1411
  msgstr "ex: https://www.instagram.com/your-name/"
1412
 
1413
+ #: inc/admin/admin.php:3067
1414
  msgid "eg: https://www.youtube.com/channel/UCpQzarWu55UzCIH7-OW6pwA"
1415
  msgstr "ex: https://www.youtube.com/channel/UCpQzarWu55UzCIH7-OW6pwA"
1416
 
1417
+ #: inc/admin/admin.php:3077
1418
  msgid "eg: https://www.linkedin.com/in/benjamin-denis-70672b3b"
1419
  msgstr "ex: https://www.linkedin.com/in/benjamin-denis-70672b3b"
1420
 
1421
+ #: inc/admin/admin.php:3087
1422
  msgid "eg: https://myspace.com/your-page"
1423
  msgstr "ex: https://myspace.com/your-page"
1424
 
1425
+ #: inc/admin/admin.php:3097
1426
  msgid "eg: https://soundcloud.com/michaelmccannmusic"
1427
  msgstr "ex: https://soundcloud.com/michaelmccannmusic"
1428
 
1429
+ #: inc/admin/admin.php:3107
1430
  msgid "eg: https://your-site.tumblr.com"
1431
  msgstr "ex: https://your-site.tumblr.com"
1432
 
1433
+ #: inc/admin/admin.php:3124
1434
  msgid "Enable OG data"
1435
  msgstr "Activer les données OG"
1436
 
1437
+ #: inc/admin/admin.php:3176
1438
  msgid "Enable Twitter card"
1439
  msgstr "Activer Twitter Card"
1440
 
1441
+ #: inc/admin/admin.php:3207
1442
  msgid "Default"
1443
  msgstr "Défaut"
1444
 
1445
+ #: inc/admin/admin.php:3210
1446
  msgid "Large"
1447
  msgstr "Grande"
1448
 
1449
+ #: inc/admin/admin.php:3238
1450
  msgid "Enter your Tracking ID (UA-XXXX-XX)"
1451
  msgstr "Entrer votre ID de tracking (UA-XXXX-XX)"
1452
 
1453
+ #: inc/admin/admin.php:3341
1454
  msgid "Enter yours domains"
1455
  msgstr "Saisissez vos domaines"
1456
 
1457
+ #: inc/admin/admin.php:3360 inc/admin/admin.php:3437 inc/admin/admin.php:3514
1458
+ #: inc/admin/admin.php:3591 inc/admin/admin.php:3668
1459
  msgid "Custom Dimension #1"
1460
  msgstr "Dimension personnalisée #1"
1461
 
1462
+ #: inc/admin/admin.php:3363 inc/admin/admin.php:3440 inc/admin/admin.php:3517
1463
+ #: inc/admin/admin.php:3594 inc/admin/admin.php:3671
1464
  msgid "Custom Dimension #2"
1465
  msgstr "Dimension personnalisée #2"
1466
 
1467
+ #: inc/admin/admin.php:3366 inc/admin/admin.php:3443 inc/admin/admin.php:3520
1468
+ #: inc/admin/admin.php:3597 inc/admin/admin.php:3674
1469
  msgid "Custom Dimension #3"
1470
  msgstr "Dimension personnalisée #3"
1471
 
1472
+ #: inc/admin/admin.php:3369 inc/admin/admin.php:3446 inc/admin/admin.php:3523
1473
+ #: inc/admin/admin.php:3600 inc/admin/admin.php:3677
1474
  msgid "Custom Dimension #4"
1475
  msgstr "Dimension personnalisée #4"
1476
 
1477
+ #: inc/admin/admin.php:3372 inc/admin/admin.php:3449 inc/admin/admin.php:3526
1478
+ #: inc/admin/admin.php:3603 inc/admin/admin.php:3680
1479
  msgid "Custom Dimension #5"
1480
  msgstr "Dimension personnalisée #5"
1481
 
1482
+ #: inc/admin/admin.php:3375 inc/admin/admin.php:3452 inc/admin/admin.php:3529
1483
+ #: inc/admin/admin.php:3606 inc/admin/admin.php:3683
1484
  msgid "Custom Dimension #6"
1485
  msgstr "Dimension personnalisée #6"
1486
 
1487
+ #: inc/admin/admin.php:3378 inc/admin/admin.php:3455 inc/admin/admin.php:3532
1488
+ #: inc/admin/admin.php:3609 inc/admin/admin.php:3686
1489
  msgid "Custom Dimension #7"
1490
  msgstr "Dimension personnalisée #7"
1491
 
1492
+ #: inc/admin/admin.php:3381 inc/admin/admin.php:3458 inc/admin/admin.php:3535
1493
+ #: inc/admin/admin.php:3612 inc/admin/admin.php:3689
1494
  msgid "Custom Dimension #8"
1495
  msgstr "Dimension personnalisée #8"
1496
 
1497
+ #: inc/admin/admin.php:3384 inc/admin/admin.php:3461 inc/admin/admin.php:3538
1498
+ #: inc/admin/admin.php:3615 inc/admin/admin.php:3692
1499
  msgid "Custom Dimension #9"
1500
  msgstr "Dimension personnalisée #9"
1501
 
1502
+ #: inc/admin/admin.php:3387 inc/admin/admin.php:3464 inc/admin/admin.php:3541
1503
+ #: inc/admin/admin.php:3618 inc/admin/admin.php:3695
1504
  msgid "Custom Dimension #10"
1505
  msgstr "Dimension personnalisée #10"
1506
 
1507
+ #: inc/admin/admin.php:3390 inc/admin/admin.php:3467 inc/admin/admin.php:3544
1508
+ #: inc/admin/admin.php:3621 inc/admin/admin.php:3698
1509
  msgid "Custom Dimension #11"
1510
  msgstr "Dimension personnalisée #11"
1511
 
1512
+ #: inc/admin/admin.php:3393 inc/admin/admin.php:3470 inc/admin/admin.php:3547
1513
+ #: inc/admin/admin.php:3624 inc/admin/admin.php:3701
1514
  msgid "Custom Dimension #12"
1515
  msgstr "Dimension personnalisée #12"
1516
 
1517
+ #: inc/admin/admin.php:3396 inc/admin/admin.php:3473 inc/admin/admin.php:3550
1518
+ #: inc/admin/admin.php:3627 inc/admin/admin.php:3704
1519
  msgid "Custom Dimension #13"
1520
  msgstr "Dimension personnalisée #13"
1521
 
1522
+ #: inc/admin/admin.php:3399 inc/admin/admin.php:3476 inc/admin/admin.php:3553
1523
+ #: inc/admin/admin.php:3630 inc/admin/admin.php:3707
1524
  msgid "Custom Dimension #14"
1525
  msgstr "Dimension personnalisée #14"
1526
 
1527
+ #: inc/admin/admin.php:3402 inc/admin/admin.php:3479 inc/admin/admin.php:3556
1528
+ #: inc/admin/admin.php:3633 inc/admin/admin.php:3710
1529
  msgid "Custom Dimension #15"
1530
  msgstr "Dimension personnalisée #15"
1531
 
1532
+ #: inc/admin/admin.php:3405 inc/admin/admin.php:3482 inc/admin/admin.php:3559
1533
+ #: inc/admin/admin.php:3636 inc/admin/admin.php:3713
1534
  msgid "Custom Dimension #16"
1535
  msgstr "Dimension personnalisée #16"
1536
 
1537
+ #: inc/admin/admin.php:3408 inc/admin/admin.php:3485 inc/admin/admin.php:3562
1538
+ #: inc/admin/admin.php:3639 inc/admin/admin.php:3716
1539
  msgid "Custom Dimension #17"
1540
  msgstr "Dimension personnalisée #17"
1541
 
1542
+ #: inc/admin/admin.php:3411 inc/admin/admin.php:3488 inc/admin/admin.php:3565
1543
+ #: inc/admin/admin.php:3642 inc/admin/admin.php:3719
1544
  msgid "Custom Dimension #18"
1545
  msgstr "Dimension personnalisée #18"
1546
 
1547
+ #: inc/admin/admin.php:3414 inc/admin/admin.php:3491 inc/admin/admin.php:3568
1548
+ #: inc/admin/admin.php:3645 inc/admin/admin.php:3722
1549
  msgid "Custom Dimension #19"
1550
  msgstr "Dimension personnalisée #19"
1551
 
1552
+ #: inc/admin/admin.php:3417 inc/admin/admin.php:3494 inc/admin/admin.php:3571
1553
+ #: inc/admin/admin.php:3648 inc/admin/admin.php:3725
1554
  msgid "Custom Dimension #20"
1555
  msgstr "Dimension personnalisée #20"
1556
 
1557
+ #: inc/admin/admin.php:3743
1558
  msgid "Redirect attachment pages to post parent (or homepage if none)"
1559
  msgstr ""
1560
  "Rediriger les pages de pièces jointes vers le post parent (si aucun, "
1561
  "rediriger vers page d'accueil)"
1562
 
1563
+ #: inc/admin/admin.php:3760
1564
  msgid "Remove stop words in permalinks"
1565
  msgstr "Supprimer les mots clés inutiles des permaliens"
1566
 
1567
+ #: inc/admin/admin.php:3760
1568
  msgid ""
1569
  "Setting based on site language. Supported language EN, FR, ES, DE, IT, PT."
1570
  msgstr ""
1571
  "Réglage basé sur la langue du site. Langue prise en charge EN, FR, ES, DE, "
1572
  "IT, PT."
1573
 
1574
+ #: inc/admin/admin.php:3777
1575
  msgid "Remove /category/ in your permalinks"
1576
  msgstr "Supprimer /category/ dans vos permaliens"
1577
 
1578
+ #: inc/admin/admin.php:3787
1579
  msgid "Enter Google meta value site verification"
1580
  msgstr "Entrer la meta de vérification de site Google"
1581
 
1582
+ #: inc/admin/admin.php:3797
1583
  msgid "Enter Bing meta value site verification"
1584
  msgstr "Entrer la meta de vérification de site Bing"
1585
 
1586
+ #: inc/admin/admin.php:3807
1587
  msgid "Enter Pinterest meta value site verification"
1588
  msgstr "Entrer la meta de vérification de site Pinterest"
1589
 
1590
+ #: inc/admin/admin.php:3817
1591
  msgid "Enter Yandex meta value site verification"
1592
  msgstr "Entrer la meta de vérification de site Yandex"
1593
 
1594
+ #: inc/admin/admin.php:3834
1595
  msgid "Remove SEOPress from Admin Bar in backend"
1596
  msgstr "Supprimer SEOPress de la barre d'outils dans l'administration"
1597
 
1598
+ #: inc/admin/admin.php:3851
1599
  msgid "Hide Notifications Center in SEOPress Dashboard page"
1600
  msgstr "Masquer le Centre de Notifications du Tableau de Bord de SEOPress"
1601
 
1602
+ #: inc/admin/admin.php:3868
1603
  msgid "Add title column"
1604
  msgstr "Ajouter la colonne Titre"
1605
 
1606
+ #: inc/admin/admin.php:3885
1607
  msgid "Add meta description column"
1608
  msgstr "Ajouter la colonne meta description"
1609
 
1610
+ #: inc/admin/admin.php:3902
1611
  msgid "Display noindex status"
1612
  msgstr "Affiche le statut noindex"
1613
 
1614
+ #: inc/admin/admin.php:3919
1615
  msgid "Display nofollow status"
1616
  msgstr "Affiche le statut nofollow"
1617
 
1618
+ #: inc/admin/admin.php:3936
1619
+ msgid "Remove Genesis SEO Metaboxe"
1620
+ msgstr "Supprimer la metaboxe Genesis SEO"
1621
+
1622
  #: inc/functions/options-advanced-admin.php:77
1623
+ #: inc/functions/options-advanced-admin.php:463
1624
  msgid "Title tag"
1625
  msgstr "Balise Titre"
1626
 
1636
  msgid "Nofollow?"
1637
  msgstr "Nofollow ?"
1638
 
1639
+ #: inc/functions/options-advanced-admin.php:290
1640
+ msgid "Enable noindex"
1641
+ msgstr "Définir sur noindex"
1642
+
1643
+ #: inc/functions/options-advanced-admin.php:329
1644
+ msgid "Enable index"
1645
+ msgstr "Définir sur index"
1646
+
1647
+ #: inc/functions/options-advanced-admin.php:369
1648
+ msgid "Enable nofollow"
1649
+ msgstr "Définir sur nofollow"
1650
+
1651
+ #: inc/functions/options-advanced-admin.php:408
1652
+ msgid "Enable follow"
1653
+ msgstr "Définir sur follow"
1654
+
1655
  #: inc/functions/options-import-export.php:48
1656
  msgid "Please upload a valid .json file"
1657
  msgstr "Veuillez uploader un fichier JSON valide"
1660
  msgid "Please upload a file to import"
1661
  msgstr "Uploader un fichier à importer SVP"
1662
 
1663
+ #: seopress.php:219
1664
  msgid "Settings"
1665
  msgstr "Paramètres"
1666
 
1667
+ #: seopress.php:220
1668
  msgid "SEOPress.org"
1669
  msgstr "SEOPress.org"
1670
 
1671
+ #: seopress.php:222
1672
  msgid "GO PRO!"
1673
  msgstr "PASSEZ PRO !"
1674
 
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://seopress.org/
4
  Tags: seo, search engine optimization, meta, title, description, keywords, serp, knowledge grah, schema.org, url, redirection, 301, xml sitemap, breadcrumbs, ranking, google analytics, woocommerce, dublin core, rich snippets, 404, html sitemap
5
  Requires at least: 4.4+
6
  Tested up to: 4.7
7
- Stable tag: 1.4
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -45,6 +45,7 @@ SEOPress is a powerful plugin to optimize your SEO, boost your traffic and impro
45
  <li>Structured Data types</li>
46
  <li>Breadcrumbs</li>
47
  <li>Google Page Speed</li>
 
48
  <li>Robots</li>
49
  <li>Google News Sitemap</li>
50
  <li>404 Monitoring</li>
@@ -108,6 +109,16 @@ SEOPress is a powerful plugin to optimize your SEO, boost your traffic and impro
108
  30. Structured Data Types metaboxe in post, page, custom post type
109
 
110
  == Changelog ==
 
 
 
 
 
 
 
 
 
 
111
  = 1.4 =
112
  * NEW Remove /category/ in permalinks (works with Polylang and WPML)
113
  * NEW Show/Hide Notifications Center
4
  Tags: seo, search engine optimization, meta, title, description, keywords, serp, knowledge grah, schema.org, url, redirection, 301, xml sitemap, breadcrumbs, ranking, google analytics, woocommerce, dublin core, rich snippets, 404, html sitemap
5
  Requires at least: 4.4+
6
  Tested up to: 4.7
7
+ Stable tag: 1.5
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
45
  <li>Structured Data types</li>
46
  <li>Breadcrumbs</li>
47
  <li>Google Page Speed</li>
48
+ <li>Google Analytics Stats in Dashboard</li>
49
  <li>Robots</li>
50
  <li>Google News Sitemap</li>
51
  <li>404 Monitoring</li>
109
  30. Structured Data Types metaboxe in post, page, custom post type
110
 
111
  == Changelog ==
112
+ = 1.5 =
113
+ * NEW Google Analytics Stats in Dashboard with interactive charts (SEOPress PRO only)
114
+ * NEW Add new advices in Notifications center
115
+ * NEW Add bulk actions to enable/disable noindex/nofollow/index/follow
116
+ * NEW Hide Genesis SEO Metaboxe (in Advanced page, appearance tab)
117
+ * INFO You can now reset notifications display settings in Import/Export/Reset page
118
+ * INFO Enhanced Google Snippet Preview
119
+ * FIX Conflict with AIT Themes
120
+ * FIX some undefined notices
121
+ * FIX Notice admin_header
122
  = 1.4 =
123
  * NEW Remove /category/ in permalinks (works with Polylang and WPML)
124
  * NEW Show/Hide Notifications Center
seopress.php CHANGED
@@ -4,7 +4,7 @@
4
  Plugin Name: SEOPress
5
  Plugin URI: http://seopress.org/
6
  Description: The best SEO plugin.
7
- Version: 1.4
8
  Author: Benjamin DENIS
9
  Author URI: http://seopress.org/
10
  License: GPLv2
@@ -34,29 +34,6 @@ if ( !function_exists( 'add_action' ) ) {
34
  exit;
35
  }
36
 
37
- ///////////////////////////////////////////////////////////////////////////////////////////////////
38
- //Tracking
39
- ///////////////////////////////////////////////////////////////////////////////////////////////////
40
- require_once __DIR__ . '/wpgod/vendor/autoload.php';
41
-
42
- use WPGodWpseopress\WPGod;
43
-
44
- $wpgod3545d44c7f14185 = new WPGod(
45
- array(
46
- "type_development" => "plugin",
47
- "plugin_file" => plugin_basename(__FILE__),
48
- "basename" => dirname(plugin_basename(__FILE__)),
49
- "token" => "3545d44c7f14185a1bd17412521e5356b60065c0",
50
- "prevent_user" => true,
51
- "name_transient" => "wpgod_3545d44c7f14185a1bd17412",
52
- "rules_ignore" => array(
53
-
54
- ),
55
- "environment" => 60
56
- )
57
- );
58
- $wpgod3545d44c7f14185->execute();
59
-
60
  ///////////////////////////////////////////////////////////////////////////////////////////////////
61
  //Hooks activation
62
  ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -79,7 +56,7 @@ register_deactivation_hook(__FILE__, 'seopress_deactivation');
79
  //Define
80
  ///////////////////////////////////////////////////////////////////////////////////////////////////
81
 
82
- define( 'SEOPRESS_VERSION', '1.4' );
83
  define( 'SEOPRESS_AUTHOR', 'Benjamin Denis' );
84
 
85
  ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -197,6 +174,11 @@ function seopress_add_admin_options_scripts($hook) {
197
 
198
  }
199
  }
 
 
 
 
 
200
  }
201
 
202
  add_action('admin_enqueue_scripts', 'seopress_add_admin_options_scripts', 10, 1);
@@ -205,7 +187,7 @@ add_action('admin_enqueue_scripts', 'seopress_add_admin_options_scripts', 10, 1)
205
  //Admin Body Class
206
  ///////////////////////////////////////////////////////////////////////////////////////////////////
207
 
208
- add_filter( 'admin_body_class', 'seopress_admin_body_class' );
209
  function seopress_admin_body_class( $classes ) {
210
  if ((isset($_GET['page']) && ($_GET['page'] == 'seopress-option'))
211
  || (isset($_GET['page']) && ($_GET['page'] == 'seopress-titles'))
4
  Plugin Name: SEOPress
5
  Plugin URI: http://seopress.org/
6
  Description: The best SEO plugin.
7
+ Version: 1.5
8
  Author: Benjamin DENIS
9
  Author URI: http://seopress.org/
10
  License: GPLv2
34
  exit;
35
  }
36
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  ///////////////////////////////////////////////////////////////////////////////////////////////////
38
  //Hooks activation
39
  ///////////////////////////////////////////////////////////////////////////////////////////////////
56
  //Define
57
  ///////////////////////////////////////////////////////////////////////////////////////////////////
58
 
59
+ define( 'SEOPRESS_VERSION', '1.5' );
60
  define( 'SEOPRESS_AUTHOR', 'Benjamin Denis' );
61
 
62
  ///////////////////////////////////////////////////////////////////////////////////////////////////
174
 
175
  }
176
  }
177
+
178
+ //Quick Edit
179
+ if ( 'edit.php' === $hook && isset( $_GET['post_type'] )) {
180
+ wp_enqueue_script( 'seopress-quick-edit', plugins_url('assets/js/seopress-quick-edit.js', __FILE__), array('jquery'), '', true );
181
+ }
182
  }
183
 
184
  add_action('admin_enqueue_scripts', 'seopress_add_admin_options_scripts', 10, 1);
187
  //Admin Body Class
188
  ///////////////////////////////////////////////////////////////////////////////////////////////////
189
 
190
+ add_filter( 'admin_body_class', 'seopress_admin_body_class', 9 );
191
  function seopress_admin_body_class( $classes ) {
192
  if ((isset($_GET['page']) && ($_GET['page'] == 'seopress-option'))
193
  || (isset($_GET['page']) && ($_GET['page'] == 'seopress-titles'))
wpgod/composer-temp.phar DELETED
Binary file
wpgod/composer.json DELETED
@@ -1,16 +0,0 @@
1
- {
2
- "name": "Gmulti/WPGod",
3
- "description": "Library Tracker errors WordPress",
4
- "license": "GPL",
5
- "authors": [
6
- {
7
- "name": "Thomas DENEULIN",
8
- "email": "contact@wp-god.com"
9
- }
10
- ],
11
- "autoload": {
12
- "psr-4": {
13
- "WPGodWpseopress\\": "src/WPGod/"
14
- }
15
- }
16
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
wpgod/composer.phar DELETED
Binary file
wpgod/public/js/send-error.js DELETED
@@ -1,8 +0,0 @@
1
- jQuery(document).ready(function($){
2
- $.post(
3
- configGodError.url,
4
- {
5
- 'action': configGodError.action
6
- }
7
- );
8
- });
 
 
 
 
 
 
 
 
wpgod/public/js/send-tracking-general.js DELETED
@@ -1,8 +0,0 @@
1
- jQuery(document).ready(function($){
2
- $.post(
3
- configGodTrackingGeneral.url,
4
- {
5
- 'action': configGodTrackingGeneral.action
6
- }
7
- );
8
- });
 
 
 
 
 
 
 
 
wpgod/src/WPGod/Handler/GodAdminNoticeHandler.php DELETED
@@ -1,118 +0,0 @@
1
- <?php
2
-
3
- namespace WPGodWpseopress\Handler;
4
-
5
- use WPGodWpseopress\Services\GodAbstractService;
6
- use WPGodWpseopress\Helpers\GodTypeDevelopment;
7
- use WPGodWpseopress\Models\HooksInterface;
8
- use WPGodWpseopress\WPGod;
9
-
10
- /**
11
- *
12
- * GodAdminNoticeHandler
13
- *
14
- * @author Thomas DENEULIN <contact@wp-god.com>
15
- * @version 1.0.0
16
- * @since 1.0.0
17
- */
18
- class GodAdminNoticeHandler extends GodAbstractService implements HooksInterface {
19
-
20
- public function __construct($services = array(), $helpers = array(), $preventUser = false){
21
-
22
- parent::__construct($services, $helpers);
23
-
24
- $this->preventUser = $preventUser;
25
-
26
- }
27
-
28
-
29
- public function hooks(){
30
- if($this->preventUser){
31
- add_action( 'admin_notices', array( $this, 'preventMonitoring' ) );
32
- add_action( 'admin_init', array( $this, 'checkForMonitoring' ) );
33
- }
34
- }
35
-
36
-
37
- public function checkForMonitoring() {
38
-
39
-
40
-
41
- if ( ! current_user_can( 'manage_options' ) && ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) ) {
42
- return;
43
- }
44
-
45
-
46
- if(isset($_GET["wpgod_seopress_action"]) &&
47
- in_array($_GET["wpgod_seopress_action"], array("opt_in", "opt_out"))){
48
-
49
- $hide_notice = get_option( 'wpgod_seopress_tracking_notice' );
50
-
51
- if( $hide_notice ) {
52
- return;
53
- }
54
-
55
- update_option( 'wpgod_seopress_tracking_notice', 1);
56
-
57
- switch ($_GET["wpgod_seopress_action"]) {
58
- case 'opt_in':
59
- update_option("wpgod_seopress_allow_tracking", 1);
60
- break;
61
-
62
- case "opt_out":
63
- update_option("wpgod_seopress_allow_tracking", 0);
64
- break;
65
- }
66
- }
67
- }
68
-
69
-
70
- public function preventMonitoring(){
71
- $hide_notice = get_option( 'wpgod_seopress_tracking_notice' );
72
-
73
- if( $hide_notice ) {
74
- return;
75
- }
76
-
77
- if( get_option( 'wpgod_seopress_allow_tracking', false ) ) {
78
- return;
79
- }
80
-
81
- if( ! current_user_can( 'manage_options' ) ) {
82
- return;
83
- }
84
-
85
- if(
86
- stristr( network_site_url( '/' ), 'dev' ) !== false ||
87
- stristr( network_site_url( '/' ), 'localhost' ) !== false ||
88
- stristr( network_site_url( '/' ), ':8888' ) !== false
89
- ) {
90
- update_option( 'wpgod_seopress_tracking_notice', '1' );
91
- } else {
92
- $optinUrl = add_query_arg( 'wpgod_seopress_action', "opt_in" );
93
- $optoutUrl = add_query_arg( 'wpgod_seopress_action', "opt_out" );
94
-
95
- ?>
96
- <div class="updated">
97
- <p>
98
- Allow to track plugin SEOPress usage ? . No sensitive data is tracked.
99
- &nbsp;<a href="<?php echo esc_url( $optinUrl ) ?>" class="button-secondary">Allow</a>
100
- &nbsp;<a href="<?php echo esc_url( $optoutUrl ) ?>" class="button-secondary">Do not allow</a>
101
- </p>
102
- </div>
103
-
104
- <?php
105
- }
106
- }
107
-
108
-
109
- }
110
-
111
-
112
-
113
-
114
-
115
-
116
-
117
-
118
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
wpgod/src/WPGod/Handler/GodErrorHandler.php DELETED
@@ -1,136 +0,0 @@
1
- <?php
2
-
3
- namespace WPGodWpseopress\Handler;
4
-
5
- use WPGodWpseopress\Models\GodHandlerInterface;
6
- use WPGodWpseopress\Services\GodAbstractService;
7
- use WPGodWpseopress\Helpers\GodTypeDevelopment;
8
-
9
- /**
10
- *
11
- * GodErrorHandler
12
- *
13
- * @author Thomas DENEULIN <contact@wp-god.com>
14
- * @version 1.0.0
15
- * @since 1.0.0
16
- */
17
- class GodErrorHandler extends GodAbstractService implements GodHandlerInterface{
18
-
19
- public static $functionExclude = array(
20
- "getBackTrace",
21
- "register_error",
22
- "godErrorHandler",
23
- "godErrorShutdownHandler",
24
- "verifyExistErrors"
25
- );
26
-
27
- public function __construct($services = array(), $helpers = array(), $pause = false){
28
-
29
- parent::__construct($services, $helpers);
30
-
31
- if(!$pause):
32
- set_error_handler(array($this, 'godErrorHandler'));
33
- register_shutdown_function(array($this, 'godErrorShutdownHandler'));
34
-
35
- endif;
36
- }
37
-
38
-
39
- public function checkLibraryPlugin($file){
40
-
41
- $pluginDir = dirname(str_replace(WP_PLUGIN_DIR, "", $file));
42
- $namespaceName = "\WPGod" . ucfirst(str_replace("/", "", $pluginDir));
43
- $class = $namespaceName . "\Services\GodApi";
44
- if(file_exists(WP_PLUGIN_DIR . $pluginDir . '/wpgod/src/WPGod/Services/GodApi.php') &&
45
- method_exists($class, "getNameTransientOtherStatic") &&
46
- method_exists($class, "getNameTransientAlreadyCheck")){
47
- return array(
48
- "already_check" => $class::getNameTransientAlreadyCheck(),
49
- "other" => $class::getNameTransientOtherStatic()
50
- );
51
- }
52
-
53
- return false;
54
-
55
- }
56
-
57
- public function godErrorHandler($code, $message, $file, $line, $ctx = array()) {
58
- $serializeParams = array(
59
- "file" => $file,
60
- "code" => $code,
61
- "line" => $line,
62
- "message" => $message
63
- );
64
- if($this->getService("GodAuthorizeError")->authorizeHandler($file, $code) &&
65
- !$this->getService("GodAuthorizeError")->checkAlreadyTrack($serializeParams) ) {
66
-
67
- $this->code = $code;
68
- $this->message = $message;
69
- $this->file = $file;
70
- $this->line = $line;
71
- $this->ctx = $ctx;
72
-
73
- $this->registerError();
74
-
75
- $transients = $this->checkLibraryPlugin($file);
76
-
77
- if($transients && !$this->getService("GodAuthorizeError")->checkAlreadyTrack($serializeParams, $transients["already_check"])){
78
- $this->registerError($transients["other"]);
79
- }
80
-
81
- }
82
- }
83
-
84
- protected function registerError($nameTransient = null){
85
-
86
- $this->file = addslashes($this->file);
87
-
88
- global $wp_version;
89
- $locale = get_locale();
90
- $locale = str_replace('_', '-', $locale);
91
-
92
-
93
- $pluginData = $this->getHelper("GodEnvironmentInfo")->getPluginData($this->getService("GodApi")->getPluginFile());
94
-
95
- $version = $this->getService("GodApi")->getVersion();
96
- if($pluginData){
97
- $version = $pluginData["plugin_version"];
98
- }
99
-
100
- $params = array(
101
- "file" => $this->file,
102
- "message" => $this->message,
103
- "line" => $this->line,
104
- "code" => $this->code,
105
- "wp_infos" => array(
106
- "wp_version" => $wp_version,
107
- "blog_id" => get_current_blog_id(),
108
- "wp_local_package" => $locale
109
- ),
110
- "server_infos" => $this->getHelper("GodServerInfo")->getInfosServerForSavePost(),
111
- "version" => $version,
112
- "home_url" => get_home_url(),
113
- "php_version" => PHP_VERSION
114
- );
115
-
116
- $this->getService("GodApi")->saveError($params, $nameTransient);
117
- }
118
-
119
- public function godErrorShutdownHandler(){
120
-
121
- $last_error = error_get_last();
122
- if ($last_error !== null) {
123
- $this->godErrorHandler($last_error['type'], $last_error['message'], $last_error['file'], $last_error['line']);
124
- }
125
- }
126
-
127
- }
128
-
129
-
130
-
131
-
132
-
133
-
134
-
135
-
136
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
wpgod/src/WPGod/Handler/GodTrackingHandler.php DELETED
@@ -1,101 +0,0 @@
1
- <?php
2
-
3
- namespace WPGodWpseopress\Handler;
4
-
5
- use WPGodWpseopress\Services\GodAbstractService;
6
- use WPGodWpseopress\Helpers\GodTypeDevelopment;
7
- use WPGodWpseopress\Models\HooksInterface;
8
- use WPGodWpseopress\WPGod;
9
-
10
- /**
11
- *
12
- * GodTrackingHandler
13
- *
14
- * @author Thomas DENEULIN <contact@wp-god.com>
15
- * @version 1.0.0
16
- * @since 1.0.0
17
- */
18
- class GodTrackingHandler extends GodAbstractService implements HooksInterface {
19
-
20
- public function __construct($services = array(), $helpers = array(), $pause = false){
21
-
22
- parent::__construct($services, $helpers);
23
-
24
- $this->pause = $pause;
25
-
26
- }
27
-
28
-
29
- public function hooks(){
30
- $apiService = $this->getService('GodApi');
31
-
32
- if(!$this->pause):
33
- $lastDateCheck = $apiService::getLastCheckTrackingGeneral();
34
- $intervalTracking = apply_filters("god_interval_tracking", 60 * 60 * 24 * 5);
35
- $authorizeMonitoring = true;
36
-
37
- $preventUser = $this->getService("GodApi")->getPreventUser();
38
-
39
- if($preventUser){
40
-
41
- $allowTracking = get_option('wpgod_seopress_allow_tracking');
42
-
43
- if(!$allowTracking){
44
- $authorizeMonitoring = false;
45
- }
46
- }
47
-
48
- if((!$lastDateCheck || abs(time() - $lastDateCheck) > $intervalTracking) && $authorizeMonitoring){
49
- $apiService::initLastCheckTrackingGeneral();
50
- add_action('init', array($this, 'trackingGeneral'), 0);
51
- add_action( 'wp_ajax_tracking_general', array($this, 'prefix_ajax_tracking_general') );
52
- add_action( 'wp_ajax_nopriv_tracking_general', array($this, 'prefix_ajax_tracking_general') );
53
- }
54
- endif;
55
- }
56
-
57
- public function prefix_ajax_tracking_general(){
58
- $serverInfos = $this->getHelper("GodServerInfo")->getTrackingServerData();
59
- $wpInfos = $this->getHelper("GodEnvironmentInfo")->getAllDataEnvironment();
60
- $pluginData = $this->getHelper("GodEnvironmentInfo")->getPluginData($this->getService("GodApi")->getPluginFile());
61
-
62
- $this->getService("GodApi")->sendTrackingGeneral(array_merge($serverInfos, $wpInfos, $pluginData));
63
- }
64
-
65
- public function trackingGeneral(){
66
- $pluginData = $this->getHelper("GodEnvironmentInfo")->getPluginData($this->getService("GodApi")->getPluginFile());
67
- if(is_admin()){
68
- add_action("admin_enqueue_scripts", array($this, "enqueue_script_god"));
69
- }
70
- else{
71
- add_action("wp_enqueue_scripts", array($this, "enqueue_script_god"));
72
- }
73
- }
74
-
75
- public function enqueue_script_god(){
76
- $url = admin_url("admin-ajax.php");
77
- $urlRegisterScript = sprintf("%s/%s.js", WPGod::$GOD_PATH_PUBLIC_JS, "send-tracking-general");
78
- $uniqId = uniqid();
79
- wp_register_script( $uniqId . '-god-js', $urlRegisterScript, array( 'jquery' ) );
80
-
81
- $arr = array(
82
- "url" => $url,
83
- "action" => "tracking_general"
84
- );
85
- wp_localize_script( $uniqId . '-god-js', 'configGodTrackingGeneral', $arr );
86
-
87
- wp_enqueue_script( $uniqId . '-god-js' );
88
- }
89
-
90
-
91
-
92
- }
93
-
94
-
95
-
96
-
97
-
98
-
99
-
100
-
101
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
wpgod/src/WPGod/Helpers/GodEnvironmentInfo.php DELETED
@@ -1,107 +0,0 @@
1
- <?php
2
-
3
- namespace WPGodWpseopress\Helpers;
4
-
5
- use WPGodWpseopress\Models\HelperInterface;
6
-
7
- /**
8
- * GodServerInfo
9
- *
10
- * @author Thomas DENEULIN <contact@wp-god.com>
11
- * @version 2.0.0
12
- * @since 1.0.0
13
- */
14
- class GodEnvironmentInfo implements HelperInterface {
15
-
16
- public function getThemeData(){
17
- if ( get_bloginfo( 'version' ) < '3.4' ) {
18
- $themeData = get_theme_data( get_stylesheet_directory() . '/style.css' );
19
- $theme = $themeData['Name'] . ' ' . $themeData['Version'];
20
- } else {
21
- $themeData = wp_get_theme();
22
- $theme = $themeData->Name . ' ' . $themeData->Version;
23
- }
24
-
25
- return array(
26
- "theme" => $theme,
27
- "theme_data" => $themeData
28
- );
29
- }
30
-
31
- public function getAllDataEnvironment(){
32
-
33
- $data = array();
34
- try {
35
-
36
- $themeData = $this->getThemeData();
37
- $data['admin_email'] = get_bloginfo( 'admin_email' );
38
- $data['locale'] = get_locale();
39
- $data["multisite"] = is_multisite();
40
- $data["site_url"] = site_url();
41
- $data["home_url"] = home_url();
42
- $data["wp_version"] = get_bloginfo( 'version' );
43
- $data["permalink_structure"] = get_option( 'permalink_structure' );
44
- $data["active_theme"] = $themeData["theme"];
45
-
46
- $data["registered_post_stati"] = implode( ', ', get_post_stati());
47
- $data["wp_debug"] = defined( 'WP_DEBUG' )? WP_DEBUG : false;
48
-
49
-
50
- return $data;
51
-
52
- } catch (\Exception $e) {
53
- return $data;
54
- }
55
-
56
- }
57
-
58
- public function getPluginData($pluginFile){
59
- if ( ! function_exists( 'get_plugins' ) ) {
60
- require_once ABSPATH . 'wp-admin/includes/plugin.php';
61
- }
62
-
63
- $plugins = get_plugins();
64
- $active_plugins = get_option( 'active_plugins', array() );
65
-
66
- $pluginData = null;
67
- foreach ( $plugins as $plugin_path => $plugin ) {
68
- if ( ! in_array( $plugin_path, $active_plugins ) || $plugin_path != $pluginFile)
69
- continue;
70
-
71
- $pluginData = $plugin;
72
- break;
73
- }
74
-
75
- return array(
76
- "plugin_version" => $pluginData['Version']
77
- );
78
- }
79
-
80
- public function getPluginDataMultisite($pluginFile){
81
-
82
- if ( !is_multisite() ){
83
- return false;
84
- }
85
-
86
- $plugins = wp_get_active_network_plugins();
87
- $active_plugins = get_site_option( 'active_sitewide_plugins', array() );
88
- $pluginData = null;
89
-
90
- foreach ( $plugins as $plugin_path ) {
91
- $plugin_base = plugin_basename( $plugin_path );
92
-
93
- if ( ! array_key_exists( $plugin_base, $active_plugins ) || $plugin_path != $pluginFile )
94
- continue;
95
-
96
- $pluginData = $plugin;
97
- break;
98
- }
99
-
100
- return array(
101
- "plugin_version" => $pluginData['Version']
102
- );
103
- }
104
-
105
- }
106
-
107
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
wpgod/src/WPGod/Helpers/GodError.php DELETED
@@ -1,73 +0,0 @@
1
- <?php
2
-
3
- namespace WPGodWpseopress\Helpers;
4
-
5
- use WPGodWpseopress\Models\HelperInterface;
6
-
7
- /**
8
- * GodError
9
- *
10
- * @author Thomas DENEULIN <contact@wp-god.com>
11
- * @version 2.0.0
12
- * @since 1.0.0
13
- */
14
- class GodError implements HelperInterface {
15
-
16
- protected $errors;
17
-
18
- protected $froms;
19
-
20
- public function __construct(){
21
- $this->errors = apply_filters("_god_list_errors",
22
- array(
23
- 0 => 'E_UNKNOWN',
24
- 1 => 'E_ERROR',
25
- 2 => 'E_WARNING',
26
- 4 => 'E_PARSE',
27
- 8 => 'E_NOTICE',
28
- 16 => 'E_CORE_ERROR',
29
- 32 => 'E_CORE_WARNING',
30
- 64 => 'E_COMPILE_ERROR',
31
- 128 => 'E_COMPILE_WARNING',
32
- 256 => 'E_USER_ERROR',
33
- 512 => 'E_USER_WARNING',
34
- 1024 => 'E_USER_NOTICE',
35
- 2048 => 'E_STRICT',
36
- 4096 => 'E_RECOVERABLE_ERROR',
37
- 8192 => 'E_DEPRECATED',
38
- 16384 => 'E_USER_DEPRECATED',
39
- 32767 => 'E_ALL'
40
- )
41
- );
42
-
43
- }
44
-
45
- public function getErrors(){
46
- return $this->errors;
47
- }
48
-
49
- public function getFroms(){
50
- return $this->froms;
51
- }
52
-
53
-
54
- public function getStringError($errno){
55
- $errors = self::getErrors();
56
-
57
- if(array_key_exists($errno, $errors)){
58
- return $errors[$errno];
59
- }
60
-
61
- return 'E_UNKNOWN';
62
- }
63
-
64
- }
65
-
66
-
67
-
68
-
69
-
70
-
71
-
72
-
73
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
wpgod/src/WPGod/Helpers/GodServerInfo.php DELETED
@@ -1,101 +0,0 @@
1
- <?php
2
-
3
- namespace WPGodWpseopress\Helpers;
4
-
5
- use WPGodWpseopress\Models\HelperInterface;
6
-
7
- /**
8
- * GodServerInfo
9
- *
10
- * @author Thomas DENEULIN <contact@wp-god.com>
11
- * @version 2.0.0
12
- * @since 1.0.0
13
- */
14
- class GodServerInfo implements HelperInterface {
15
-
16
-
17
- public function getInfosServerForSavePost(){
18
- $data["is_ajax"] = (defined('DOING_AJAX') && DOING_AJAX) ? true : false;
19
- $data['HTTP_HOST'] = esc_html( $_SERVER['HTTP_HOST'] );
20
- $data['SERVER_ADDR'] = $_SERVER['SERVER_ADDR'];
21
- $data['SERVER_PORT'] = $_SERVER['SERVER_PORT'];
22
- $data['REQUEST_URI'] = str_replace( '&amp;nbsp;', '&nbsp;', esc_html( $_SERVER['REQUEST_URI'] ) );
23
- $data["php_safe_mode"] = ini_get( 'safe_mode' );
24
- $data["php_memory_limit"] = ini_get( 'memory_limit' );
25
- $data["php_upload_max_size"] = ini_get( 'upload_max_filesize' );
26
- $data["php_post_max_size"] = ini_get( 'post_max_size' );
27
- $data["php_upload_max_filesize"] = ini_get( 'upload_max_filesize' );
28
- $data["php_time_limit"] = ini_get( 'max_execution_time' );
29
- $data["php_max_input_vars"] = ini_get( 'max_input_vars' );
30
- $data["php_arg_separator"] = ini_get( 'arg_separator.output' );
31
- $data["php_allow_url_file_open"] = ini_get( 'allow_url_fopen' );
32
- $data["wp_memory_limit"] = WP_MEMORY_LIMIT;
33
- $data["session"] = isset( $_SESSION );
34
- $data["cookies"] = ini_get( 'session.use_cookies' );
35
- $data["only_cookies"] = ini_get( 'session.use_only_cookies' );
36
- $data["display_errors"] = ini_get( 'display_errors' );
37
- $data["fsockopen"] = function_exists( 'fsockopen' );
38
- $data["curl"] = function_exists( 'curl_init' );
39
- $data["soap"] = class_exists( 'SoapClient');
40
- $data["suhosin"] = extension_loaded( 'suhosin' );
41
-
42
- $data["active_plugins"] = array();
43
- $data["network_active_plugins"] = array();
44
-
45
- if ( ! function_exists( 'get_plugins' ) ) {
46
- require_once ABSPATH . 'wp-admin/includes/plugin.php';
47
- }
48
- $plugins = get_plugins();
49
- $active_plugins = get_option( 'active_plugins', array() );
50
-
51
- $i = 0;
52
- foreach ( $plugins as $plugin_path => $plugin ) {
53
- if ( ! in_array( $plugin_path, $active_plugins ) )
54
- continue;
55
- $data["active_plugins"][$i]["name"] = $plugin['Name'];
56
- $data["active_plugins"][$i]["version"] = $plugin['Version'];
57
- $i++;
58
- }
59
-
60
- if ( is_multisite() ){
61
- $i = 0;
62
- $plugins = wp_get_active_network_plugins();
63
- $active_plugins = get_site_option( 'active_sitewide_plugins', array() );
64
-
65
- foreach ( $plugins as $plugin_path ) {
66
- $plugin_base = plugin_basename( $plugin_path );
67
-
68
- if ( ! array_key_exists( $plugin_base, $active_plugins ) )
69
- continue;
70
-
71
- $plugin = get_plugin_data( $plugin_path );
72
-
73
- $data["network_active_plugins"][$i]["name"] = $plugin['Name'];
74
- $data["network_active_plugins"][$i]["version"] = $plugin['Version'];
75
- $i++;
76
- }
77
- }
78
-
79
-
80
-
81
- return $data;
82
- }
83
-
84
- public function getTrackingServerData(){
85
-
86
- $data = array();
87
- if(function_exists("mysql_get_server_info")){
88
- $data["mysql_version"] = mysql_get_server_info();
89
- }
90
-
91
- $data["web_server"] = $_SERVER['SERVER_SOFTWARE'];
92
- $data['server_addr'] = $_SERVER['SERVER_ADDR'];
93
- $data["php_version"] = PHP_VERSION;
94
-
95
- return $data;
96
- }
97
-
98
-
99
- }
100
-
101
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
wpgod/src/WPGod/Helpers/GodTypeDevelopment.php DELETED
@@ -1,21 +0,0 @@
1
- <?php
2
-
3
- namespace WPGodWpseopress\Helpers;
4
-
5
-
6
- /**
7
- * GodTypeDevelopment
8
- *
9
- * @author Thomas DENEULIN <contact@wp-god.com>
10
- * @version 2.0.0
11
- * @since 1.0.0
12
- */
13
- abstract class GodTypeDevelopment {
14
-
15
- const PLUGIN = "plugin";
16
- const THEME = "theme";
17
- const SITE = "site";
18
- const MU_PLUGIN = "mu-plugin";
19
- }
20
-
21
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
wpgod/src/WPGod/Models/GodHandlerInterface.php DELETED
@@ -1,34 +0,0 @@
1
- <?php
2
-
3
-
4
- namespace WPGodWpseopress\Models;
5
-
6
- /**
7
- *
8
- * @version 1.0.0
9
- * @since 1.0.0
10
- *
11
- * @author Thomas DENEULIN <contact@wp-god.com>
12
- *
13
- */
14
- interface GodHandlerInterface{
15
- /**
16
- *
17
- * @version 1.0.0
18
- * @version 1.0.0
19
- * @access public
20
- *
21
- * @return void
22
- */
23
- public function godErrorHandler($code, $message, $file, $line, $ctx);
24
-
25
- /**
26
- *
27
- * @version 1.0.0
28
- * @version 1.0.0
29
- * @access public
30
- *
31
- * @return void
32
- */
33
- public function godErrorShutdownHandler();
34
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
wpgod/src/WPGod/Models/HelperInterface.php DELETED
@@ -1,14 +0,0 @@
1
- <?php
2
-
3
-
4
- namespace WPGodWpseopress\Models;
5
-
6
- /**
7
- *
8
- * @version 2.0.0
9
- * @since 2.0.0
10
- *
11
- * @author Thomas DENEULIN <contact@wp-god.com>
12
- *
13
- */
14
- interface HelperInterface{}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
wpgod/src/WPGod/Models/HooksInterface.php DELETED
@@ -1,25 +0,0 @@
1
- <?php
2
-
3
-
4
- namespace WPGodWpseopress\Models;
5
-
6
- /**
7
- *
8
- * @version 1.0.0
9
- * @since 1.0.0
10
- *
11
- * @author Thomas DENEULIN <contact@wp-god.com>
12
- *
13
- */
14
- interface HooksInterface{
15
- /**
16
- * Execute hooks
17
- *
18
- * @version 1.0.0
19
- * @version 1.0.0
20
- * @access public
21
- *
22
- * @return void
23
- */
24
- public function hooks();
25
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
wpgod/src/WPGod/Models/ServiceInterface.php DELETED
@@ -1,14 +0,0 @@
1
- <?php
2
-
3
-
4
- namespace WPGodWpseopress\Models;
5
-
6
- /**
7
- *
8
- * @version 1.0.0
9
- * @since 1.0.0
10
- *
11
- * @author Thomas DENEULIN <contact@wp-god.com>
12
- *
13
- */
14
- interface ServiceInterface{}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
wpgod/src/WPGod/Models/Specification/AbstractSpecification.php DELETED
@@ -1,55 +0,0 @@
1
- <?php
2
- namespace WPGodWpseopress\Models\Specification;
3
-
4
- use WPGodWpseopress\Models\Specification\SpecificationInterface;
5
- use WPGodWpseopress\Models\Specification\AndX;
6
- use WPGodWpseopress\Models\Specification\OrX;
7
- use WPGodWpseopress\Models\Specification\NotX;
8
-
9
- /**
10
- * @version 1.0.0
11
- * @since 1.0.0
12
- *
13
- * @author Thomas DENEULIN <contact@wp-god.com>
14
- */
15
- abstract class AbstractSpecification implements SpecificationInterface
16
- {
17
- /**
18
- *
19
- * @param $item
20
- *
21
- * @return bool
22
- */
23
- abstract public function isSatisfiedBy($item);
24
-
25
- /**
26
- *
27
- * @param SpecificationInterface $spec
28
- *
29
- * @return SpecificationInterface
30
- */
31
- public function andX(SpecificationInterface $spec)
32
- {
33
- return new AndX($this, $spec);
34
- }
35
-
36
- /**
37
- *
38
- * @param SpecificationInterface $spec
39
- *
40
- * @return SpecificationInterface
41
- */
42
- public function orX(SpecificationInterface $spec)
43
- {
44
- return new OrX($this, $spec);
45
- }
46
-
47
- /**
48
- *
49
- * @return SpecificationInterface
50
- */
51
- public function notX()
52
- {
53
- return new NotX($this);
54
- }
55
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
wpgod/src/WPGod/Models/Specification/AndX.php DELETED
@@ -1,39 +0,0 @@
1
- <?php
2
- namespace WPGodWpseopress\Models\Specification;
3
-
4
- use WPGodWpseopress\Models\Specification\AbstractSpecification;
5
-
6
- /**
7
- * @version 1.0.0
8
- * @since 1.0.0
9
- *
10
- * @author Thomas DENEULIN <contact@wp-god.com>
11
- */
12
- class AndX extends AbstractSpecification
13
- {
14
-
15
- protected $left;
16
- protected $right;
17
-
18
- /**
19
- *
20
- * @param SpecificationInterface $left
21
- * @param SpecificationInterface $right
22
- */
23
- public function __construct(SpecificationInterface $left, SpecificationInterface $right)
24
- {
25
- $this->left = $left;
26
- $this->right = $right;
27
- }
28
-
29
- /**
30
- *
31
- * @param $item
32
- *
33
- * @return bool
34
- */
35
- public function isSatisfiedBy($item)
36
- {
37
- return $this->left->isSatisfiedBy($item) && $this->right->isSatisfiedBy($item);
38
- }
39
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
wpgod/src/WPGod/Models/Specification/ContainsSpecification.php DELETED
@@ -1,22 +0,0 @@
1
- <?php
2
-
3
- namespace WPGodWpseopress\Models\Specification;
4
-
5
- use WPGodWpseopress\Models\Specification\AbstractSpecification;
6
-
7
- class ContainsSpecification extends AbstractSpecification
8
- {
9
- public function __construct($string){
10
- $this->string = $string;
11
- }
12
-
13
- public function isSatisfiedBy($item){
14
- $pos = strpos($item, $this->string);
15
-
16
- if ($pos === false) {
17
- return false;
18
- } else {
19
- return true;
20
- }
21
- }
22
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
wpgod/src/WPGod/Models/Specification/EqualsSpecification.php DELETED
@@ -1,16 +0,0 @@
1
- <?php
2
-
3
- namespace WPGodWpseopress\Models\Specification;
4
-
5
- use WPGodWpseopress\Models\Specification\AbstractSpecification;
6
-
7
- class EqualsSpecification extends AbstractSpecification
8
- {
9
- public function __construct($string){
10
- $this->string = $string;
11
- }
12
-
13
- public function isSatisfiedBy($item){
14
- return $this->string == $item;
15
- }
16
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
wpgod/src/WPGod/Models/Specification/NotX.php DELETED
@@ -1,36 +0,0 @@
1
- <?php
2
- namespace WPGodWpseopress\Models\Specification;
3
-
4
- use WPGodWpseopress\Models\Specification\AbstractSpecification;
5
-
6
- /**
7
- * @version 1.0.0
8
- * @since 1.0.0
9
- *
10
- * @author Thomas DENEULIN <contact@wp-god.com>
11
- */
12
- class NotX extends AbstractSpecification
13
- {
14
-
15
- protected $specification;
16
-
17
- /**
18
- *
19
- * @param SpecificationInterface $specification
20
- */
21
- public function __construct(SpecificationInterface $specification)
22
- {
23
- $this->specification = $specification;
24
- }
25
-
26
- /**
27
- *
28
- * @param $item
29
- *
30
- * @return bool
31
- */
32
- public function isSatisfiedBy($item)
33
- {
34
- return !$this->specification->isSatisfiedBy($item);
35
- }
36
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
wpgod/src/WPGod/Models/Specification/OrX.php DELETED
@@ -1,40 +0,0 @@
1
- <?php
2
- namespace WPGodWpseopress\Models\Specification;
3
-
4
- use WPGodWpseopress\Models\Specification\AbstractSpecification;
5
-
6
- /**
7
- * @version 1.0.0
8
- * @since 1.0.0
9
- *
10
- * @author Thomas DENEULIN <contact@wp-god.com>
11
- */
12
- class OrX extends AbstractSpecification
13
- {
14
-
15
- protected $left;
16
-
17
- protected $right;
18
-
19
- /**
20
- *
21
- * @param SpecificationInterface $left
22
- * @param SpecificationInterface $right
23
- */
24
- public function __construct(SpecificationInterface $left, SpecificationInterface $right)
25
- {
26
- $this->left = $left;
27
- $this->right = $right;
28
- }
29
-
30
- /**
31
- *
32
- * @param $item
33
- *
34
- * @return bool
35
- */
36
- public function isSatisfiedBy($item)
37
- {
38
- return $this->left->isSatisfiedBy($item) || $this->right->isSatisfiedBy($item);
39
- }
40
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
wpgod/src/WPGod/Models/Specification/SpecificationInterface.php DELETED
@@ -1,43 +0,0 @@
1
- <?php
2
- namespace WPGodWpseopress\Models\Specification;
3
-
4
-
5
- /**
6
- * @version 1.0.0
7
- * @since 1.0.0
8
- *
9
- * @author Thomas DENEULIN <contact@wp-god.com>
10
- */
11
- interface SpecificationInterface
12
- {
13
- /**
14
- * @version 1.0.0
15
- * @since 1.0.0
16
- *
17
- *
18
- * @return bool
19
- */
20
- public function isSatisfiedBy($item);
21
-
22
- /**
23
- * @version 1.0.0
24
- * @since 1.0.0
25
- *
26
- * @param SpecificationInterface $spec
27
- */
28
- public function andX(SpecificationInterface $spec);
29
-
30
- /**
31
- * @version 1.0.0
32
- * @since 1.0.0
33
- *
34
- * @param SpecificationInterface $spec
35
- */
36
- public function orX(SpecificationInterface $spec);
37
-
38
- /**
39
- * @version 1.0.0
40
- * @since 1.0.0
41
- */
42
- public function notX();
43
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
wpgod/src/WPGod/Services/GodAbstractService.php DELETED
@@ -1,71 +0,0 @@
1
- <?php
2
- namespace WPGodWpseopress\Services;
3
-
4
- use WPGodWpseopress\Models\ServiceInterface;
5
- use WPGodWpseopress\Models\HelperInterface;
6
-
7
- /**
8
- * @version 2.0.0
9
- * @since 2.0.0
10
- *
11
- * @author Thomas DENEULIN <contact@wp-god.com>
12
- */
13
- abstract class GodAbstractService
14
- {
15
-
16
- protected $services;
17
-
18
- protected $helpers;
19
-
20
- public function __construct($services = array(), $helpers = array()){
21
- $this->setObjects($services);
22
- $this->setObjects($helpers);
23
- }
24
-
25
- public function setObjects($objects){
26
-
27
- foreach ($objects as $key => $value) {
28
- $nameClass = join('', array_slice(explode('\\', get_class($value)), -1));
29
-
30
- if($value instanceOf ServiceInterface){
31
- $this->services[$nameClass] = $value;
32
- }
33
- else if($value instanceOf HelperInterface){
34
- $this->helpers[$nameClass] = $value;
35
- }
36
- }
37
-
38
- return $this;
39
- }
40
-
41
- public function getServices(){
42
- return $this->services;
43
- }
44
-
45
-
46
- public function getObject($key, $type = "service"){
47
- if($type === "service"){
48
- if(!empty($this->services) && array_key_exists($key, $this->services) && $this->services[$key] instanceOf ServiceInterface){
49
- return $this->services[$key];
50
- }
51
- }
52
- else if($type === "helper"){
53
- if(!empty($this->helpers) && array_key_exists($key, $this->helpers) && $this->helpers[$key] instanceOf HelperInterface){
54
- return $this->helpers[$key];
55
- }
56
- }
57
-
58
- return null;
59
- }
60
-
61
- public function getService($key){
62
- return $this->getObject($key);
63
- }
64
-
65
- public function getHelper($key){
66
- return $this->getObject($key, "helper");
67
- }
68
-
69
-
70
-
71
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
wpgod/src/WPGod/Services/GodApi.php DELETED
@@ -1,148 +0,0 @@
1
- <?php
2
-
3
- namespace WPGodWpseopress\Services;
4
-
5
- use WPGodWpseopress\Models\ServiceInterface;
6
- use WPGodWpseopress\WPGod;
7
-
8
- class GodApi implements ServiceInterface
9
- {
10
-
11
- public static $NAME_TRANSIENT_OTHER = "wpgod_580f97c174717_site";
12
-
13
- public static $NAME_TRANSIENT_ALREADY_CHECK = "wpgod_580f97c174754_already";
14
-
15
- public static $LAST_CHECK_TRACKING_GENERAL = "wpgod_580f97c17478b_tracking_g";
16
-
17
- public function __construct($params){
18
-
19
- $this->basename = (isset($params["basename"])) ? $params["basename"] : null;
20
- $this->pluginFile = (isset($params["plugin_file"])) ? $params["plugin_file"] : null;
21
- $this->preventUser = (isset($params["prevent_user"])) ? $params["prevent_user"] : null;
22
- $this->typeDevelopment = (isset($params["type_development"])) ? $params["type_development"] : null;
23
- $this->token = (isset($params["token"])) ? $params["token"] : null;
24
- $this->nameTransient = (isset($params["name_transient"])) ? $params["name_transient"] : "_god_save_errors";
25
- $this->environment = (isset($params["environment"])) ? $params["environment"] : null;
26
- $this->version = (isset($params["version"])) ? $params["version"] : null;
27
- }
28
-
29
- public static function getLastCheckTrackingGeneral(){
30
- return get_option(self::$LAST_CHECK_TRACKING_GENERAL);
31
- }
32
-
33
- public static function initLastCheckTrackingGeneral(){
34
- update_option(self::$LAST_CHECK_TRACKING_GENERAL, time());
35
- }
36
-
37
- public static function getNameTransientOtherStatic(){
38
- return self::$NAME_TRANSIENT_OTHER;
39
- }
40
-
41
- public static function getNameTransientAlreadyCheck(){
42
- return self::$NAME_TRANSIENT_ALREADY_CHECK;
43
- }
44
-
45
- public function getPreventUser(){
46
- return $this->preventUser;
47
- }
48
-
49
- public function getPluginFile(){
50
- return $this->pluginFile;
51
- }
52
-
53
- public function getVersion(){
54
- return $this->version;
55
- }
56
-
57
- public function getEnvironment(){
58
- return $this->environment;
59
- }
60
-
61
- public function getBasename(){
62
- return $this->basename;
63
- }
64
-
65
-
66
- public function getClientSecret(){
67
- return $this->clientSecret;
68
- }
69
-
70
- public function getTypeDevelopment(){
71
- return $this->typeDevelopment;
72
- }
73
-
74
- public function getNameTransient(){
75
- return $this->nameTransient;
76
- }
77
-
78
- public function serializeError($params){
79
- return md5(vsprintf("%s-%s-%s-%s", array($params["file"], $params["line"], $params["code"], $params["message"])));
80
- }
81
-
82
- public function saveError($params, $nameTransient = null){
83
-
84
- $nameTransient = ($nameTransient == null) ? $this->getNameTransient() : $nameTransient;
85
-
86
- $serialize = $this->serializeError($params);
87
-
88
- if ( false === ( $transientError = get_transient( $nameTransient ) ) ) {
89
- $transientError = array();
90
- $transientError[$serialize] = $params;
91
- set_transient($nameTransient, $transientError);
92
- }
93
- else{
94
-
95
- if(!array_key_exists($serialize, $transientError)){
96
- $transientError[$serialize] = $params;
97
- set_transient($nameTransient, $transientError);
98
- }
99
- }
100
-
101
- }
102
-
103
- public function sendTrackingGeneral($params){
104
- $url = sprintf("%s/trackings.json", WPGod::GOD_URL_API);
105
- $data = json_encode($params, true);
106
-
107
- $this->callApi($url, $data);
108
-
109
- }
110
-
111
- public function sendError($params){
112
- $url = sprintf("%s/errors.json", WPGod::GOD_URL_API);
113
- $data = json_encode($params, true);
114
-
115
- $this->callApi($url, $data);
116
-
117
- }
118
-
119
- public function callApi($url, $data){
120
-
121
- $bearer = sprintf("Authorization: Bearer %s", $this->token);
122
- $environment = sprintf("Environment: %s", $this->getEnvironment());
123
-
124
- try {
125
-
126
- $ch = curl_init($url);
127
- curl_setopt($ch, CURLOPT_POST, 1);
128
- curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
129
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
130
- curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
131
- curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15);
132
- curl_setopt($ch, CURLOPT_TIMEOUT, 30);
133
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
134
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
135
- curl_setopt($ch, CURLOPT_HTTPHEADER,
136
- array(
137
- "Content-Type: application/json",
138
- "Accept: application/json",
139
- $bearer,
140
- $environment
141
- )
142
- );
143
- $result = curl_exec($ch);
144
- } catch (Exception $e) {}
145
- }
146
-
147
-
148
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
wpgod/src/WPGod/Services/GodAuthorizeError.php DELETED
@@ -1,69 +0,0 @@
1
- <?php
2
-
3
- namespace WPGodWpseopress\Services;
4
-
5
- use WPGodWpseopress\Models\GodHandlerInterface;
6
- use WPGodWpseopress\Services\GodAbstractService;
7
- use WPGodWpseopress\Helpers\GodTypeDevelopment;
8
- use WPGodWpseopress\Models\ServiceInterface;
9
-
10
-
11
- class GodAuthorizeError extends GodAbstractService implements ServiceInterface
12
- {
13
-
14
- public function authorizeHandler($file, $code){
15
- $basename = $this->getService("GodApi")->getBasename();
16
- $typeDevelopment = $this->getService("GodApi")->getTypeDevelopment();
17
-
18
- if (in_array($typeDevelopment, array(GodTypeDevelopment::PLUGIN, GodTypeDevelopment::MU_PLUGIN, GodTypeDevelopment::THEME))) {
19
- switch ($typeDevelopment) {
20
- case 'plugin':
21
- $verify = sprintf("%s/%s", PLUGINDIR, $basename);
22
- break;
23
- case 'mu-plugin':
24
- $verify = sprintf("%s/%s", WPMU_PLUGIN_DIR, $basename);
25
- break;
26
- case 'theme':
27
- $verify = sprintf("themes/%s", $basename);
28
- break;
29
- }
30
-
31
- if(strpos(str_replace("\\", "/", $file), $verify) === false){
32
- return false;
33
- }
34
-
35
- }
36
-
37
- if($this->getService("GodFilesRules")->isInformationIgnore("file_dir", $file) ||
38
- $this->getService("GodFilesRules")->isInformationIgnore("code_error", $code)){
39
- return false;
40
- }
41
-
42
- return true;
43
-
44
- }
45
-
46
- public function checkAlreadyTrack($params, $nameTransient = null){
47
- $apiServices = $this->getService("GodApi");
48
- $nameTransient = ($nameTransient == null) ? $apiServices::getNameTransientAlreadyCheck() : $nameTransient;
49
-
50
- $serialize = $apiServices->serializeError($params);
51
- if ( false === ( $transientAlreadyCheckError = get_transient( $nameTransient ) ) ) {
52
- $transientAlreadyCheckError = array();
53
- $transientAlreadyCheckError[$serialize] = 1;
54
- set_transient($nameTransient, $transientAlreadyCheckError);
55
- return false;
56
- }
57
- else{
58
-
59
- if(!array_key_exists($serialize, $transientAlreadyCheckError)){
60
- $transientAlreadyCheckError[$serialize] = 1;
61
- set_transient($nameTransient, $transientAlreadyCheckError);
62
- return false;
63
- }
64
-
65
- return true;
66
- }
67
- }
68
-
69
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
wpgod/src/WPGod/Services/GodCheckErrors.php DELETED
@@ -1,86 +0,0 @@
1
- <?php
2
-
3
- namespace WPGodWpseopress\Services;
4
-
5
- use WPGodWpseopress\Models\ServiceInterface;
6
- use WPGodWpseopress\Models\HooksInterface;
7
- use WPGodWpseopress\WPGod;
8
-
9
- class GodCheckErrors extends GodAbstractService implements HooksInterface{
10
-
11
-
12
- public function hooks(){
13
- add_action('init', array($this, 'checkOtherTransient'), 0);
14
- add_action('init', array($this, 'searchErrors'), 1);
15
- add_action( 'wp_ajax_send_error', array($this, 'prefix_ajax_send_error') );
16
- add_action( 'wp_ajax_nopriv_send_error', array($this, 'prefix_ajax_send_error') );
17
- }
18
-
19
- public function prefix_ajax_send_error(){
20
- $this->sendErrors();
21
- }
22
-
23
- public function searchErrors(){
24
- $transient = get_transient( $this->getService('GodApi')->getNameTransient());
25
-
26
- if(!$transient || empty($transient)){
27
- return;
28
- }
29
-
30
- if(is_admin()){
31
- add_action("admin_enqueue_scripts", array($this, "enqueue_script_god"));
32
- }
33
- else{
34
- add_action("wp_enqueue_scripts", array($this, "enqueue_script_god"));
35
- }
36
- }
37
-
38
- public function enqueue_script_god(){
39
- $url = admin_url("admin-ajax.php");
40
- $urlRegisterScript = sprintf("%s/%s.js", WPGod::$GOD_PATH_PUBLIC_JS, "send-error");
41
- $uniqId = uniqid();
42
- wp_register_script( $uniqId . '-god-js', $urlRegisterScript, array( 'jquery' ) );
43
-
44
- $arr = array(
45
- "url" => $url,
46
- "action" => "send_error"
47
- );
48
- wp_localize_script( $uniqId . '-god-js', 'configGodError', $arr );
49
-
50
- wp_enqueue_script( $uniqId . '-god-js' );
51
- }
52
-
53
- public function checkOtherTransient(){
54
- $godApi = $this->getService('GodApi');
55
- $name = $godApi::getNameTransientOtherStatic();
56
- $transient = get_transient($name);
57
-
58
- if(!$transient || empty($transient)){
59
- return;
60
- }
61
-
62
- foreach ($transient as $key => $value) {
63
- if($this->getService('GodAuthorizeError')->authorizeHandler($value["file"], $value["code"])){
64
- $this->getService("GodApi")->sendError($value);
65
- }
66
- }
67
-
68
- delete_transient($name);
69
-
70
- }
71
-
72
- public function sendErrors(){
73
- $name = $this->getService("GodApi")->getNameTransient();
74
- $transient = get_transient($name);
75
-
76
- if(!$transient || empty($transient)){
77
- return;
78
- }
79
-
80
- foreach ($transient as $key => $value) {
81
- $this->getService("GodApi")->sendError($value);
82
- }
83
-
84
- delete_transient($name);
85
- }
86
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
wpgod/src/WPGod/Services/GodFilesRules.php DELETED
@@ -1,154 +0,0 @@
1
- <?php
2
-
3
- namespace WPGodWpseopress\Services;
4
-
5
- use WPGodWpseopress\Models\ServiceInterface;
6
- use WPGodWpseopress\Models\Specification\OrX;
7
- use WPGodWpseopress\Models\Specification\AndX;
8
- use WPGodWpseopress\Models\Specification\NotX;
9
- use WPGodWpseopress\Models\Specification\ContainsSpecification;
10
- use WPGodWpseopress\Models\Specification\EqualsSpecification;
11
-
12
-
13
- /**
14
- * GodFilesRules
15
- *
16
- * @author Thomas DENEULIN <contact@wp-god.com>
17
- * @version 1.0.0
18
- * @since 1.0.0
19
- */
20
- class GodFilesRules implements ServiceInterface {
21
- public function __construct($params = array()){
22
- $this->rulesIgnore = (isset($params["rules_ignore"])) ? $params["rules_ignore"] : array();
23
-
24
- $this->typeErrorRules = array(
25
- "code_error",
26
- "file_dir"
27
- );
28
-
29
- $this->conditionTest = array(
30
- "equals",
31
- "contains",
32
- "not-equals",
33
- "not-contains"
34
- );
35
- }
36
-
37
- public function getTypeErrorRules(){
38
- return $this->typeErrorRules;
39
- }
40
-
41
- public function getConditionTest(){
42
- return $this->conditionTest;
43
- }
44
-
45
- public function isInformationIgnore($type, $valueIgnore){
46
- $arraySpec = array();
47
- $result = false;
48
-
49
- if (!in_array($type, $this->typeErrorRules)) {
50
- return false;
51
- }
52
-
53
- if(!empty($this->rulesIgnore)){
54
- foreach ($this->rulesIgnore as $keyOr => $valueOr) {
55
- foreach ($valueOr as $keyAnd => $valueAnd) {
56
- if($valueAnd['type_error'] == $type){
57
- $conditionTest = "";
58
- $value = "";
59
-
60
- switch ($type) {
61
- case 'file_dir':
62
- $conditionTest = "contains";
63
- $value = $valueAnd["file"];
64
- break;
65
- case 'code_error':
66
- $conditionTest = "equals";
67
- $value = $valueAnd["code_error"];
68
- break;
69
- }
70
-
71
- $arraySpec[$keyOr][] = $this->getSpecificationFromConditionTest($conditionTest, $value);
72
- }
73
- }
74
- }
75
- }
76
-
77
-
78
- if(!empty($arraySpec)){
79
- $allSpecs = null;
80
- if(count($arraySpec) > 1){
81
- foreach ($arraySpec as $key => $value) {
82
- if (array_key_exists($key+1, $arraySpec)) {
83
- $allSpecs = ($allSpecs === null) ? new OrX($this->constructAndSpecification($value), $this->constructAndSpecification($arraySpec[$key+1])) : new OrX($allSpecs, $this->constructAndSpecification($arraySpec[$key+1]));
84
- }
85
- }
86
- }
87
- else{
88
- $arraySpec = array_values($arraySpec);
89
- $allSpecs = $this->constructAndSpecification($arraySpec[0]);
90
- }
91
-
92
- if ($allSpecs !== null) {
93
- $result = $allSpecs->isSatisfiedBy($valueIgnore);
94
- }
95
- }
96
-
97
- return $result;
98
-
99
-
100
- }
101
-
102
- private function constructAndSpecification($andSpecs){
103
- $andSpecification = null;
104
- if(!empty($andSpecs) && count($andSpecs) === 1){
105
- return $andSpecs[0];
106
- }
107
- else{
108
- foreach ($andSpecs as $key => $value) {
109
- if (array_key_exists($key+1, $andSpecs)) {
110
- $andSpecification = ($andSpecification === null) ? new AndX($value, $andSpecs[$key+1]) : new AndX($andSpecification, $andSpecs[$key+1]);
111
- }
112
- }
113
- }
114
-
115
- return $andSpecification;
116
- }
117
-
118
-
119
- public function getSpecificationFromConditionTest($conditionTest, $value){
120
- $stringChoice = new ContainsSpecification($conditionTest);
121
- $spec = "";
122
-
123
- if($stringChoice->isSatisfiedBy("not")){
124
- if($stringChoice->isSatisfiedBy("equals")){
125
- $spec = new NotX(new EqualsSpecification($value));
126
- }
127
- else{
128
- $spec = new NotX(new ContainsSpecification($value));
129
- }
130
- }
131
- else{
132
- if($stringChoice->isSatisfiedBy("equals")){
133
- $spec = new EqualsSpecification($value);
134
- }
135
- else{
136
- $spec = new ContainsSpecification($value);
137
- }
138
- }
139
-
140
- return $spec;
141
- }
142
-
143
-
144
-
145
- }
146
-
147
-
148
-
149
-
150
-
151
-
152
-
153
-
154
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
wpgod/src/WPGod/WPGod.php DELETED
@@ -1,164 +0,0 @@
1
- <?php
2
-
3
- namespace WPGodWpseopress;
4
-
5
- use WPGodWpseopress\Handler\GodErrorHandler;
6
- use WPGodWpseopress\Handler\GodTrackingHandler;
7
- use WPGodWpseopress\Handler\GodAdminNoticeHandler;
8
- use WPGodWpseopress\Helpers\GodError;
9
- use WPGodWpseopress\Helpers\GodServerInfo;
10
- use WPGodWpseopress\Helpers\GodEnvironmentInfo;
11
- use WPGodWpseopress\Helpers\GodTypeDevelopment;
12
- use WPGodWpseopress\Services\GodApi;
13
- use WPGodWpseopress\Services\GodFilesRules;
14
- use WPGodWpseopress\Services\GodCheckErrors;
15
- use WPGodWpseopress\Services\GodAuthorizeError;
16
-
17
- if ( ! defined( 'ABSPATH' ) ) exit;
18
-
19
-
20
- /**
21
- * WPGod
22
- *
23
- * @author Thomas DENEULIN <contact@wp-god.com>
24
- * @version 1.0.0
25
- * @since 1.0.0
26
- */
27
- class WPGod{
28
-
29
- public static $GOD_PATH_PUBLIC_JS;
30
-
31
- const PHP_VERSION_MINI = "5.4";
32
- const GOD_VERSION = "2.2";
33
- const GOD_URL_API = "https://api.wp-god.com/api/v1";
34
-
35
- protected $paramsObligatory = array(
36
- "basename",
37
- "type_development",
38
- "name_transient",
39
- "token",
40
- "environment"
41
- );
42
-
43
- protected $hooksServices = array();
44
-
45
- public function __construct($params){
46
- self::$GOD_PATH_PUBLIC_JS = plugin_dir_url(__FILE__) . "../../public/js";
47
-
48
- $missingParameters = 0;
49
-
50
- foreach ($this->paramsObligatory as $key => $value) {
51
- if(!array_key_exists($value, $params)){
52
- $missingParameters++;
53
- }
54
- }
55
-
56
- if($missingParameters === 0){
57
-
58
- $godApi = new GodApi($params);
59
- $godFilesRules = new GodFilesRules($params);
60
- $godAuthorizeError = new GodAuthorizeError(array(
61
- $godApi,
62
- $godFilesRules
63
- )
64
- );
65
-
66
- $pause = ($this->canBeTrigger()) ? false : true;
67
- $authorizeTracking = get_option("wpgod_seopress_allow_tracking");
68
- $pauseTrackingEnvironment = (!($params["type_development"] == GodTypeDevelopment::PLUGIN) || !$authorizeTracking);
69
-
70
- $this->hooksServices = array(
71
- "god_handler" => new GodErrorHandler(
72
- array(
73
- $godApi,
74
- $godFilesRules,
75
- $godAuthorizeError
76
- ),
77
- array(
78
- new GodError(),
79
- new GodServerInfo(),
80
- new GodEnvironmentInfo()
81
- ),
82
- $pause
83
- ),
84
- "god_tracking_handler" => new GodTrackingHandler(
85
- array(
86
- $godApi
87
- ),
88
- array(
89
- new GodEnvironmentInfo(),
90
- new GodServerInfo()
91
- ),
92
- $pauseTrackingEnvironment
93
- ),
94
- "god_check_errors" => new GodCheckErrors(
95
- array(
96
- $godApi,
97
- $godAuthorizeError
98
- )
99
- )
100
- );
101
-
102
- if($params["type_development"] == GodTypeDevelopment::PLUGIN){
103
- $this->hooksServices["god_admin_notice_handler"] = new GodAdminNoticeHandler(
104
- array(
105
- $godApi
106
- ),
107
- array(),
108
- (isset($params["prevent_user"])) ? $params["prevent_user"] : false
109
- );
110
- }
111
- }
112
- }
113
-
114
-
115
- protected function canBeTrigger(){
116
- if(strpos(__DIR__, "_wpgod") !== false){
117
- return true;
118
- }
119
-
120
- if(file_exists(WPMU_PLUGIN_DIR . '/_wpgod')){
121
- return false;
122
- }
123
-
124
- return true;
125
- }
126
-
127
-
128
- protected function canLoadedWPGod(){
129
-
130
- if ( version_compare( PHP_VERSION, self::PHP_VERSION_MINI, '<' ) ) {
131
- return false;
132
- }
133
-
134
- if(!function_exists('curl_version')){
135
- return false;
136
- }
137
-
138
- return true;
139
- }
140
-
141
- public function execute(){
142
-
143
- if ($this->canLoadedWPGod()){
144
- add_action( 'plugins_loaded' , array($this,'hooks'), 0);
145
- }
146
- }
147
-
148
- public function hooks(){
149
-
150
- foreach ($this->hooksServices as $key => $hook) {
151
- if($hook instanceOf HooksInterface){
152
- $hook->hooks();
153
- }
154
-
155
- $interfaces = class_implements($hook);
156
- foreach ($interfaces as $key => $value) {
157
- $pos = strpos($key, "HooksInterface");
158
- if($pos !== false){
159
- $hook->hooks();
160
- }
161
- }
162
- }
163
- }
164
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
wpgod/vendor/autoload.php DELETED
@@ -1,7 +0,0 @@
1
- <?php
2
-
3
- // autoload.php @generated by Composer
4
-
5
- require_once __DIR__ . '/composer' . '/autoload_real.php';
6
-
7
- return ComposerAutoloaderInit6ea64e24194a64d6eef9458bf8eb5c18::getLoader();
 
 
 
 
 
 
 
wpgod/vendor/composer/ClassLoader.php DELETED
@@ -1,413 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of Composer.
5
- *
6
- * (c) Nils Adermann <naderman@naderman.de>
7
- * Jordi Boggiano <j.boggiano@seld.be>
8
- *
9
- * For the full copyright and license information, please view the LICENSE
10
- * file that was distributed with this source code.
11
- */
12
-
13
- namespace Composer\Autoload;
14
-
15
- /**
16
- * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
17
- *
18
- * $loader = new \Composer\Autoload\ClassLoader();
19
- *
20
- * // register classes with namespaces
21
- * $loader->add('Symfony\Component', __DIR__.'/component');
22
- * $loader->add('Symfony', __DIR__.'/framework');
23
- *
24
- * // activate the autoloader
25
- * $loader->register();
26
- *
27
- * // to enable searching the include path (eg. for PEAR packages)
28
- * $loader->setUseIncludePath(true);
29
- *
30
- * In this example, if you try to use a class in the Symfony\Component
31
- * namespace or one of its children (Symfony\Component\Console for instance),
32
- * the autoloader will first look for the class under the component/
33
- * directory, and it will then fallback to the framework/ directory if not
34
- * found before giving up.
35
- *
36
- * This class is loosely based on the Symfony UniversalClassLoader.
37
- *
38
- * @author Fabien Potencier <fabien@symfony.com>
39
- * @author Jordi Boggiano <j.boggiano@seld.be>
40
- * @see http://www.php-fig.org/psr/psr-0/
41
- * @see http://www.php-fig.org/psr/psr-4/
42
- */
43
- class ClassLoader
44
- {
45
- // PSR-4
46
- private $prefixLengthsPsr4 = array();
47
- private $prefixDirsPsr4 = array();
48
- private $fallbackDirsPsr4 = array();
49
-
50
- // PSR-0
51
- private $prefixesPsr0 = array();
52
- private $fallbackDirsPsr0 = array();
53
-
54
- private $useIncludePath = false;
55
- private $classMap = array();
56
-
57
- private $classMapAuthoritative = false;
58
-
59
- public function getPrefixes()
60
- {
61
- if (!empty($this->prefixesPsr0)) {
62
- return call_user_func_array('array_merge', $this->prefixesPsr0);
63
- }
64
-
65
- return array();
66
- }
67
-
68
- public function getPrefixesPsr4()
69
- {
70
- return $this->prefixDirsPsr4;
71
- }
72
-
73
- public function getFallbackDirs()
74
- {
75
- return $this->fallbackDirsPsr0;
76
- }
77
-
78
- public function getFallbackDirsPsr4()
79
- {
80
- return $this->fallbackDirsPsr4;
81
- }
82
-
83
- public function getClassMap()
84
- {
85
- return $this->classMap;
86
- }
87
-
88
- /**
89
- * @param array $classMap Class to filename map
90
- */
91
- public function addClassMap(array $classMap)
92
- {
93
- if ($this->classMap) {
94
- $this->classMap = array_merge($this->classMap, $classMap);
95
- } else {
96
- $this->classMap = $classMap;
97
- }
98
- }
99
-
100
- /**
101
- * Registers a set of PSR-0 directories for a given prefix, either
102
- * appending or prepending to the ones previously set for this prefix.
103
- *
104
- * @param string $prefix The prefix
105
- * @param array|string $paths The PSR-0 root directories
106
- * @param bool $prepend Whether to prepend the directories
107
- */
108
- public function add($prefix, $paths, $prepend = false)
109
- {
110
- if (!$prefix) {
111
- if ($prepend) {
112
- $this->fallbackDirsPsr0 = array_merge(
113
- (array) $paths,
114
- $this->fallbackDirsPsr0
115
- );
116
- } else {
117
- $this->fallbackDirsPsr0 = array_merge(
118
- $this->fallbackDirsPsr0,
119
- (array) $paths
120
- );
121
- }
122
-
123
- return;
124
- }
125
-
126
- $first = $prefix[0];
127
- if (!isset($this->prefixesPsr0[$first][$prefix])) {
128
- $this->prefixesPsr0[$first][$prefix] = (array) $paths;
129
-
130
- return;
131
- }
132
- if ($prepend) {
133
- $this->prefixesPsr0[$first][$prefix] = array_merge(
134
- (array) $paths,
135
- $this->prefixesPsr0[$first][$prefix]
136
- );
137
- } else {
138
- $this->prefixesPsr0[$first][$prefix] = array_merge(
139
- $this->prefixesPsr0[$first][$prefix],
140
- (array) $paths
141
- );
142
- }
143
- }
144
-
145
- /**
146
- * Registers a set of PSR-4 directories for a given namespace, either
147
- * appending or prepending to the ones previously set for this namespace.
148
- *
149
- * @param string $prefix The prefix/namespace, with trailing '\\'
150
- * @param array|string $paths The PSR-4 base directories
151
- * @param bool $prepend Whether to prepend the directories
152
- *
153
- * @throws \InvalidArgumentException
154
- */
155
- public function addPsr4($prefix, $paths, $prepend = false)
156
- {
157
- if (!$prefix) {
158
- // Register directories for the root namespace.
159
- if ($prepend) {
160
- $this->fallbackDirsPsr4 = array_merge(
161
- (array) $paths,
162
- $this->fallbackDirsPsr4
163
- );
164
- } else {
165
- $this->fallbackDirsPsr4 = array_merge(
166
- $this->fallbackDirsPsr4,
167
- (array) $paths
168
- );
169
- }
170
- } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
171
- // Register directories for a new namespace.
172
- $length = strlen($prefix);
173
- if ('\\' !== $prefix[$length - 1]) {
174
- throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
175
- }
176
- $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
177
- $this->prefixDirsPsr4[$prefix] = (array) $paths;
178
- } elseif ($prepend) {
179
- // Prepend directories for an already registered namespace.
180
- $this->prefixDirsPsr4[$prefix] = array_merge(
181
- (array) $paths,
182
- $this->prefixDirsPsr4[$prefix]
183
- );
184
- } else {
185
- // Append directories for an already registered namespace.
186
- $this->prefixDirsPsr4[$prefix] = array_merge(
187
- $this->prefixDirsPsr4[$prefix],
188
- (array) $paths
189
- );
190
- }
191
- }
192
-
193
- /**
194
- * Registers a set of PSR-0 directories for a given prefix,
195
- * replacing any others previously set for this prefix.
196
- *
197
- * @param string $prefix The prefix
198
- * @param array|string $paths The PSR-0 base directories
199
- */
200
- public function set($prefix, $paths)
201
- {
202
- if (!$prefix) {
203
- $this->fallbackDirsPsr0 = (array) $paths;
204
- } else {
205
- $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
206
- }
207
- }
208
-
209
- /**
210
- * Registers a set of PSR-4 directories for a given namespace,
211
- * replacing any others previously set for this namespace.
212
- *
213
- * @param string $prefix The prefix/namespace, with trailing '\\'
214
- * @param array|string $paths The PSR-4 base directories
215
- *
216
- * @throws \InvalidArgumentException
217
- */
218
- public function setPsr4($prefix, $paths)
219
- {
220
- if (!$prefix) {
221
- $this->fallbackDirsPsr4 = (array) $paths;
222
- } else {
223
- $length = strlen($prefix);
224
- if ('\\' !== $prefix[$length - 1]) {
225
- throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
226
- }
227
- $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
228
- $this->prefixDirsPsr4[$prefix] = (array) $paths;
229
- }
230
- }
231
-
232
- /**
233
- * Turns on searching the include path for class files.
234
- *
235
- * @param bool $useIncludePath
236
- */
237
- public function setUseIncludePath($useIncludePath)
238
- {
239
- $this->useIncludePath = $useIncludePath;
240
- }
241
-
242
- /**
243
- * Can be used to check if the autoloader uses the include path to check
244
- * for classes.
245
- *
246
- * @return bool
247
- */
248
- public function getUseIncludePath()
249
- {
250
- return $this->useIncludePath;
251
- }
252
-
253
- /**
254
- * Turns off searching the prefix and fallback directories for classes
255
- * that have not been registered with the class map.
256
- *
257
- * @param bool $classMapAuthoritative
258
- */
259
- public function setClassMapAuthoritative($classMapAuthoritative)
260
- {
261
- $this->classMapAuthoritative = $classMapAuthoritative;
262
- }
263
-
264
- /**
265
- * Should class lookup fail if not found in the current class map?
266
- *
267
- * @return bool
268
- */
269
- public function isClassMapAuthoritative()
270
- {
271
- return $this->classMapAuthoritative;
272
- }
273
-
274
- /**
275
- * Registers this instance as an autoloader.
276
- *
277
- * @param bool $prepend Whether to prepend the autoloader or not
278
- */
279
- public function register($prepend = false)
280
- {
281
- spl_autoload_register(array($this, 'loadClass'), true, $prepend);
282
- }
283
-
284
- /**
285
- * Unregisters this instance as an autoloader.
286
- */
287
- public function unregister()
288
- {
289
- spl_autoload_unregister(array($this, 'loadClass'));
290
- }
291
-
292
- /**
293
- * Loads the given class or interface.
294
- *
295
- * @param string $class The name of the class
296
- * @return bool|null True if loaded, null otherwise
297
- */
298
- public function loadClass($class)
299
- {
300
- if ($file = $this->findFile($class)) {
301
- includeFile($file);
302
-
303
- return true;
304
- }
305
- }
306
-
307
- /**
308
- * Finds the path to the file where the class is defined.
309
- *
310
- * @param string $class The name of the class
311
- *
312
- * @return string|false The path if found, false otherwise
313
- */
314
- public function findFile($class)
315
- {
316
- // work around for PHP 5.3.0 - 5.3.2 https://bugs.php.net/50731
317
- if ('\\' == $class[0]) {
318
- $class = substr($class, 1);
319
- }
320
-
321
- // class map lookup
322
- if (isset($this->classMap[$class])) {
323
- return $this->classMap[$class];
324
- }
325
- if ($this->classMapAuthoritative) {
326
- return false;
327
- }
328
-
329
- $file = $this->findFileWithExtension($class, '.php');
330
-
331
- // Search for Hack files if we are running on HHVM
332
- if ($file === null && defined('HHVM_VERSION')) {
333
- $file = $this->findFileWithExtension($class, '.hh');
334
- }
335
-
336
- if ($file === null) {
337
- // Remember that this class does not exist.
338
- return $this->classMap[$class] = false;
339
- }
340
-
341
- return $file;
342
- }
343
-
344
- private function findFileWithExtension($class, $ext)
345
- {
346
- // PSR-4 lookup
347
- $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
348
-
349
- $first = $class[0];
350
- if (isset($this->prefixLengthsPsr4[$first])) {
351
- foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) {
352
- if (0 === strpos($class, $prefix)) {
353
- foreach ($this->prefixDirsPsr4[$prefix] as $dir) {
354
- if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
355
- return $file;
356
- }
357
- }
358
- }
359
- }
360
- }
361
-
362
- // PSR-4 fallback dirs
363
- foreach ($this->fallbackDirsPsr4 as $dir) {
364
- if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
365
- return $file;
366
- }
367
- }
368
-
369
- // PSR-0 lookup
370
- if (false !== $pos = strrpos($class, '\\')) {
371
- // namespaced class name
372
- $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
373
- . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
374
- } else {
375
- // PEAR-like class name
376
- $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
377
- }
378
-
379
- if (isset($this->prefixesPsr0[$first])) {
380
- foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
381
- if (0 === strpos($class, $prefix)) {
382
- foreach ($dirs as $dir) {
383
- if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
384
- return $file;
385
- }
386
- }
387
- }
388
- }
389
- }
390
-
391
- // PSR-0 fallback dirs
392
- foreach ($this->fallbackDirsPsr0 as $dir) {
393
- if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
394
- return $file;
395
- }
396
- }
397
-
398
- // PSR-0 include paths.
399
- if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
400
- return $file;
401
- }
402
- }
403
- }
404
-
405
- /**
406
- * Scope isolated include.
407
- *
408
- * Prevents access to $this/self from included files.
409
- */
410
- function includeFile($file)
411
- {
412
- include $file;
413
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
wpgod/vendor/composer/LICENSE DELETED
@@ -1,21 +0,0 @@
1
-
2
- Copyright (c) 2016 Nils Adermann, Jordi Boggiano
3
-
4
- Permission is hereby granted, free of charge, to any person obtaining a copy
5
- of this software and associated documentation files (the "Software"), to deal
6
- in the Software without restriction, including without limitation the rights
7
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- copies of the Software, and to permit persons to whom the Software is furnished
9
- to do so, subject to the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be included in all
12
- copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
- THE SOFTWARE.
21
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
wpgod/vendor/composer/autoload_classmap.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
-
3
- // autoload_classmap.php @generated by Composer
4
-
5
- $vendorDir = dirname(dirname(__FILE__));
6
- $baseDir = dirname($vendorDir);
7
-
8
- return array(
9
- );
 
 
 
 
 
 
 
 
 
wpgod/vendor/composer/autoload_namespaces.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
-
3
- // autoload_namespaces.php @generated by Composer
4
-
5
- $vendorDir = dirname(dirname(__FILE__));
6
- $baseDir = dirname($vendorDir);
7
-
8
- return array(
9
- );
 
 
 
 
 
 
 
 
 
wpgod/vendor/composer/autoload_psr4.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
-
3
- // autoload_psr4.php @generated by Composer
4
-
5
- $vendorDir = dirname(dirname(__FILE__));
6
- $baseDir = dirname($vendorDir);
7
-
8
- return array(
9
- 'WPGodWpseopress\\' => array($baseDir . '/src/WPGod'),
10
- );
 
 
 
 
 
 
 
 
 
 
wpgod/vendor/composer/autoload_real.php DELETED
@@ -1,45 +0,0 @@
1
- <?php
2
-
3
- // autoload_real.php @generated by Composer
4
-
5
- class ComposerAutoloaderInit6ea64e24194a64d6eef9458bf8eb5c18
6
- {
7
- private static $loader;
8
-
9
- public static function loadClassLoader($class)
10
- {
11
- if ('Composer\Autoload\ClassLoader' === $class) {
12
- require __DIR__ . '/ClassLoader.php';
13
- }
14
- }
15
-
16
- public static function getLoader()
17
- {
18
- if (null !== self::$loader) {
19
- return self::$loader;
20
- }
21
-
22
- spl_autoload_register(array('ComposerAutoloaderInit6ea64e24194a64d6eef9458bf8eb5c18', 'loadClassLoader'), true, true);
23
- self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit6ea64e24194a64d6eef9458bf8eb5c18', 'loadClassLoader'));
25
-
26
- $map = require __DIR__ . '/autoload_namespaces.php';
27
- foreach ($map as $namespace => $path) {
28
- $loader->set($namespace, $path);
29
- }
30
-
31
- $map = require __DIR__ . '/autoload_psr4.php';
32
- foreach ($map as $namespace => $path) {
33
- $loader->setPsr4($namespace, $path);
34
- }
35
-
36
- $classMap = require __DIR__ . '/autoload_classmap.php';
37
- if ($classMap) {
38
- $loader->addClassMap($classMap);
39
- }
40
-
41
- $loader->register(true);
42
-
43
- return $loader;
44
- }
45
- }