SEOPress - Version 2.8

Version Description

  • NEW GDPR for Google Analytics: request user's consent for analytics tracking
  • NEW Search results URL rewriting, eg: https://example.com/search/my-keyword (PRO only)
  • NEW Add ARIA label to breadcrumbs
  • NEW %%_ct_your_custom_taxonomy_slug%% dynamic variable for title / meta description
  • NEW %%currentday%% dynamic variables for title / meta description
  • NEW %%currentmonth%% dynamic variables for title / meta description
  • NEW %%currentyear%% dynamic variables for title / meta description
  • NEW %%currentdate%% dynamic variables for title / meta description
  • NEW %%currenttime%% dynamic variables for title / meta description
  • NEW %%archive_title%% dynamic variable for title / meta description
  • NEW %%archive_date_day%% dynamic variable for title / meta description
  • NEW %%archive_date_month%% dynamic variable for title / meta description
  • NEW %%archive_date_year%% dynamic variable for title / meta description
  • NEW Add 'seopress_pro_breadcrumbs_css' hook to filter breadcrumbs inline CSS
  • NEW Add 'seopress_pro_breadcrumbs_sep' hook to filter breadcrumbs separator
  • INFO Remove "seopress-breadcrumb" class
  • INFO Add echo parameter to 'seopress_display_breadcrumbs' function, default true, set to false to return the breadcrumbs
  • INFO Remove SEOPress PRO ad in Add plugin section
  • INFO Add a message when import settings is done
  • FIX Word count in Content Analysis metaboxe
  • FIX XML Sitemaps standard images
  • FIX PHP Notice: Undefined index: _ajax_nonce
Download this release

Release Info

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

Code changes from version 2.7.3 to 2.8

assets/js/seopress-cookies-ajax.js ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ //GA user consent
2
+ jQuery(document).ready(function(){
3
+ jQuery('#seopress-user-consent-accept').on('click', function() {
4
+ jQuery.ajax({
5
+ method : 'GET',
6
+ url : seopressAjaxGAUserConsent.seopress_cookies_user_consent,
7
+ data : {
8
+ action: 'seopress_cookies_user_consent',
9
+ _ajax_nonce: seopressAjaxGAUserConsent.seopress_nonce,
10
+ },
11
+ success : function( data ) {
12
+ jQuery('.seopress-user-consent').remove();
13
+ jQuery('head').append(data.data.gtag_js);
14
+ Cookies.set('seopress-user-consent-accept', '1', { expires: 30 });
15
+ },
16
+ });
17
+ });
18
+ jQuery('#seopress-user-consent-close').on('click', function() {
19
+ jQuery('.seopress-user-consent').remove();
20
+ Cookies.set('seopress-user-consent-close', '1', { expires: 30 });
21
+ });
22
+ });
assets/js/seopress-cookies.min.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(e){var n;if("function"==typeof define&&define.amd&&(define(e),n=!0),"object"==typeof exports&&(module.exports=e(),n=!0),!n){var t=window.Cookies,o=window.Cookies=e();o.noConflict=function(){return window.Cookies=t,o}}}(function(){function e(){for(var e=0,n={};e<arguments.length;e++){var t=arguments[e];for(var o in t)n[o]=t[o]}return n}return function n(t){function o(n,r,i){if("undefined"!=typeof document){if(arguments.length>1){"number"==typeof(i=e({path:"/"},o.defaults,i)).expires&&(i.expires=new Date(1*new Date+864e5*i.expires)),i.expires=i.expires?i.expires.toUTCString():"";try{var c=JSON.stringify(r);/^[\{\[]/.test(c)&&(r=c)}catch(e){}r=t.write?t.write(r,n):encodeURIComponent(String(r)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),n=encodeURIComponent(String(n)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var f="";for(var a in i)i[a]&&(f+="; "+a,!0!==i[a]&&(f+="="+i[a].split(";")[0]));return document.cookie=n+"="+r+f}for(var u={},s=function(e){return e.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent)},p=document.cookie?document.cookie.split("; "):[],d=0;d<p.length;d++){var l=p[d].split("="),C=l.slice(1).join("=");this.json||'"'!==C.charAt(0)||(C=C.slice(1,-1));try{var g=s(l[0]);if(C=(t.read||t)(C,g)||s(C),this.json)try{C=JSON.parse(C)}catch(e){}if(u[g]=C,n===g)break}catch(e){}}return n?u[n]:u}}return o.set=o,o.get=function(e){return o.call(o,e)},o.getJSON=function(e){return o.call({json:!0},e)},o.remove=function(n,t){o(n,"",e(t,{expires:-1}))},o.defaults={},o.withConverter=n,o}(function(){})});
assets/js/seopress-dashboard.js CHANGED
@@ -434,4 +434,25 @@ jQuery(document).ready(function(){
434
  },
435
  });
436
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
437
  });
434
  },
435
  });
436
  });
437
+ //Rewrite
438
+ jQuery('#toggle-rewrite').on('click', function() {
439
+ jQuery('#toggle-rewrite').attr('data-toggle', jQuery('#toggle-rewrite').attr('data-toggle') == '1' ? '0' : '1');
440
+ jQuery.ajax({
441
+ method : 'POST',
442
+ url : seopressAjaxToggleFeatures.seopress_toggle_features,
443
+ data : {
444
+ action: 'seopress_toggle_features',
445
+ feature: 'toggle-rewrite',
446
+ feature_value: jQuery('#toggle-rewrite').attr('data-toggle'),
447
+ _ajax_nonce: seopressAjaxToggleFeatures.seopress_nonce,
448
+ },
449
+ success : function( data ) {
450
+ jQuery( '#seopress-notice-save' ).css('display', 'block');
451
+ jQuery( '#seopress-notice-save .html' ).html('URL Rewriting has been successfully updated!');
452
+ jQuery( '#rewrite-state' ).toggleClass('feature-state-on');
453
+ jQuery( '#rewrite-state-default' ).toggleClass('feature-state-off');
454
+ jQuery( '#seopress-notice-save' ).delay(3500).fadeOut();
455
+ },
456
+ });
457
+ });
458
  });
inc/admin/admin-metaboxes-form.php CHANGED
@@ -225,6 +225,8 @@ echo '<div class="snippet-description">...</div>
225
  </p>
226
  <br/>
227
  <span class="dashicons dashicons-twitter"></span>
 
 
228
  <p>
229
  <label for="seopress_social_twitter_title_meta">'. __( 'Twitter Title', 'wp-seopress' ) .'</label>
230
  <input id="seopress_social_twitter_title_meta" type="text" name="seopress_social_twitter_title" placeholder="'.esc_html__('Enter your Twitter title','wp-seopress').'" aria-label="'.__('Twitter Title','wp-seopress').'" value="'.$seopress_social_twitter_title.'" />
225
  </p>
226
  <br/>
227
  <span class="dashicons dashicons-twitter"></span>
228
+ <br><br>
229
+ <span class="dashicons dashicons-external"></span><a href="https://cards-dev.twitter.com/validator" target="_blank">'.__('Preview your Twitter card using the official validator','wp-seopress').'</a>
230
  <p>
231
  <label for="seopress_social_twitter_title_meta">'. __( 'Twitter Title', 'wp-seopress' ) .'</label>
232
  <input id="seopress_social_twitter_title_meta" type="text" name="seopress_social_twitter_title" placeholder="'.esc_html__('Enter your Twitter title','wp-seopress').'" aria-label="'.__('Twitter Title','wp-seopress').'" value="'.$seopress_social_twitter_title.'" />
inc/admin/admin.php CHANGED
@@ -14,7 +14,7 @@ class seopress_options
14
  */
15
  public function __construct() {
16
  add_action( 'admin_menu', array( $this, 'add_plugin_page' ), 10 );
17
- add_action( 'admin_init', array( $this, 'set_default_values' ), 10 );
18
  add_action( 'admin_init', array( $this, 'page_init' ) );
19
  }
20
 
@@ -210,11 +210,20 @@ class seopress_options
210
  <li><span>'.__('%%search_keywords%%','wp-seopress').'</span>'.__('Search keywords','wp-seopress').'</li>
211
  <li><span>'.__('%%current_pagination%%','wp-seopress').'</span>'.__('Current number page','wp-seopress').'</li>
212
  <li><span>'.__('%%cpt_plural%%','wp-seopress').'</span>'.__('Plural Post Type Archive name','wp-seopress').'</li>
213
- <li><span>'.__('%%date_archive%%','wp-seopress').'</span>'.__('Date Archive','wp-seopress').'</li>
 
 
 
214
  <li><span>'.__('%%_cf_your_custom_field_name%%','wp-seopress').'</span>'.__('Custom fields from post, page or post type','wp-seopress').'</li>
 
215
  <li><span>'.__('%%wc_single_cat%%','wp-seopress').'</span>'.__('Single product category','wp-seopress').'</li>
216
  <li><span>'.__('%%wc_single_tag%%','wp-seopress').'</span>'.__('Single product tag','wp-seopress').'</li>
217
  <li><span>'.__('%%wc_single_short_desc%%','wp-seopress').'</span>'.__('Single product short description','wp-seopress').'</li>
 
 
 
 
 
218
  </ul>
219
  '.wp_oembed_get('https://www.youtube.com/watch?v=HEa8m9u4mOk', array('width'=>530));
220
 
@@ -661,6 +670,9 @@ class seopress_options
661
  <input type="hidden" name="seopress_action" value="import_settings" />
662
  <?php wp_nonce_field( 'seopress_import_nonce', 'seopress_import_nonce' ); ?>
663
  <?php submit_button( __( 'Import', 'wp-seopress' ), 'secondary', 'submit', false ); ?>
 
 
 
664
  </p>
665
  </form>
666
  </div><!-- .inside -->
@@ -716,7 +728,7 @@ class seopress_options
716
  <li><?php _e('Canonical URL','wp-seopress'); ?></li>
717
  <li><?php _e('Focus keywords','wp-seopress'); ?></li>
718
  </ul>
719
- <p style="color:red"><span class="dashicons dashicons-warning"></span> <?php _e( '<strong>WARNING:</strong> Migration will delete all SEOPress posts and terms metadata', 'wp-seopress' ); ?></p>
720
  <button id="seopress-yoast-migrate" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
721
  <span class="spinner"></span>
722
  <div class="log"></div>
@@ -1747,6 +1759,36 @@ class seopress_options
1747
  <a class="button-secondary" href="<?php echo admin_url( 'admin.php?page=seopress-pro-page#tab=tab_seopress_backlinks$12' ); ?>"><?php _e('Manage','wp-seopress'); ?></a>
1748
  </span>
1749
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1750
  <?php if (!is_multisite()) { ?>
1751
  <div class="seopress-feature">
1752
  <div class="img-tool">
@@ -2480,6 +2522,22 @@ class seopress_options
2480
  array( $this, 'seopress_google_analytics_ua_callback' ), // Callback
2481
  'seopress-settings-admin-google-analytics-enable', // Page
2482
  'seopress_setting_section_google_analytics_enable' // Section
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2483
  );
2484
 
2485
  add_settings_field(
@@ -2917,13 +2975,22 @@ class seopress_options
2917
  public function sanitize( $input )
2918
  {
2919
 
2920
- $seopress_sanitize_fields = array('seopress_titles_home_site_title', 'seopress_titles_home_site_desc', 'seopress_titles_archives_author_title', 'seopress_titles_archives_author_desc', 'seopress_titles_archives_date_title', 'seopress_titles_archives_date_desc', 'seopress_titles_archives_search_title', 'seopress_titles_archives_search_desc', 'seopress_titles_archives_404_title', 'seopress_titles_archives_404_desc', 'seopress_xml_sitemap_html_exclude', 'seopress_social_knowledge_name', 'seopress_social_knowledge_img', 'seopress_social_knowledge_phone', 'seopress_social_accounts_facebook', 'seopress_social_accounts_twitter', 'seopress_social_accounts_google', 'seopress_social_accounts_pinterest', 'seopress_social_accounts_instagram', 'seopress_social_accounts_youtube', 'seopress_social_accounts_linkedin', 'seopress_social_accounts_myspace', 'seopress_social_accounts_soundcloud', 'seopress_social_accounts_tumblr', 'seopress_social_facebook_link_ownership_id', 'seopress_social_facebook_admin_id', 'seopress_social_facebook_app_id', 'seopress_google_analytics_ua', 'seopress_google_analytics_download_tracking' );
2921
 
2922
  $seopress_sanitize_site_verification = array('seopress_advanced_advanced_google', 'seopress_advanced_advanced_bing', 'seopress_advanced_advanced_pinterest', 'seopress_advanced_advanced_yandex' );
2923
 
2924
  foreach ($seopress_sanitize_fields as $value) {
2925
- if( !empty( $input[$value] ) )
 
 
 
 
 
 
 
 
2926
  $input[$value] = sanitize_text_field( $input[$value] );
 
2927
  }
2928
 
2929
  foreach ($seopress_sanitize_site_verification as $value) {
@@ -4445,6 +4512,37 @@ class seopress_options
4445
 
4446
  }
4447
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4448
  public function seopress_google_analytics_roles_callback()
4449
  {
4450
  $options = get_option( 'seopress_google_analytics_option_name' );
14
  */
15
  public function __construct() {
16
  add_action( 'admin_menu', array( $this, 'add_plugin_page' ), 10 );
17
+ //add_action( 'admin_init', array( $this, 'set_default_values' ), 10 );
18
  add_action( 'admin_init', array( $this, 'page_init' ) );
19
  }
20
 
210
  <li><span>'.__('%%search_keywords%%','wp-seopress').'</span>'.__('Search keywords','wp-seopress').'</li>
211
  <li><span>'.__('%%current_pagination%%','wp-seopress').'</span>'.__('Current number page','wp-seopress').'</li>
212
  <li><span>'.__('%%cpt_plural%%','wp-seopress').'</span>'.__('Plural Post Type Archive name','wp-seopress').'</li>
213
+ <li><span>'.__('%%archive_title%%','wp-seopress').'</span>'.__('Archive title','wp-seopress').'</li>
214
+ <li><span>'.__('%%archive_date_day%%','wp-seopress').'</span>'.__('Day Archive date','wp-seopress').'</li>
215
+ <li><span>'.__('%%archive_date_month%%','wp-seopress').'</span>'.__('Month Archive title','wp-seopress').'</li>
216
+ <li><span>'.__('%%archive_date_year%%','wp-seopress').'</span>'.__('Year Archive title','wp-seopress').'</li>
217
  <li><span>'.__('%%_cf_your_custom_field_name%%','wp-seopress').'</span>'.__('Custom fields from post, page or post type','wp-seopress').'</li>
218
+ <li><span>'.__('%%_ct_your_custom_taxonomy_slug%%','wp-seopress').'</span>'.__('Custom term taxonomy from post, page or post type','wp-seopress').'</li>
219
  <li><span>'.__('%%wc_single_cat%%','wp-seopress').'</span>'.__('Single product category','wp-seopress').'</li>
220
  <li><span>'.__('%%wc_single_tag%%','wp-seopress').'</span>'.__('Single product tag','wp-seopress').'</li>
221
  <li><span>'.__('%%wc_single_short_desc%%','wp-seopress').'</span>'.__('Single product short description','wp-seopress').'</li>
222
+ <li><span>'.__('%%currentday%%','wp-seopress').'</span>'.__('Current day','wp-seopress').'</li>
223
+ <li><span>'.__('%%currentmonth%%','wp-seopress').'</span>'.__('Current month','wp-seopress').'</li>
224
+ <li><span>'.__('%%currentyear%%','wp-seopress').'</span>'.__('Current year','wp-seopress').'</li>
225
+ <li><span>'.__('%%currentdate%%','wp-seopress').'</span>'.__('Current date','wp-seopress').'</li>
226
+ <li><span>'.__('%%currenttime%%','wp-seopress').'</span>'.__('Current time','wp-seopress').'</li>
227
  </ul>
228
  '.wp_oembed_get('https://www.youtube.com/watch?v=HEa8m9u4mOk', array('width'=>530));
229
 
670
  <input type="hidden" name="seopress_action" value="import_settings" />
671
  <?php wp_nonce_field( 'seopress_import_nonce', 'seopress_import_nonce' ); ?>
672
  <?php submit_button( __( 'Import', 'wp-seopress' ), 'secondary', 'submit', false ); ?>
673
+ <?php if(!empty($_GET["success"]) && htmlspecialchars($_GET["success"]) =='true') {
674
+ echo '<div class="log">'.__('Import completed!','wp-seopress').'</div>';
675
+ }; ?>
676
  </p>
677
  </form>
678
  </div><!-- .inside -->
728
  <li><?php _e('Canonical URL','wp-seopress'); ?></li>
729
  <li><?php _e('Focus keywords','wp-seopress'); ?></li>
730
  </ul>
731
+ <p style="color:red"><span class="dashicons dashicons-warning"></span> <?php _e( '<strong>WARNING:</strong> Migration will delete all SEOPress posts and terms metadata. Some dynamic variables will not be interpreted.', 'wp-seopress' ); ?></p>
732
  <button id="seopress-yoast-migrate" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
733
  <span class="spinner"></span>
734
  <div class="log"></div>
1759
  <a class="button-secondary" href="<?php echo admin_url( 'admin.php?page=seopress-pro-page#tab=tab_seopress_backlinks$12' ); ?>"><?php _e('Manage','wp-seopress'); ?></a>
1760
  </span>
1761
  </div>
1762
+ <div class="seopress-feature">
1763
+ <div class="img-tool">
1764
+ <span class="dashicons dashicons-admin-links"></span>
1765
+ </div>
1766
+ <span class="inner">
1767
+ <h3><?php _e('URL Rewriting','wp-seopress'); ?></h3>
1768
+ <p><?php _e('Customize your permalinks.','wp-seopress'); ?></p>
1769
+ <a class="button-secondary" href="<?php echo admin_url( 'admin.php?page=seopress-pro-page#tab=tab_seopress_rewrite$14' ); ?>"><?php _e('Manage','wp-seopress'); ?></a>
1770
+ <?php
1771
+ if(seopress_get_toggle_rewrite_option()=='1') {
1772
+ $seopress_get_toggle_rewrite_option = '"1"';
1773
+ } else {
1774
+ $seopress_get_toggle_rewrite_option = '"0"';
1775
+ }
1776
+ ?>
1777
+
1778
+ <input type="checkbox" name="toggle-rewrite" id="toggle-rewrite" class="toggle" data-toggle=<?php echo $seopress_get_toggle_rewrite_option; ?>>
1779
+ <label for="toggle-rewrite"></label>
1780
+
1781
+ <?php
1782
+ if(seopress_get_toggle_rewrite_option()=='1') {
1783
+ echo '<span id="rewrite-state-default" class="feature-state"><span class="dashicons dashicons-arrow-left-alt"></span>'.__('Click to disable this feature','wp-seopress').'</span>';
1784
+ echo '<span id="rewrite-state" class="feature-state feature-state-off"><span class="dashicons dashicons-arrow-left-alt"></span>'.__('Click to enable this feature','wp-seopress').'</span>';
1785
+ } else {
1786
+ echo '<span id="rewrite-state-default" class="feature-state"><span class="dashicons dashicons-arrow-left-alt"></span>'.__('Click to enable this feature','wp-seopress').'</span>';
1787
+ echo '<span id="rewrite-state" class="feature-state feature-state-off"><span class="dashicons dashicons-arrow-left-alt"></span>'.__('Click to disable this feature','wp-seopress').'</span>';
1788
+ }
1789
+ ?>
1790
+ </span>
1791
+ </div>
1792
  <?php if (!is_multisite()) { ?>
1793
  <div class="seopress-feature">
1794
  <div class="img-tool">
2522
  array( $this, 'seopress_google_analytics_ua_callback' ), // Callback
2523
  'seopress-settings-admin-google-analytics-enable', // Page
2524
  'seopress_setting_section_google_analytics_enable' // Section
2525
+ );
2526
+
2527
+ add_settings_field(
2528
+ 'seopress_google_analytics_disable', // ID
2529
+ __("Google Analytics tracking opt-out","wp-seopress"), // Title
2530
+ array( $this, 'seopress_google_analytics_disable_callback' ), // Callback
2531
+ 'seopress-settings-admin-google-analytics-enable', // Page
2532
+ 'seopress_setting_section_google_analytics_enable' // Section
2533
+ );
2534
+
2535
+ add_settings_field(
2536
+ 'seopress_google_analytics_opt_out_msg', // ID
2537
+ __("Consent message for user tracking","wp-seopress"), // Title
2538
+ array( $this, 'seopress_google_analytics_opt_out_msg_callback' ), // Callback
2539
+ 'seopress-settings-admin-google-analytics-enable', // Page
2540
+ 'seopress_setting_section_google_analytics_enable' // Section
2541
  );
2542
 
2543
  add_settings_field(
2975
  public function sanitize( $input )
2976
  {
2977
 
2978
+ $seopress_sanitize_fields = array('seopress_titles_home_site_title', 'seopress_titles_home_site_desc', 'seopress_titles_archives_author_title', 'seopress_titles_archives_author_desc', 'seopress_titles_archives_date_title', 'seopress_titles_archives_date_desc', 'seopress_titles_archives_search_title', 'seopress_titles_archives_search_desc', 'seopress_titles_archives_404_title', 'seopress_titles_archives_404_desc', 'seopress_xml_sitemap_html_exclude', 'seopress_social_knowledge_name', 'seopress_social_knowledge_img', 'seopress_social_knowledge_phone', 'seopress_social_accounts_facebook', 'seopress_social_accounts_twitter', 'seopress_social_accounts_google', 'seopress_social_accounts_pinterest', 'seopress_social_accounts_instagram', 'seopress_social_accounts_youtube', 'seopress_social_accounts_linkedin', 'seopress_social_accounts_myspace', 'seopress_social_accounts_soundcloud', 'seopress_social_accounts_tumblr', 'seopress_social_facebook_link_ownership_id', 'seopress_social_facebook_admin_id', 'seopress_social_facebook_app_id', 'seopress_google_analytics_ua', 'seopress_google_analytics_download_tracking','seopress_google_analytics_opt_out_msg' );
2979
 
2980
  $seopress_sanitize_site_verification = array('seopress_advanced_advanced_google', 'seopress_advanced_advanced_bing', 'seopress_advanced_advanced_pinterest', 'seopress_advanced_advanced_yandex' );
2981
 
2982
  foreach ($seopress_sanitize_fields as $value) {
2983
+ if ($value =='seopress_google_analytics_opt_out_msg') {
2984
+ $args = array(
2985
+ 'strong' => array(),
2986
+ 'em' => array(),
2987
+ 'br' => array(),
2988
+ 'a' => array('href' => array())
2989
+ );
2990
+ $input[$value] = wp_kses($input[$value], $args);
2991
+ } elseif( !empty( $input[$value] ) ) {
2992
  $input[$value] = sanitize_text_field( $input[$value] );
2993
+ }
2994
  }
2995
 
2996
  foreach ($seopress_sanitize_site_verification as $value) {
4512
 
4513
  }
4514
 
4515
+ public function seopress_google_analytics_disable_callback()
4516
+ {
4517
+ $options = get_option( 'seopress_google_analytics_option_name' );
4518
+
4519
+ $check = isset($options['seopress_google_analytics_disable']);
4520
+
4521
+ echo '<input id="seopress_google_analytics_disable" name="seopress_google_analytics_option_name[seopress_google_analytics_disable]" type="checkbox"';
4522
+ if ('1' == $check) echo 'checked="yes"';
4523
+ echo ' value="1"/>';
4524
+
4525
+ echo '<label for="seopress_google_analytics_disable">'. __( 'Request user\'s consent for analytics tracking (required by GDPR)', 'wp-seopress' ) .'</label>';
4526
+
4527
+ echo '<p class="description">'.__('User roles excluded from tracking will not see the consent message.','wp-seopress-pro').'</p>';
4528
+
4529
+ if (isset($this->options['seopress_google_analytics_disable'])) {
4530
+ esc_attr( $this->options['seopress_google_analytics_disable']);
4531
+ }
4532
+ }
4533
+
4534
+ public function seopress_google_analytics_opt_out_msg_callback()
4535
+ {
4536
+ $options = get_option( 'seopress_google_analytics_option_name' );
4537
+ $check = isset($options['seopress_google_analytics_opt_out_msg']) ? $options['seopress_google_analytics_opt_out_msg'] : NULL;
4538
+
4539
+ printf(
4540
+ '<textarea id="seopress_google_analytics_opt_out_msg" name="seopress_google_analytics_option_name[seopress_google_analytics_opt_out_msg]" rows="4" placeholder="'.esc_html__('Enter your message (HTML allowed)','wp-seopress-pro').'" aria-label="'.__('This message will only appear if request user\'s consent is enabled.','wp-seopress').'">%s</textarea>',
4541
+ esc_html( $check ));
4542
+
4543
+ echo '<p class="description">'.__('HTML tags allowed: strong, em, br, a href','wp-seopress-pro').'</p>';
4544
+ }
4545
+
4546
  public function seopress_google_analytics_roles_callback()
4547
  {
4548
  $options = get_option( 'seopress_google_analytics_option_name' );
inc/admin/ajax.php CHANGED
@@ -5,7 +5,7 @@ defined( 'ABSPATH' ) or die( 'Please don&rsquo;t call the plugin directly. Thank
5
  //Get real preview
6
  ///////////////////////////////////////////////////////////////////////////////////////////////////
7
  function seopress_do_real_preview() {
8
- check_ajax_referer( 'seopress_real_preview_nonce', $_POST['_ajax_nonce'], true );
9
 
10
  //Get post id
11
  if ( isset( $_GET['post_id'] ) ) {
@@ -142,8 +142,8 @@ function seopress_do_content_analysis() {
142
  $domxpath = new DOMXPath($dom);
143
 
144
  //Words counter
145
- $seopress_analysis_data['words_counter'] = str_word_count(strip_tags($seopress_get_the_content));
146
- $words_counter_unique = count(array_unique(str_word_count($seopress_get_the_content, 1)));
147
  $seopress_analysis_data['words_counter_unique'] = $words_counter_unique - 1;
148
 
149
  //h1
5
  //Get real preview
6
  ///////////////////////////////////////////////////////////////////////////////////////////////////
7
  function seopress_do_real_preview() {
8
+ check_ajax_referer( 'seopress_real_preview_nonce', $_GET['_ajax_nonce'], true );
9
 
10
  //Get post id
11
  if ( isset( $_GET['post_id'] ) ) {
142
  $domxpath = new DOMXPath($dom);
143
 
144
  //Words counter
145
+ $seopress_analysis_data['words_counter'] = str_word_count(strip_tags(wp_filter_nohtml_kses($seopress_get_the_content)));
146
+ $words_counter_unique = count(array_unique(str_word_count(wp_filter_nohtml_kses($seopress_get_the_content), 1)));
147
  $seopress_analysis_data['words_counter_unique'] = $words_counter_unique - 1;
148
 
149
  //h1
inc/functions/options-google-analytics.php CHANGED
@@ -3,6 +3,42 @@ defined( 'ABSPATH' ) or die( 'Please don&rsquo;t call the plugin directly. Thank
3
 
4
  //Google Analytics
5
  //=================================================================================================
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
  //Remarketing
7
  function seopress_google_analytics_remarketing_option() {
8
  $seopress_google_analytics_remarketing_option = get_option("seopress_google_analytics_option_name");
@@ -184,7 +220,7 @@ function seopress_google_analytics_cd_logged_in_user_option() {
184
  }
185
 
186
  //Build Custom GA
187
- function seopress_google_analytics_js() {
188
  if (seopress_google_analytics_ua_option() !='') {
189
  //Init
190
  $seopress_google_analytics_config = array();
@@ -195,8 +231,8 @@ function seopress_google_analytics_js() {
195
  "<script async src='https://www.googletagmanager.com/gtag/js?id=".seopress_google_analytics_ua_option()."'></script>
196
  <script>
197
  window.dataLayer = window.dataLayer || [];
198
- function gtag(){dataLayer.push(arguments);}
199
- gtag('js', new Date());\n";
200
 
201
  //Cross domains
202
  if (seopress_google_analytics_cross_enable_option() =='1' && seopress_google_analytics_cross_domain_option()) {
@@ -436,29 +472,42 @@ gtag('js', new Date());\n";
436
  $seopress_google_analytics_html .= "\n";
437
 
438
  $seopress_google_analytics_html = apply_filters('seopress_gtag_html', $seopress_google_analytics_html);
439
- echo $seopress_google_analytics_html;
 
 
 
 
 
440
  }
441
  }
 
 
 
 
 
 
442
 
443
  if (seopress_google_analytics_enable_option() =='1' && seopress_google_analytics_ua_option() !='') {
444
- if (is_user_logged_in()) {
445
- global $wp_roles;
446
-
447
- //Get current user role
448
- if(isset(wp_get_current_user()->roles[0])) {
449
- $seopress_user_role = wp_get_current_user()->roles[0];
450
- //If current user role matchs values from SEOPress GA settings then apply
451
- if (function_exists('seopress_google_analytics_roles_option') && seopress_google_analytics_roles_option() !='') {
452
- if( array_key_exists( $seopress_user_role, seopress_google_analytics_roles_option())) {
453
- //do nothing
 
 
 
 
454
  } else {
455
- add_action( 'wp_head', 'seopress_google_analytics_js', 999 );
456
  }
457
- } else {
458
- add_action( 'wp_head', 'seopress_google_analytics_js', 999 );
459
  }
 
 
460
  }
461
- } else {
462
- add_action( 'wp_head', 'seopress_google_analytics_js', 999 );
463
  }
464
  }
3
 
4
  //Google Analytics
5
  //=================================================================================================
6
+ if (seopress_google_analytics_disable_option() =='1' && ( (empty($_COOKIE["seopress-user-consent-accept"]) || $_COOKIE["seopress-user-consent-accept"] !='1') || (empty($_COOKIE["seopress-user-consent-close"]) || $_COOKIE["seopress-user-consent-close"] !='1'))) {
7
+ if ((empty($_COOKIE["seopress-user-consent-accept"]) || $_COOKIE["seopress-user-consent-accept"] !='1') && (empty($_COOKIE["seopress-user-consent-close"]) || $_COOKIE["seopress-user-consent-close"] !='1')) {
8
+ function seopress_cookies_user_consent_html() {
9
+ if (seopress_google_analytics_opt_out_msg_option() !='') {
10
+ $msg = seopress_google_analytics_opt_out_msg_option();
11
+ } else {
12
+ $msg = __('By visiting our site, you agree to our privacy policy regarding cookies, tracking statistics etc ...','wp-seopress');
13
+ }
14
+ echo '<style>.seopress-user-consent {position: fixed;z-index: 8000;width: 100%;bottom: 0;background: #F1F1F1;padding: 10px;left: 0;text-align: center;}.seopress-user-consent p {margin:0;font-size:14px;}.seopress-user-consent button {margin: 0 10px;padding: 5px 20px;font-size: 14px;}#seopress-user-consent-close{margin: 0 10px;position: absolute;right: 15px;line-height: 29px;font-weight: bold;border: 1px solid #ccc;padding: 0 10px;}#seopress-user-consent-close:hover{background:#222;cursor:pointer;color:#fff}</style>
15
+ <div class="seopress-user-consent"><p>'.$msg.'<button id="seopress-user-consent-accept">'.__('Accept','wp-seopress').'</button><span id="seopress-user-consent-close">'.__('X','wp-seopress').'</span></p></div>';
16
+ }
17
+ if (seopress_google_analytics_disable_option() =='1') {
18
+ if (is_user_logged_in()) {
19
+ global $wp_roles;
20
+
21
+ //Get current user role
22
+ if(isset(wp_get_current_user()->roles[0])) {
23
+ $seopress_user_role = wp_get_current_user()->roles[0];
24
+ //If current user role matchs values from SEOPress GA settings then apply
25
+ if (function_exists('seopress_google_analytics_roles_option') && seopress_google_analytics_roles_option() !='') {
26
+ if( array_key_exists( $seopress_user_role, seopress_google_analytics_roles_option())) {
27
+ //do nothing
28
+ } else {
29
+ add_action('wp_footer', 'seopress_cookies_user_consent_html');
30
+ }
31
+ } else {
32
+ add_action('wp_footer', 'seopress_cookies_user_consent_html');
33
+ }
34
+ } else {
35
+ add_action('wp_footer', 'seopress_cookies_user_consent_html');
36
+ }
37
+ }
38
+ }
39
+ }
40
+ }
41
+
42
  //Remarketing
43
  function seopress_google_analytics_remarketing_option() {
44
  $seopress_google_analytics_remarketing_option = get_option("seopress_google_analytics_option_name");
220
  }
221
 
222
  //Build Custom GA
223
+ function seopress_google_analytics_js($echo) {
224
  if (seopress_google_analytics_ua_option() !='') {
225
  //Init
226
  $seopress_google_analytics_config = array();
231
  "<script async src='https://www.googletagmanager.com/gtag/js?id=".seopress_google_analytics_ua_option()."'></script>
232
  <script>
233
  window.dataLayer = window.dataLayer || [];
234
+ function gtag(){dataLayer.push(arguments);}";
235
+ $seopress_google_analytics_html .= "gtag('js', new Date());\n";
236
 
237
  //Cross domains
238
  if (seopress_google_analytics_cross_enable_option() =='1' && seopress_google_analytics_cross_domain_option()) {
472
  $seopress_google_analytics_html .= "\n";
473
 
474
  $seopress_google_analytics_html = apply_filters('seopress_gtag_html', $seopress_google_analytics_html);
475
+
476
+ if ($echo == true) {
477
+ echo $seopress_google_analytics_html;
478
+ } else {
479
+ return $seopress_google_analytics_html;
480
+ }
481
  }
482
  }
483
+ add_action('seopress_google_analytics_html', 'seopress_google_analytics_js', 10, 1);
484
+
485
+ function seopress_google_analytics_js_arguments() {
486
+ $echo = true;
487
+ do_action('seopress_google_analytics_html', $echo);
488
+ }
489
 
490
  if (seopress_google_analytics_enable_option() =='1' && seopress_google_analytics_ua_option() !='') {
491
+ if (((isset($_COOKIE["seopress-user-consent-accept"]) && $_COOKIE["seopress-user-consent-accept"] =='1') && seopress_google_analytics_disable_option() =='1') || (seopress_google_analytics_disable_option() !='1')) { //User consent cookie OK
492
+ if (is_user_logged_in()) {
493
+ global $wp_roles;
494
+
495
+ //Get current user role
496
+ if(isset(wp_get_current_user()->roles[0])) {
497
+ $seopress_user_role = wp_get_current_user()->roles[0];
498
+ //If current user role matchs values from SEOPress GA settings then apply
499
+ if (function_exists('seopress_google_analytics_roles_option') && seopress_google_analytics_roles_option() !='') {
500
+ if( array_key_exists( $seopress_user_role, seopress_google_analytics_roles_option())) {
501
+ //do nothing
502
+ } else {
503
+ add_action( 'wp_head', 'seopress_google_analytics_js_arguments', 999, 1 );
504
+ }
505
  } else {
506
+ add_action( 'wp_head', 'seopress_google_analytics_js_arguments', 999, 1 );
507
  }
 
 
508
  }
509
+ } else {
510
+ add_action( 'wp_head', 'seopress_google_analytics_js_arguments', 999, 1 );
511
  }
 
 
512
  }
513
  }
inc/functions/options-import-export.php CHANGED
@@ -71,7 +71,7 @@ function seopress_import_settings() {
71
  update_option( 'seopress_toggle', $settings["seopress_toggle"] );
72
  update_option( 'seopress_google_analytics_lock_option_name', $settings["seopress_google_analytics_lock_option_name"] );
73
 
74
- wp_safe_redirect( admin_url( 'admin.php?page=seopress-import-export' ) ); exit;
75
  }
76
  add_action( 'admin_init', 'seopress_import_settings' );
77
 
71
  update_option( 'seopress_toggle', $settings["seopress_toggle"] );
72
  update_option( 'seopress_google_analytics_lock_option_name', $settings["seopress_google_analytics_lock_option_name"] );
73
 
74
+ wp_safe_redirect( admin_url( 'admin.php?page=seopress-import-export&success=true' ) ); exit;
75
  }
76
  add_action( 'admin_init', 'seopress_import_settings' );
77
 
inc/functions/options-titles-metas.php CHANGED
@@ -350,10 +350,18 @@ function seopress_titles_the_title() {
350
  '%%search_keywords%%',
351
  '%%current_pagination%%',
352
  '%%cpt_plural%%',
353
- '%%archive_date%%',
 
 
 
354
  '%%wc_single_cat%%',
355
  '%%wc_single_tag%%',
356
  '%%wc_single_short_desc%%',
 
 
 
 
 
357
  );
358
  $seopress_titles_template_replace_array = array(
359
  get_bloginfo('name'),
@@ -374,9 +382,17 @@ function seopress_titles_the_title() {
374
  $seopress_paged,
375
  post_type_archive_title('', false),
376
  get_the_archive_title(),
 
 
 
377
  $woo_single_cat_html,
378
  $woo_single_tag_html,
379
  $seopress_get_the_excerpt,
 
 
 
 
 
380
  );
381
 
382
  if ( is_front_page() && is_home() && get_post_meta($post->ID,'_seopress_titles_title',true) =='') { //HOMEPAGE
@@ -407,7 +423,7 @@ function seopress_titles_the_title() {
407
  if (get_post_meta($post->ID,'_seopress_titles_title',true)) { //IS METABOXE
408
  $seopress_titles_the_title = esc_attr(get_post_meta($post->ID,'_seopress_titles_title',true));
409
 
410
- preg_match_all('/%%_cf_(.*?)%%/', $seopress_titles_the_title, $matches);
411
 
412
  if (!empty($matches)) {
413
  $seopress_titles_cf_template_variables_array = array();
@@ -422,17 +438,40 @@ function seopress_titles_the_title() {
422
  }
423
  }
424
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
425
  $seopress_titles_title_template = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $seopress_titles_the_title);
426
 
 
427
  if (!empty($matches) && !empty($seopress_titles_cf_template_variables_array) && !empty($seopress_titles_cf_template_replace_array)) {
428
  $seopress_titles_title_template = str_replace($seopress_titles_cf_template_variables_array, $seopress_titles_cf_template_replace_array, $seopress_titles_title_template);
429
  }
 
 
 
 
 
430
  }
431
  else { //DEFAULT GLOBAL
432
 
433
  $seopress_titles_single_titles_option = esc_attr(seopress_titles_single_titles_option());
434
 
435
- preg_match_all('/%%_cf_(.*?)%%/', $seopress_titles_single_titles_option, $matches);
436
 
437
  if (!empty($matches)) {
438
  $seopress_titles_cf_template_variables_array = array();
@@ -447,11 +486,34 @@ function seopress_titles_the_title() {
447
  }
448
  }
449
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
450
  $seopress_titles_title_template = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $seopress_titles_single_titles_option);
451
 
 
452
  if (!empty($matches) && !empty($seopress_titles_cf_template_variables_array) && !empty($seopress_titles_cf_template_replace_array)) {
453
  $seopress_titles_title_template = str_replace($seopress_titles_cf_template_variables_array, $seopress_titles_cf_template_replace_array, $seopress_titles_title_template);
454
  }
 
 
 
 
 
455
  }
456
  } elseif (is_post_type_archive() && seopress_titles_archive_titles_option()) { //IS POST TYPE ARCHIVE
457
  $seopress_titles_archive_titles_option = esc_attr(seopress_titles_archive_titles_option());
@@ -610,10 +672,18 @@ function seopress_titles_the_description_content() {
610
  '%%search_keywords%%',
611
  '%%current_pagination%%',
612
  '%%cpt_plural%%',
613
- '%%archive_date%%',
 
 
 
614
  '%%wc_single_cat%%',
615
  '%%wc_single_tag%%',
616
  '%%wc_single_short_desc%%',
 
 
 
 
 
617
  );
618
  $seopress_titles_template_replace_array = array(
619
  get_bloginfo('name'),
@@ -634,9 +704,17 @@ function seopress_titles_the_description_content() {
634
  $seopress_paged,
635
  post_type_archive_title('', false),
636
  get_the_archive_title(),
 
 
 
637
  $woo_single_cat_html,
638
  $woo_single_tag_html,
639
  $seopress_get_the_excerpt,
 
 
 
 
 
640
  );
641
 
642
  if ( is_front_page() && is_home() && get_post_meta($post->ID,'_seopress_titles_desc',true) =='' ) { //HOMEPAGE
@@ -668,7 +746,7 @@ function seopress_titles_the_description_content() {
668
  if (get_post_meta($post->ID,'_seopress_titles_desc',true)) { //IS METABOXE
669
  $seopress_titles_the_description = esc_attr(get_post_meta($post->ID,'_seopress_titles_desc',true));
670
 
671
- preg_match_all('/%%_cf_(.*?)%%/', $seopress_titles_the_description, $matches);
672
 
673
  if (!empty($matches)) {
674
  $seopress_titles_cf_template_variables_array = array();
@@ -683,15 +761,38 @@ function seopress_titles_the_description_content() {
683
  }
684
  }
685
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
686
  $seopress_titles_description_template = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $seopress_titles_the_description);
687
 
 
688
  if (!empty($matches) && !empty($seopress_titles_cf_template_variables_array) && !empty($seopress_titles_cf_template_replace_array)) {
689
  $seopress_titles_description_template = str_replace($seopress_titles_cf_template_variables_array, $seopress_titles_cf_template_replace_array, $seopress_titles_description_template);
690
  }
 
 
 
 
 
691
  } elseif (seopress_titles_single_desc_option() !='') { //IS GLOBAL
692
  $seopress_titles_the_description = esc_attr(seopress_titles_single_desc_option());
693
 
694
- preg_match_all('/%%_cf_(.*?)%%/', $seopress_titles_the_description, $matches);
695
 
696
  if (!empty($matches)) {
697
  $seopress_titles_cf_template_variables_array = array();
@@ -706,11 +807,34 @@ function seopress_titles_the_description_content() {
706
  }
707
  }
708
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
709
  $seopress_titles_description_template = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $seopress_titles_the_description);
710
 
 
711
  if (!empty($matches) && !empty($seopress_titles_cf_template_variables_array) && !empty($seopress_titles_cf_template_replace_array)) {
712
  $seopress_titles_description_template = str_replace($seopress_titles_cf_template_variables_array, $seopress_titles_cf_template_replace_array, $seopress_titles_description_template);
713
  }
 
 
 
 
 
714
  } else {
715
  setup_postdata( $post );
716
  if ($seopress_get_the_excerpt !='' || get_the_content() !='') { //DEFAULT EXCERPT OR THE CONTENT
350
  '%%search_keywords%%',
351
  '%%current_pagination%%',
352
  '%%cpt_plural%%',
353
+ '%%archive_title%%',
354
+ '%%archive_date_day%%',
355
+ '%%archive_date_month%%',
356
+ '%%archive_date_year%%',
357
  '%%wc_single_cat%%',
358
  '%%wc_single_tag%%',
359
  '%%wc_single_short_desc%%',
360
+ '%%currentday%%',
361
+ '%%currentmonth%%',
362
+ '%%currentyear%%',
363
+ '%%currentdate%%',
364
+ '%%currenttime%%',
365
  );
366
  $seopress_titles_template_replace_array = array(
367
  get_bloginfo('name'),
382
  $seopress_paged,
383
  post_type_archive_title('', false),
384
  get_the_archive_title(),
385
+ get_query_var('day'),
386
+ get_query_var('monthnum'),
387
+ get_query_var('year'),
388
  $woo_single_cat_html,
389
  $woo_single_tag_html,
390
  $seopress_get_the_excerpt,
391
+ date_i18n('j'),
392
+ date_i18n('M'),
393
+ date('Y'),
394
+ date_i18n( get_option( 'date_format' )),
395
+ current_time(get_option( 'time_format' )),
396
  );
397
 
398
  if ( is_front_page() && is_home() && get_post_meta($post->ID,'_seopress_titles_title',true) =='') { //HOMEPAGE
423
  if (get_post_meta($post->ID,'_seopress_titles_title',true)) { //IS METABOXE
424
  $seopress_titles_the_title = esc_attr(get_post_meta($post->ID,'_seopress_titles_title',true));
425
 
426
+ preg_match_all('/%%_cf_(.*?)%%/', $seopress_titles_the_title, $matches); //custom fields
427
 
428
  if (!empty($matches)) {
429
  $seopress_titles_cf_template_variables_array = array();
438
  }
439
  }
440
 
441
+ preg_match_all('/%%_ct_(.*?)%%/', $seopress_titles_the_title, $matches2); //custom terms taxonomy
442
+
443
+ if (!empty($matches2)) {
444
+ $seopress_titles_ct_template_variables_array = array();
445
+ $seopress_titles_ct_template_replace_array = array();
446
+
447
+ foreach ($matches2['0'] as $key => $value) {
448
+ $seopress_titles_ct_template_variables_array[] = $value;
449
+ }
450
+
451
+ foreach ($matches2['1'] as $key => $value) {
452
+ $term = wp_get_post_terms( $post->ID, $value );
453
+ $seopress_titles_ct_template_replace_array[] = $term[0]->name;
454
+ }
455
+ }
456
+
457
+ //Default
458
  $seopress_titles_title_template = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $seopress_titles_the_title);
459
 
460
+ //Custom fields
461
  if (!empty($matches) && !empty($seopress_titles_cf_template_variables_array) && !empty($seopress_titles_cf_template_replace_array)) {
462
  $seopress_titles_title_template = str_replace($seopress_titles_cf_template_variables_array, $seopress_titles_cf_template_replace_array, $seopress_titles_title_template);
463
  }
464
+
465
+ //Custom terms taxonomy
466
+ if (!empty($matches2) && !empty($seopress_titles_ct_template_variables_array) && !empty($seopress_titles_ct_template_replace_array)) {
467
+ $seopress_titles_title_template = str_replace($seopress_titles_ct_template_variables_array, $seopress_titles_ct_template_replace_array, $seopress_titles_title_template);
468
+ }
469
  }
470
  else { //DEFAULT GLOBAL
471
 
472
  $seopress_titles_single_titles_option = esc_attr(seopress_titles_single_titles_option());
473
 
474
+ preg_match_all('/%%_cf_(.*?)%%/', $seopress_titles_single_titles_option, $matches); //custom fields
475
 
476
  if (!empty($matches)) {
477
  $seopress_titles_cf_template_variables_array = array();
486
  }
487
  }
488
 
489
+ preg_match_all('/%%_ct_(.*?)%%/', $seopress_titles_single_titles_option, $matches2); //custom terms taxonomy
490
+
491
+ if (!empty($matches2)) {
492
+ $seopress_titles_ct_template_variables_array = array();
493
+ $seopress_titles_ct_template_replace_array = array();
494
+
495
+ foreach ($matches2['0'] as $key => $value) {
496
+ $seopress_titles_ct_template_variables_array[] = $value;
497
+ }
498
+
499
+ foreach ($matches2['1'] as $key => $value) {
500
+ $term = wp_get_post_terms( $post->ID, $value );
501
+ $seopress_titles_ct_template_replace_array[] = $term[0]->name;
502
+ }
503
+ }
504
+
505
+ //Default
506
  $seopress_titles_title_template = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $seopress_titles_single_titles_option);
507
 
508
+ //Custom fields
509
  if (!empty($matches) && !empty($seopress_titles_cf_template_variables_array) && !empty($seopress_titles_cf_template_replace_array)) {
510
  $seopress_titles_title_template = str_replace($seopress_titles_cf_template_variables_array, $seopress_titles_cf_template_replace_array, $seopress_titles_title_template);
511
  }
512
+
513
+ //Custom terms taxonomy
514
+ if (!empty($matches2) && !empty($seopress_titles_ct_template_variables_array) && !empty($seopress_titles_ct_template_replace_array)) {
515
+ $seopress_titles_title_template = str_replace($seopress_titles_ct_template_variables_array, $seopress_titles_ct_template_replace_array, $seopress_titles_title_template);
516
+ }
517
  }
518
  } elseif (is_post_type_archive() && seopress_titles_archive_titles_option()) { //IS POST TYPE ARCHIVE
519
  $seopress_titles_archive_titles_option = esc_attr(seopress_titles_archive_titles_option());
672
  '%%search_keywords%%',
673
  '%%current_pagination%%',
674
  '%%cpt_plural%%',
675
+ '%%archive_title%%',
676
+ '%%archive_date_day%%',
677
+ '%%archive_date_month%%',
678
+ '%%archive_date_year%%',
679
  '%%wc_single_cat%%',
680
  '%%wc_single_tag%%',
681
  '%%wc_single_short_desc%%',
682
+ '%%currentday%%',
683
+ '%%currentmonth%%',
684
+ '%%currentyear%%',
685
+ '%%currentdate%%',
686
+ '%%currenttime%%',
687
  );
688
  $seopress_titles_template_replace_array = array(
689
  get_bloginfo('name'),
704
  $seopress_paged,
705
  post_type_archive_title('', false),
706
  get_the_archive_title(),
707
+ get_query_var('day'),
708
+ get_query_var('monthnum'),
709
+ get_query_var('year'),
710
  $woo_single_cat_html,
711
  $woo_single_tag_html,
712
  $seopress_get_the_excerpt,
713
+ date_i18n('j'),
714
+ date_i18n('M'),
715
+ date('Y'),
716
+ date_i18n( get_option( 'date_format' )),
717
+ current_time(get_option( 'time_format' )),
718
  );
719
 
720
  if ( is_front_page() && is_home() && get_post_meta($post->ID,'_seopress_titles_desc',true) =='' ) { //HOMEPAGE
746
  if (get_post_meta($post->ID,'_seopress_titles_desc',true)) { //IS METABOXE
747
  $seopress_titles_the_description = esc_attr(get_post_meta($post->ID,'_seopress_titles_desc',true));
748
 
749
+ preg_match_all('/%%_cf_(.*?)%%/', $seopress_titles_the_description, $matches); //custom fields
750
 
751
  if (!empty($matches)) {
752
  $seopress_titles_cf_template_variables_array = array();
761
  }
762
  }
763
 
764
+ preg_match_all('/%%_ct_(.*?)%%/', $seopress_titles_the_description, $matches2); //custom terms taxonomy
765
+
766
+ if (!empty($matches2)) {
767
+ $seopress_titles_ct_template_variables_array = array();
768
+ $seopress_titles_ct_template_replace_array = array();
769
+
770
+ foreach ($matches2['0'] as $key => $value) {
771
+ $seopress_titles_ct_template_variables_array[] = $value;
772
+ }
773
+
774
+ foreach ($matches2['1'] as $key => $value) {
775
+ $term = wp_get_post_terms( $post->ID, $value );
776
+ $seopress_titles_ct_template_replace_array[] = $term[0]->name;
777
+ }
778
+ }
779
+
780
+ //Default
781
  $seopress_titles_description_template = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $seopress_titles_the_description);
782
 
783
+ //Custom fields
784
  if (!empty($matches) && !empty($seopress_titles_cf_template_variables_array) && !empty($seopress_titles_cf_template_replace_array)) {
785
  $seopress_titles_description_template = str_replace($seopress_titles_cf_template_variables_array, $seopress_titles_cf_template_replace_array, $seopress_titles_description_template);
786
  }
787
+
788
+ //Custom terms taxonomy
789
+ if (!empty($matches2) && !empty($seopress_titles_ct_template_variables_array) && !empty($seopress_titles_ct_template_replace_array)) {
790
+ $seopress_titles_description_template = str_replace($seopress_titles_ct_template_variables_array, $seopress_titles_ct_template_replace_array, $seopress_titles_description_template);
791
+ }
792
  } elseif (seopress_titles_single_desc_option() !='') { //IS GLOBAL
793
  $seopress_titles_the_description = esc_attr(seopress_titles_single_desc_option());
794
 
795
+ preg_match_all('/%%_cf_(.*?)%%/', $seopress_titles_the_description, $matches); //custom fields
796
 
797
  if (!empty($matches)) {
798
  $seopress_titles_cf_template_variables_array = array();
807
  }
808
  }
809
 
810
+ preg_match_all('/%%_ct_(.*?)%%/', $seopress_titles_the_description, $matches2); //custom terms taxonomy
811
+
812
+ if (!empty($matches2)) {
813
+ $seopress_titles_ct_template_variables_array = array();
814
+ $seopress_titles_ct_template_replace_array = array();
815
+
816
+ foreach ($matches2['0'] as $key => $value) {
817
+ $seopress_titles_ct_template_variables_array[] = $value;
818
+ }
819
+
820
+ foreach ($matches2['1'] as $key => $value) {
821
+ $term = wp_get_post_terms( $post->ID, $value );
822
+ $seopress_titles_ct_template_replace_array[] = $term[0]->name;
823
+ }
824
+ }
825
+
826
+ //Default
827
  $seopress_titles_description_template = str_replace($seopress_titles_template_variables_array, $seopress_titles_template_replace_array, $seopress_titles_the_description);
828
 
829
+ //Custom fields
830
  if (!empty($matches) && !empty($seopress_titles_cf_template_variables_array) && !empty($seopress_titles_cf_template_replace_array)) {
831
  $seopress_titles_description_template = str_replace($seopress_titles_cf_template_variables_array, $seopress_titles_cf_template_replace_array, $seopress_titles_description_template);
832
  }
833
+
834
+ //Custom terms taxonomy
835
+ if (!empty($matches2) && !empty($seopress_titles_ct_template_variables_array) && !empty($seopress_titles_ct_template_replace_array)) {
836
+ $seopress_titles_description_template = str_replace($seopress_titles_ct_template_variables_array, $seopress_titles_ct_template_replace_array, $seopress_titles_description_template);
837
+ }
838
  } else {
839
  setup_postdata( $post );
840
  if ($seopress_get_the_excerpt !='' || get_the_content() !='') { //DEFAULT EXCERPT OR THE CONTENT
inc/functions/options.php CHANGED
@@ -133,11 +133,106 @@ if (seopress_get_toggle_google_analytics_option() =='1') {
133
  }
134
  }
135
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
136
  add_action('wp_head', 'seopress_load_google_analytics_options', 0);
137
  function seopress_load_google_analytics_options() {
138
  require_once ( dirname( __FILE__ ) . '/options-google-analytics.php'); //Google Analytics
139
  }
140
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
141
  // add_action('woocommerce_add_to_cart', 'seopress_load_google_analytics_checkout_options', 0);
142
  // function seopress_load_google_analytics_checkout_options() {
143
  // require_once ( dirname( __FILE__ ) . '/options-google-analytics-checkout.php'); //Google Analytics E-commerce
133
  }
134
  }
135
 
136
+ //Disable Tracking
137
+ function seopress_google_analytics_disable_option() {
138
+ $seopress_google_analytics_disable_option = get_option("seopress_google_analytics_option_name");
139
+ if ( ! empty ( $seopress_google_analytics_disable_option ) ) {
140
+ foreach ($seopress_google_analytics_disable_option as $key => $seopress_google_analytics_disable_value)
141
+ $options[$key] = $seopress_google_analytics_disable_value;
142
+ if (isset($seopress_google_analytics_disable_option['seopress_google_analytics_disable'])) {
143
+ return $seopress_google_analytics_disable_option['seopress_google_analytics_disable'];
144
+ }
145
+ }
146
+ }
147
+
148
+ //Disable Tracking - Message
149
+ function seopress_google_analytics_opt_out_msg_option() {
150
+ $seopress_google_analytics_opt_out_msg_option = get_option("seopress_google_analytics_option_name");
151
+ if ( ! empty ( $seopress_google_analytics_opt_out_msg_option ) ) {
152
+ foreach ($seopress_google_analytics_opt_out_msg_option as $key => $seopress_google_analytics_opt_out_msg_value)
153
+ $options[$key] = $seopress_google_analytics_opt_out_msg_value;
154
+ if (isset($seopress_google_analytics_opt_out_msg_option['seopress_google_analytics_opt_out_msg'])) {
155
+ return $seopress_google_analytics_opt_out_msg_option['seopress_google_analytics_opt_out_msg'];
156
+ }
157
+ }
158
+ }
159
+
160
+ //User Consent JS
161
+ function seopress_google_analytics_cookies_js() {
162
+ wp_register_script('seopress-cookies', plugins_url( 'assets/js/seopress-cookies.min.js', dirname(dirname(__FILE__))), array(), '2.2.0', true);
163
+ wp_enqueue_script('seopress-cookies');
164
+
165
+ wp_enqueue_script( 'seopress-cookies-ajax', plugins_url( 'assets/js/seopress-cookies-ajax.js', dirname(dirname(__FILE__))), array( 'jquery','seopress-cookies' ), '', true );
166
+
167
+ $seopress_cookies_user_consent = array(
168
+ 'seopress_nonce' => wp_create_nonce('seopress_cookies_user_consent_nonce'),
169
+ 'seopress_cookies_user_consent' => admin_url('admin-ajax.php'),
170
+ );
171
+ wp_localize_script( 'seopress-cookies-ajax', 'seopressAjaxGAUserConsent', $seopress_cookies_user_consent );
172
+ }
173
+ if (seopress_google_analytics_disable_option() =='1') {
174
+ if (is_user_logged_in()) {
175
+ global $wp_roles;
176
+
177
+ //Get current user role
178
+ if(isset(wp_get_current_user()->roles[0])) {
179
+ $seopress_user_role = wp_get_current_user()->roles[0];
180
+ //If current user role matchs values from SEOPress GA settings then apply
181
+ if (function_exists('seopress_google_analytics_roles_option') && seopress_google_analytics_roles_option() !='') {
182
+ if( array_key_exists( $seopress_user_role, seopress_google_analytics_roles_option())) {
183
+ //do nothing
184
+ } else {
185
+ add_action('wp_enqueue_scripts','seopress_google_analytics_cookies_js', 20, 1);
186
+ }
187
+ } else {
188
+ add_action('wp_enqueue_scripts','seopress_google_analytics_cookies_js', 20, 1);
189
+ }
190
+ } else {
191
+ add_action('wp_enqueue_scripts','seopress_google_analytics_cookies_js', 20, 1);
192
+ }
193
+ }
194
+ }
195
+
196
  add_action('wp_head', 'seopress_load_google_analytics_options', 0);
197
  function seopress_load_google_analytics_options() {
198
  require_once ( dirname( __FILE__ ) . '/options-google-analytics.php'); //Google Analytics
199
  }
200
+
201
+ function seopress_cookies_user_consent() {
202
+ check_ajax_referer( 'seopress_cookies_user_consent_nonce', $_GET['_ajax_nonce'], true );
203
+ if (is_user_logged_in()) {
204
+ global $wp_roles;
205
+
206
+ //Get current user role
207
+ if(isset(wp_get_current_user()->roles[0])) {
208
+ $seopress_user_role = wp_get_current_user()->roles[0];
209
+ //If current user role matchs values from SEOPress GA settings then apply
210
+ if (function_exists('seopress_google_analytics_roles_option') && seopress_google_analytics_roles_option() !='') {
211
+ if( array_key_exists( $seopress_user_role, seopress_google_analytics_roles_option())) {
212
+ //do nothing
213
+ } else {
214
+ include_once ( dirname( __FILE__ ) . '/options-google-analytics.php'); //Google Analytics
215
+ $data = array();
216
+ $data['gtag_js'] = seopress_google_analytics_js(false);
217
+ wp_send_json_success($data);
218
+ }
219
+ } else {
220
+ include_once ( dirname( __FILE__ ) . '/options-google-analytics.php'); //Google Analytics
221
+ $data = array();
222
+ $data['gtag_js'] = seopress_google_analytics_js(false);
223
+ wp_send_json_success($data);
224
+ }
225
+ }
226
+ } else {
227
+ include_once ( dirname( __FILE__ ) . '/options-google-analytics.php'); //Google Analytics
228
+ $data = array();
229
+ $data['gtag_js'] = seopress_google_analytics_js(false);
230
+ wp_send_json_success($data);
231
+ }
232
+ }
233
+ add_action('wp_ajax_seopress_cookies_user_consent', 'seopress_cookies_user_consent');
234
+ add_action('wp_ajax_nopriv_seopress_cookies_user_consent', 'seopress_cookies_user_consent');
235
+
236
  // add_action('woocommerce_add_to_cart', 'seopress_load_google_analytics_checkout_options', 0);
237
  // function seopress_load_google_analytics_checkout_options() {
238
  // require_once ( dirname( __FILE__ ) . '/options-google-analytics-checkout.php'); //Google Analytics E-commerce
inc/functions/sitemap/template-xml-sitemaps-single.php CHANGED
@@ -61,10 +61,10 @@ function seopress_xml_sitemap_single() {
61
  if (seopress_xml_sitemap_img_enable_option() =='1') {
62
 
63
  //Standard images
64
- if (get_the_content($post) !='') {
65
  $dom = new domDocument;
66
  $internalErrors = libxml_use_internal_errors(true);
67
- $dom->loadHTML(esc_attr(wp_filter_nohtml_kses(htmlentities(get_the_content($post)))));
68
  $dom->preserveWhiteSpace = false;
69
  if ($dom->getElementsByTagName('img') !='') {
70
  $images = $dom->getElementsByTagName('img');
@@ -96,7 +96,7 @@ function seopress_xml_sitemap_single() {
96
  $seopress_sitemaps .= '<image:image>';
97
  $seopress_sitemaps .= "\n";
98
  $seopress_sitemaps .= '<image:loc>';
99
- $seopress_sitemaps .= '<![CDATA['.utf8_decode(urldecode($url)).']]>';
100
  $seopress_sitemaps .= '</image:loc>';
101
  $seopress_sitemaps .= "\n";
102
  $seopress_sitemaps .= '</image:image>';
61
  if (seopress_xml_sitemap_img_enable_option() =='1') {
62
 
63
  //Standard images
64
+ if (get_post_field('post_content', $post) !='') {
65
  $dom = new domDocument;
66
  $internalErrors = libxml_use_internal_errors(true);
67
+ $dom->loadHTML(get_post_field('post_content', $post));
68
  $dom->preserveWhiteSpace = false;
69
  if ($dom->getElementsByTagName('img') !='') {
70
  $images = $dom->getElementsByTagName('img');
96
  $seopress_sitemaps .= '<image:image>';
97
  $seopress_sitemaps .= "\n";
98
  $seopress_sitemaps .= '<image:loc>';
99
+ $seopress_sitemaps .= '<![CDATA['.utf8_decode(urldecode(esc_attr(wp_filter_nohtml_kses(htmlentities($url))))).']]>';
100
  $seopress_sitemaps .= '</image:loc>';
101
  $seopress_sitemaps .= "\n";
102
  $seopress_sitemaps .= '</image:image>';
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: 2018-04-14 10:56+0200\n"
6
- "PO-Revision-Date: 2018-04-14 10:56+0200\n"
7
  "Last-Translator: \n"
8
  "Language-Team: Benjamin DENIS <contact@seopress.org>\n"
9
  "Language: fr_FR\n"
@@ -36,86 +36,86 @@ msgid "XML / HTML Sitemap"
36
  msgstr "Sitemap XML / HTML"
37
 
38
  #: inc/admin/admin-header.php:39 inc/admin/admin.php:186
39
- #: inc/admin/admin.php:1321 inc/admin/adminbar.php:34
40
  msgid "Social Networks"
41
  msgstr "Réseaux Sociaux"
42
 
43
  #: inc/admin/admin-header.php:45 inc/admin/admin.php:187
44
- #: inc/admin/admin.php:1359 inc/admin/adminbar.php:40
45
  msgid "Google Analytics"
46
  msgstr "Google Analytics"
47
 
48
  #: inc/admin/admin-header.php:51 inc/admin/admin-metaboxes-form.php:91
49
- #: inc/admin/admin.php:188 inc/admin/admin.php:329 inc/admin/admin.php:605
50
- #: inc/admin/admin.php:1397 inc/admin/adminbar.php:46
51
  msgid "Advanced"
52
  msgstr "Avancé"
53
 
54
- #: inc/admin/admin-header.php:59 inc/admin/admin.php:1426
55
  msgid "WooCommerce"
56
  msgstr "WooCommerce"
57
 
58
- #: inc/admin/admin-header.php:65 inc/admin/admin.php:1454
59
  msgid "Easy Digital Downloads"
60
  msgstr "Easy Digital Downloads"
61
 
62
- #: inc/admin/admin-header.php:71 inc/admin/admin.php:1482
63
  msgid "Local Business"
64
  msgstr "Local Business"
65
 
66
- #: inc/admin/admin-header.php:77 inc/admin/admin.php:1510
67
  msgid "Dublin Core"
68
  msgstr "Dublin Core"
69
 
70
- #: inc/admin/admin-header.php:83 inc/admin/admin.php:1538
71
  msgid "Structured Data Types"
72
  msgstr "Types de données structurées"
73
 
74
- #: inc/admin/admin-header.php:89 inc/admin/admin.php:1566
75
  msgid "Breadcrumbs"
76
  msgstr "Fil d'Ariane"
77
 
78
- #: inc/admin/admin-header.php:95 inc/admin/admin.php:1604
79
  msgid "Google Page Speed"
80
  msgstr "Google Page Speed"
81
 
82
- #: inc/admin/admin-header.php:102 inc/admin/admin.php:1625
83
  msgid "robots.txt"
84
  msgstr "robots.txt"
85
 
86
- #: inc/admin/admin-header.php:109 inc/admin/admin.php:1666
87
  msgid "Google News Sitemap"
88
  msgstr "Google News Sitemap"
89
 
90
- #: inc/admin/admin-header.php:115 inc/admin/admin.php:1694
91
  #: inc/admin/adminbar.php:78
92
  msgid "Redirections"
93
  msgstr "Redirections"
94
 
95
- #: inc/admin/admin-header.php:121 inc/admin/admin.php:1733
96
  msgid "SEOPress BOT - Broken links"
97
  msgstr "SEOPress BOT - Liens cassés"
98
 
99
- #: inc/admin/admin-header.php:127 inc/admin/admin.php:1744
100
  #: inc/admin/adminbar.php:90
101
  msgid "Backlinks"
102
  msgstr "Backlinks"
103
 
104
- #: inc/admin/admin-header.php:134 inc/admin/admin.php:1756
105
  msgid ".htaccess"
106
  msgstr ".htaccess"
107
 
108
- #: inc/admin/admin-header.php:141 inc/admin/admin.php:1768
109
  msgid "RSS"
110
  msgstr "RSS"
111
 
112
- #: inc/admin/admin-header.php:147 inc/admin/admin.php:1801
113
  #: inc/admin/adminbar.php:66
114
  msgid "License"
115
  msgstr "Licence"
116
 
117
  #: inc/admin/admin-header.php:154 inc/admin/admin.php:189
118
- #: inc/admin/admin.php:1780 inc/admin/adminbar.php:52
119
  msgid "Tools"
120
  msgstr "Outils"
121
 
@@ -336,8 +336,8 @@ msgstr "Aucune balise titre personnalisée définie pour cet article."
336
 
337
  #: inc/admin/admin-metaboxes-content-analysis-form.php:140
338
  #: inc/admin/admin-metaboxes-form.php:126
339
- #: inc/admin/admin-metaboxes-form.php:127 inc/admin/admin.php:712
340
- #: inc/admin/admin.php:1888 inc/admin/admin.php:3117
341
  #: inc/functions/options-advanced-admin.php:758
342
  msgid "Meta description"
343
  msgstr "Meta description"
@@ -544,14 +544,14 @@ msgstr ""
544
  "Vous devez publier votre article pour obtenir la prévisualisation de "
545
  "l'extrait Google."
546
 
547
- #: inc/admin/admin-metaboxes-form.php:162 inc/admin/admin.php:2073
548
- #: inc/admin/admin.php:3195 inc/admin/admin.php:3332 inc/admin/admin.php:3427
549
- #: inc/admin/admin.php:3503 inc/admin/admin.php:3572 inc/admin/admin.php:3642
550
- #: inc/admin/admin.php:3692
551
  msgid "noindex"
552
  msgstr "noindex"
553
 
554
- #: inc/admin/admin-metaboxes-form.php:163 inc/admin/admin.php:3694
555
  msgid ""
556
  "Do not display all pages of the site in Google search results and do not "
557
  "display \"Cached\" links in search results."
@@ -559,22 +559,22 @@ msgstr ""
559
  "Ne pas afficher toutes les pages du site dans les résultats de recherche "
560
  "<br>et ne pas afficher de lien \"En cache\" dans les résultats de recherche."
561
 
562
- #: inc/admin/admin-metaboxes-form.php:168 inc/admin/admin.php:2081
563
- #: inc/admin/admin.php:3214 inc/admin/admin.php:3351 inc/admin/admin.php:3446
564
- #: inc/admin/admin.php:3711
565
  msgid "nofollow"
566
  msgstr "nofollow"
567
 
568
- #: inc/admin/admin-metaboxes-form.php:169 inc/admin/admin.php:3713
569
  msgid "Do not follow links for all pages."
570
  msgstr "Ne pas suivre les liens de tout le site."
571
 
572
- #: inc/admin/admin-metaboxes-form.php:174 inc/admin/admin.php:2089
573
- #: inc/admin/admin.php:3730
574
  msgid "noodp"
575
  msgstr "noodp"
576
 
577
- #: inc/admin/admin-metaboxes-form.php:175 inc/admin/admin.php:3732
578
  msgid ""
579
  "Do not use Open Directory project metadata for titles or excerpts for all "
580
  "pages."
@@ -582,30 +582,30 @@ msgstr ""
582
  "Ne pas utiliser les métadonnées de l'Open Directory project pour les titres "
583
  "ou les extraits de tout le site."
584
 
585
- #: inc/admin/admin-metaboxes-form.php:180 inc/admin/admin.php:2097
586
- #: inc/admin/admin.php:3749
587
  msgid "noimageindex"
588
  msgstr "noimageindex"
589
 
590
- #: inc/admin/admin-metaboxes-form.php:181 inc/admin/admin.php:3751
591
  msgid "Do not index images from the entire site."
592
  msgstr "Ne pas indexer les images de tout le site."
593
 
594
- #: inc/admin/admin-metaboxes-form.php:186 inc/admin/admin.php:2105
595
- #: inc/admin/admin.php:3768
596
  msgid "noarchive"
597
  msgstr "noarchive"
598
 
599
- #: inc/admin/admin-metaboxes-form.php:187 inc/admin/admin.php:3770
600
  msgid "Do not display a \"Cached\" link in the Google search results."
601
  msgstr "Ne pas afficher de lien \"En cache\" dans les résultats de recherche."
602
 
603
- #: inc/admin/admin-metaboxes-form.php:192 inc/admin/admin.php:2113
604
- #: inc/admin/admin.php:3787
605
  msgid "nosnippet"
606
  msgstr "nosnippet"
607
 
608
- #: inc/admin/admin-metaboxes-form.php:193 inc/admin/admin.php:3789
609
  msgid ""
610
  "Do not display a description in the Google search results for all pages."
611
  msgstr ""
@@ -613,7 +613,7 @@ msgstr ""
613
  "les pages du site."
614
 
615
  #: inc/admin/admin-metaboxes-form.php:196
616
- #: inc/admin/admin-metaboxes-form.php:197 inc/admin/admin.php:716
617
  msgid "Canonical URL"
618
  msgstr "URL Canonique"
619
 
@@ -662,85 +662,89 @@ msgid "Minimum size: 200x200px"
662
  msgstr "Taille minimum : 200x200px"
663
 
664
  #: inc/admin/admin-metaboxes-form.php:223
665
- #: inc/admin/admin-metaboxes-form.php:239 inc/admin/admin.php:4302
666
- #: inc/admin/admin.php:4391
667
  msgid "Select your default thumbnail"
668
  msgstr "Sélectionnez votre miniature par défaut"
669
 
670
  #: inc/admin/admin-metaboxes-form.php:224
671
- #: inc/admin/admin-metaboxes-form.php:240 inc/admin/admin.php:4060
672
- #: inc/admin/admin.php:4304 inc/admin/admin.php:4393
673
  msgid "Upload an Image"
674
  msgstr "Envoyer une image"
675
 
676
  #: inc/admin/admin-metaboxes-form.php:229
677
- #: inc/admin/admin-metaboxes-form.php:230
 
 
 
 
678
  msgid "Twitter Title"
679
  msgstr "Titre Twitter"
680
 
681
- #: inc/admin/admin-metaboxes-form.php:230
682
  msgid "Enter your Twitter title"
683
  msgstr "Entrez votre titre Twitter"
684
 
685
- #: inc/admin/admin-metaboxes-form.php:233
686
- #: inc/admin/admin-metaboxes-form.php:234
687
  msgid "Twitter description"
688
  msgstr "Description Twitter"
689
 
690
- #: inc/admin/admin-metaboxes-form.php:234
691
  msgid "Enter your Twitter description"
692
  msgstr "Entrez votre description Twitter"
693
 
694
- #: inc/admin/admin-metaboxes-form.php:237
695
- #: inc/admin/admin-metaboxes-form.php:240
696
  msgid "Twitter Thumbnail"
697
  msgstr "Miniature Twitter"
698
 
699
- #: inc/admin/admin-metaboxes-form.php:238
700
  msgid "Minimum size: 160x160px"
701
  msgstr "Taille minimum : 160x160px"
702
 
703
- #: inc/admin/admin-metaboxes-form.php:249
704
  msgid "Enable redirection?"
705
  msgstr "Activer la redirection ?"
706
 
707
- #: inc/admin/admin-metaboxes-form.php:253
708
- #: inc/admin/admin-metaboxes-form.php:259
709
  msgid "URL redirection"
710
  msgstr "URL de redirection"
711
 
712
- #: inc/admin/admin-metaboxes-form.php:255
713
  msgid "301 Moved Permanently"
714
  msgstr "301 Redirection permanente"
715
 
716
- #: inc/admin/admin-metaboxes-form.php:256
717
  msgid "302 Found (HTTP 1.1) / Moved Temporarily (HTTP 1.0)"
718
  msgstr "302 Trouvée (HTTP 1.1) / Redirection temporaire (HTTP 1.0)"
719
 
720
- #: inc/admin/admin-metaboxes-form.php:257
721
  msgid "307 Moved Temporarily (HTTP 1.1 Only)"
722
  msgstr "307 Redirection temporaire (HTTP 1.1 seulement)"
723
 
724
- #: inc/admin/admin-metaboxes-form.php:259
725
  msgid "Enter your new URL"
726
  msgstr "Saisissez votre nouvelle URL"
727
 
728
- #: inc/admin/admin-metaboxes-form.php:264
729
  #: inc/admin/admin-metaboxes-form.php:266
730
- #: inc/admin/admin-metaboxes-form.php:269
731
  #: inc/admin/admin-metaboxes-form.php:271
 
732
  msgid "Test your URL"
733
  msgstr "Tester votre URL"
734
 
735
- #: inc/admin/admin-metaboxes-form.php:284
736
  msgid "Exclude this post from Google News Sitemap?"
737
  msgstr "Exclure cet article du sitemap Google News ?"
738
 
739
- #: inc/admin/admin-metaboxes-form.php:290
740
  msgid "Use the standout tag for this post?"
741
  msgstr "Utilisez la balise standout pour cet article ?"
742
 
743
- #: inc/admin/admin-metaboxes-form.php:291
744
  msgid ""
745
  "Your article is an original source for the story.\n"
746
  "Your organization invested significant resources in reporting or producing "
@@ -756,50 +760,50 @@ msgstr ""
756
  "Vous n'avez pas utilisé la balise standout sur vos propres articles plus de "
757
  "sept fois durant la denière semaine civile."
758
 
759
- #: inc/admin/admin-metaboxes-form.php:305
760
  msgid "Learn how to use correctly the standout tag"
761
  msgstr "Apprenez à utiliser correctement la balise standout"
762
 
763
- #: inc/admin/admin-metaboxes-form.php:308
764
  msgid "Google News Genres"
765
  msgstr "Genres Google News"
766
 
767
- #: inc/admin/admin-metaboxes-form.php:310 inc/admin/admin.php:4655
768
- #: inc/admin/admin.php:4732 inc/admin/admin.php:4809 inc/admin/admin.php:4886
769
- #: inc/admin/admin.php:4963
770
  msgid "None"
771
  msgstr "Aucun"
772
 
773
- #: inc/admin/admin-metaboxes-form.php:311
774
  msgid "Press Release"
775
  msgstr "Press Release"
776
 
777
- #: inc/admin/admin-metaboxes-form.php:312
778
  msgid "Satire"
779
  msgstr "Satire"
780
 
781
- #: inc/admin/admin-metaboxes-form.php:313
782
  msgid "Blog"
783
  msgstr "Blog"
784
 
785
- #: inc/admin/admin-metaboxes-form.php:314
786
  msgid "OpEd"
787
  msgstr "OpEd"
788
 
789
- #: inc/admin/admin-metaboxes-form.php:315
790
  msgid "Opinion"
791
  msgstr "Opinion"
792
 
793
- #: inc/admin/admin-metaboxes-form.php:316
794
  msgid "UserGenerated"
795
  msgstr "UserGenerated"
796
 
797
- #: inc/admin/admin-metaboxes-form.php:321
798
- #: inc/admin/admin-metaboxes-form.php:322
799
  msgid "Google News Keywords <em>(max recommended limit: 12)</em>"
800
  msgstr "Mots clés Google News <em>(limite max recommandée: 12)</em>"
801
 
802
- #: inc/admin/admin-metaboxes-form.php:322
803
  msgid "Enter your Google News Keywords"
804
  msgstr "Entrez vos mots clés Google News"
805
 
@@ -815,7 +819,7 @@ msgstr "404 - Page non trouvée"
815
  msgid "Dashboard"
816
  msgstr "Tableau de bord"
817
 
818
- #: inc/admin/admin.php:185 inc/admin/admin.php:1283
819
  msgid "XML / Image / HTML Sitemap"
820
  msgstr "Plan de site XML / Image / HTML"
821
 
@@ -824,9 +828,9 @@ msgstr "Plan de site XML / Image / HTML"
824
  msgid "%%sitetitle%%"
825
  msgstr "%%sitetitle%%"
826
 
827
- #: inc/admin/admin.php:196 inc/admin/admin.php:3109 inc/admin/admin.php:3163
828
- #: inc/admin/admin.php:3282 inc/admin/admin.php:3395 inc/admin/admin.php:3472
829
- #: inc/admin/admin.php:3542 inc/admin/admin.php:3611 inc/admin/admin.php:3661
830
  msgid "Site Title"
831
  msgstr "Titre du Site"
832
 
@@ -835,7 +839,7 @@ msgstr "Titre du Site"
835
  msgid "%%tagline%%"
836
  msgstr "%%tagline%%"
837
 
838
- #: inc/admin/admin.php:197 inc/admin/admin.php:3110 inc/admin/admin.php:3121
839
  msgid "Tagline"
840
  msgstr "Slogan du site"
841
 
@@ -871,7 +875,7 @@ msgstr "Date du post"
871
  msgid "%%post_author%%"
872
  msgstr "%%post_author%%"
873
 
874
- #: inc/admin/admin.php:201 inc/admin/admin.php:3471
875
  msgid "Post author"
876
  msgstr "Auteur du post"
877
 
@@ -976,66 +980,149 @@ msgstr "Nom pluriel archives type d'article personnalisé"
976
 
977
  #: inc/admin/admin.php:213
978
  #, php-format
979
- msgid "%%date_archive%%"
980
- msgstr "%%date_archive%%"
981
 
982
  #: inc/admin/admin.php:213
983
- msgid "Date Archive"
984
- msgstr "Date d'archive"
985
 
986
  #: inc/admin/admin.php:214
987
  #, php-format
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
988
  msgid "%%_cf_your_custom_field_name%%"
989
  msgstr "%%_cf_your_custom_field_name%%"
990
 
991
- #: inc/admin/admin.php:214
992
  msgid "Custom fields from post, page or post type"
993
  msgstr "Champs personnalisés depuis un article, une page ou un type de contenu"
994
 
995
- #: inc/admin/admin.php:215
 
 
 
 
 
 
 
 
 
 
 
996
  #, php-format
997
  msgid "%%wc_single_cat%%"
998
  msgstr "%%wc_single_cat%%"
999
 
1000
- #: inc/admin/admin.php:215
1001
  msgid "Single product category"
1002
  msgstr "Catégorie fiche produit"
1003
 
1004
- #: inc/admin/admin.php:216
1005
  #, php-format
1006
  msgid "%%wc_single_tag%%"
1007
  msgstr "%%wc_single_tag%%"
1008
 
1009
- #: inc/admin/admin.php:216
1010
  msgid "Single product tag"
1011
  msgstr "Étiquette fiche produit"
1012
 
1013
- #: inc/admin/admin.php:217
1014
  #, php-format
1015
  msgid "%%wc_single_short_desc%%"
1016
  msgstr "%%wc_single_short_desc%%"
1017
 
1018
- #: inc/admin/admin.php:217
1019
  msgid "Single product short description"
1020
  msgstr "Description courte fiche produit"
1021
 
 
 
 
 
 
 
 
 
 
1022
  #: inc/admin/admin.php:223
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1023
  msgid "Templates variables"
1024
  msgstr "Modèles de variables"
1025
 
1026
- #: inc/admin/admin.php:231 inc/admin/admin.php:239
1027
  msgid "Browse our guides"
1028
  msgstr "Consultez nos guides"
1029
 
1030
- #: inc/admin/admin.php:232 inc/admin/admin.php:240
1031
  msgid "Read our FAQ"
1032
  msgstr "Consultez notre FAQ"
1033
 
1034
- #: inc/admin/admin.php:233 inc/admin/admin.php:241
1035
  msgid "Check our website"
1036
  msgstr "Visitez notre site web"
1037
 
1038
- #: inc/admin/admin.php:253
1039
  msgid ""
1040
  "Watch our video to learn how to connect your WordPress site with Google "
1041
  "Analytics and get statistics right in your dashboard (PRO only)."
@@ -1044,119 +1131,121 @@ msgstr ""
1044
  "avec Google Analytics et obtenir des statistiques directement dans votre "
1045
  "tableau de bord (PRO seulement)."
1046
 
1047
- #: inc/admin/admin.php:258
1048
  msgid "How-to"
1049
  msgstr "Guides"
1050
 
1051
- #: inc/admin/admin.php:266 inc/admin/admin.php:272
1052
  msgid "Read our guide"
1053
  msgstr "Consultez notre guide"
1054
 
1055
- #: inc/admin/admin.php:307 inc/admin/admin.php:311 inc/admin/admin.php:374
1056
- #: inc/admin/admin.php:378 inc/admin/admin.php:439 inc/admin/admin.php:443
1057
- #: inc/admin/admin.php:506 inc/admin/admin.php:510 inc/admin/admin.php:587
1058
- #: inc/admin/admin.php:591 inc/admin/admin.php:1259 inc/admin/admin.php:1263
1059
- #: inc/admin/admin.php:1297 inc/admin/admin.php:1301 inc/admin/admin.php:1335
1060
- #: inc/admin/admin.php:1339 inc/admin/admin.php:1373 inc/admin/admin.php:1377
1061
- #: inc/admin/admin.php:1411 inc/admin/admin.php:1415 inc/admin/admin.php:1440
1062
- #: inc/admin/admin.php:1444 inc/admin/admin.php:1468 inc/admin/admin.php:1472
1063
- #: inc/admin/admin.php:1496 inc/admin/admin.php:1500 inc/admin/admin.php:1524
1064
- #: inc/admin/admin.php:1528 inc/admin/admin.php:1552 inc/admin/admin.php:1556
1065
- #: inc/admin/admin.php:1580 inc/admin/admin.php:1584 inc/admin/admin.php:1641
1066
- #: inc/admin/admin.php:1645 inc/admin/admin.php:1680 inc/admin/admin.php:1684
1067
- #: inc/admin/admin.php:1709 inc/admin/admin.php:1713
 
1068
  msgid "Click to disable this feature"
1069
  msgstr "Cliquez pour désactiver cette fonctionnalité"
1070
 
1071
- #: inc/admin/admin.php:308 inc/admin/admin.php:310 inc/admin/admin.php:375
1072
- #: inc/admin/admin.php:377 inc/admin/admin.php:440 inc/admin/admin.php:442
1073
- #: inc/admin/admin.php:507 inc/admin/admin.php:509 inc/admin/admin.php:588
1074
- #: inc/admin/admin.php:590 inc/admin/admin.php:1260 inc/admin/admin.php:1262
1075
- #: inc/admin/admin.php:1298 inc/admin/admin.php:1300 inc/admin/admin.php:1336
1076
- #: inc/admin/admin.php:1338 inc/admin/admin.php:1374 inc/admin/admin.php:1376
1077
- #: inc/admin/admin.php:1412 inc/admin/admin.php:1414 inc/admin/admin.php:1441
1078
- #: inc/admin/admin.php:1443 inc/admin/admin.php:1469 inc/admin/admin.php:1471
1079
- #: inc/admin/admin.php:1497 inc/admin/admin.php:1499 inc/admin/admin.php:1525
1080
- #: inc/admin/admin.php:1527 inc/admin/admin.php:1553 inc/admin/admin.php:1555
1081
- #: inc/admin/admin.php:1581 inc/admin/admin.php:1583 inc/admin/admin.php:1642
1082
- #: inc/admin/admin.php:1644 inc/admin/admin.php:1681 inc/admin/admin.php:1683
1083
- #: inc/admin/admin.php:1710 inc/admin/admin.php:1712
 
1084
  msgid "Click to enable this feature"
1085
  msgstr "Cliquez pour activer cette fonctionnalité"
1086
 
1087
- #: inc/admin/admin.php:325
1088
  msgid "Home"
1089
  msgstr "Accueil"
1090
 
1091
- #: inc/admin/admin.php:326
1092
  msgid "Single Post Types"
1093
  msgstr "Détail Types de contenus"
1094
 
1095
- #: inc/admin/admin.php:327
1096
  msgid "Archives"
1097
  msgstr "Archives"
1098
 
1099
- #: inc/admin/admin.php:328 inc/admin/admin.php:394
1100
  msgid "Taxonomies"
1101
  msgstr "Taxonomies"
1102
 
1103
- #: inc/admin/admin.php:392 inc/admin/admin.php:525 inc/admin/admin.php:534
1104
  msgid "General"
1105
  msgstr "Général"
1106
 
1107
- #: inc/admin/admin.php:393
1108
  msgid "Post Types"
1109
  msgstr "Types de contenus"
1110
 
1111
- #: inc/admin/admin.php:395
1112
  msgid "HTML Sitemap"
1113
  msgstr "Sitemap HTML"
1114
 
1115
- #: inc/admin/admin.php:457
1116
  msgid "Knowledge Graph"
1117
  msgstr "Knowledge Graph"
1118
 
1119
- #: inc/admin/admin.php:458
1120
  msgid "Your social accounts"
1121
  msgstr "Vos comptes sociaux"
1122
 
1123
- #: inc/admin/admin.php:459
1124
  msgid "Facebook"
1125
  msgstr "Facebook"
1126
 
1127
- #: inc/admin/admin.php:460
1128
  msgid "Twitter"
1129
  msgstr "Twitter"
1130
 
1131
- #: inc/admin/admin.php:526 inc/admin/admin.php:535
1132
  msgid "Tracking"
1133
  msgstr "Suivi"
1134
 
1135
- #: inc/admin/admin.php:527 inc/admin/admin.php:536
1136
  msgid "Events"
1137
  msgstr "Evénements"
1138
 
1139
- #: inc/admin/admin.php:528 inc/admin/admin.php:537
1140
  msgid "Custom Dimensions"
1141
  msgstr "Dimensions personnalisées"
1142
 
1143
- #: inc/admin/admin.php:529
1144
  msgid "Stats in Dashboard"
1145
  msgstr "Stats dans le Tableau de bord"
1146
 
1147
- #: inc/admin/admin.php:606
1148
  msgid "Appearance"
1149
  msgstr "Apparence"
1150
 
1151
- #: inc/admin/admin.php:607
1152
  msgid "Security"
1153
  msgstr "Sécurité"
1154
 
1155
- #: inc/admin/admin.php:639
1156
  msgid "Export Settings"
1157
  msgstr "Exporter Paramètres"
1158
 
1159
- #: inc/admin/admin.php:641
1160
  msgid ""
1161
  "Export the plugin settings for this site as a .json file. This allows you to "
1162
  "easily import the configuration into another site."
@@ -1165,15 +1254,15 @@ msgstr ""
1165
  "vous permet d'importer facilement votre configuration dans un autre site "
1166
  "WordPress."
1167
 
1168
- #: inc/admin/admin.php:646 inc/admin/admin.php:699
1169
  msgid "Export"
1170
  msgstr "Exporter"
1171
 
1172
- #: inc/admin/admin.php:653
1173
  msgid "Import Settings"
1174
  msgstr "Importer Paramètres"
1175
 
1176
- #: inc/admin/admin.php:655
1177
  msgid ""
1178
  "Import the plugin settings from a .json file. This file can be obtained by "
1179
  "exporting the settings on another site using the form above."
@@ -1182,15 +1271,19 @@ msgstr ""
1182
  "être obtenu en exportant les paramètres depuis un autre site en utilisant le "
1183
  "formulaire ci-dessus."
1184
 
1185
- #: inc/admin/admin.php:663 inc/admin/admin.php:686
1186
  msgid "Import"
1187
  msgstr "Importer"
1188
 
1189
- #: inc/admin/admin.php:671
 
 
 
 
1190
  msgid "Import Redirections"
1191
  msgstr "Importez des redirections"
1192
 
1193
- #: inc/admin/admin.php:673
1194
  msgid ""
1195
  "Import your own redirections from a .csv file (separator \";\"). You must "
1196
  "have 3 columns in this order: url to match (without your domain name), url "
@@ -1201,15 +1294,15 @@ msgstr ""
1201
  "nom de domaine), l’url de redirection en absolu et le type de redirection "
1202
  "(301, 302 ou 307)."
1203
 
1204
- #: inc/admin/admin.php:676
1205
  msgid "Download a CSV example"
1206
  msgstr "Télécharger un fichier CSV d'exemple"
1207
 
1208
- #: inc/admin/admin.php:692
1209
  msgid "Export Redirections"
1210
  msgstr "Exporter redirections"
1211
 
1212
- #: inc/admin/admin.php:694
1213
  msgid ""
1214
  "Export all redirections for this site as a .csv file. This allows you to "
1215
  "easily import the redirections into another site, to Excel / Google Sheets..."
@@ -1217,53 +1310,53 @@ msgstr ""
1217
  "Exportez toutes les redirections de ce site vers un fichier CSV. Cela permet "
1218
  "de les importer facilement vers un autre site, Excel / Google Sheets..."
1219
 
1220
- #: inc/admin/admin.php:707
1221
  msgid "Import posts and terms metadata from Yoast"
1222
  msgstr ""
1223
  "Importer les méta données des articles, pages, types d'articles "
1224
  "personnalisés, terms de taxonomies depuis Yoast"
1225
 
1226
- #: inc/admin/admin.php:709
1227
  msgid "By clicking Migrate, we'll import:"
1228
  msgstr "En cliquant sur Migrer, vous importerez :"
1229
 
1230
- #: inc/admin/admin.php:711
1231
  msgid "Title tags"
1232
  msgstr "Balises titres"
1233
 
1234
- #: inc/admin/admin.php:713
1235
  msgid "Facebook Open Graph tags (title, description and image thumbnail)"
1236
  msgstr "Balises Facebook Open Graph (titre, description et miniature)"
1237
 
1238
- #: inc/admin/admin.php:714
1239
  msgid "Twitter tags (title, description and image thumbnail)"
1240
  msgstr "Balises Twitter (titre, description et miniature)"
1241
 
1242
- #: inc/admin/admin.php:715
1243
  msgid "Meta Robots (noindex, nofollow...)"
1244
  msgstr "Meta Robots (noindex, nofollow...)"
1245
 
1246
- #: inc/admin/admin.php:717
1247
  msgid "Focus keywords"
1248
  msgstr "Mots clés cibles"
1249
 
1250
- #: inc/admin/admin.php:719
1251
  msgid ""
1252
  "<strong>WARNING:</strong> Migration will delete all SEOPress posts and terms "
1253
- "metadata"
1254
  msgstr ""
1255
  "<strong>ATTENTION :</strong> La migration supprimera toutes les méta-données "
1256
- "de SEOPress"
1257
 
1258
- #: inc/admin/admin.php:720
1259
  msgid "Migrate now"
1260
  msgstr "Migrer maintenant"
1261
 
1262
- #: inc/admin/admin.php:727
1263
  msgid "Reset All Notices From Notifications Center"
1264
  msgstr "Réinitialiser toutes les notices du Centre de Notifications"
1265
 
1266
- #: inc/admin/admin.php:729
1267
  msgid ""
1268
  "By clicking Reset Notices, you'll see all notices again in notifications "
1269
  "center."
@@ -1271,15 +1364,15 @@ msgstr ""
1271
  "En cliquant sur Réinitialiser Notices, vous verrez à nouveau les notices "
1272
  "dans le centre de notifications."
1273
 
1274
- #: inc/admin/admin.php:734
1275
  msgid "Reset notices"
1276
  msgstr "Réinitialiser Notices"
1277
 
1278
- #: inc/admin/admin.php:741
1279
  msgid "Reset All Settings"
1280
  msgstr "Tout réinitialiser"
1281
 
1282
- #: inc/admin/admin.php:743
1283
  msgid ""
1284
  "<strong>WARNING:</strong> Delete all options related to SEOPress in your "
1285
  "database AND set settings to their default values."
@@ -1287,39 +1380,39 @@ msgstr ""
1287
  "<strong>AVERTISSEMENT:</strong> Supprime toutes les options liées à SEOPress "
1288
  "dans la base de données et redéfini ces derniers à leurs valeurs par défaut."
1289
 
1290
- #: inc/admin/admin.php:748
1291
  msgid "Reset settings"
1292
  msgstr "Réinitialiser les paramètres"
1293
 
1294
- #: inc/admin/admin.php:788 inc/admin/admin.php:794
1295
  msgid "SEO Tools"
1296
  msgstr "Outils SEO"
1297
 
1298
- #: inc/admin/admin.php:789 inc/admin/admin.php:795 inc/admin/admin.php:801
1299
- #: inc/admin/admin.php:806
1300
  msgid "Useful links"
1301
  msgstr "Liens utiles"
1302
 
1303
- #: inc/admin/admin.php:793 inc/admin/admin.php:805
1304
  msgid "Notifications Center"
1305
  msgstr "Centre de Notifications"
1306
 
1307
- #: inc/admin/admin.php:826
1308
  msgid "Your theme doesn't use <strong>add_theme_support('title-tag');</strong>"
1309
  msgstr ""
1310
  "Votre thème n'utilise pas <strong>add_theme_support('title-tag');</strong>"
1311
 
1312
- #: inc/admin/admin.php:827 inc/admin/admin.php:882 inc/admin/admin.php:892
1313
- #: inc/admin/admin.php:902
1314
  msgid "High impact"
1315
  msgstr "Impact élevé"
1316
 
1317
- #: inc/admin/admin.php:837 inc/admin/admin.php:868 inc/admin/admin.php:4486
1318
- #: inc/admin/admin.php:4507 inc/admin/admin.php:4528 inc/admin/admin.php:4549
1319
  msgid "Learn more"
1320
  msgstr "En savoir plus"
1321
 
1322
- #: inc/admin/admin.php:844
1323
  msgid ""
1324
  "We notice that you use Yoast SEO plugin. <br>Do you want to migrate all your "
1325
  "posts metadata to SEOPress?"
@@ -1328,252 +1421,252 @@ msgstr ""
1328
  "méta données de vos articles, pages et types d'articles personnalisés vers "
1329
  "SEOPress ?"
1330
 
1331
- #: inc/admin/admin.php:846
1332
  msgid "Migrate!"
1333
  msgstr "Migrer !"
1334
 
1335
- #: inc/admin/admin.php:867
1336
  msgid "Your site doesn't use an SSL certificate!"
1337
  msgstr "Votre site n'utilise pas de certificat SSL !"
1338
 
1339
- #: inc/admin/admin.php:869
1340
  msgid "Low impact"
1341
  msgstr "Impact faible"
1342
 
1343
- #: inc/admin/admin.php:871
1344
  msgid "Buy an SSL!"
1345
  msgstr "Acheter un SSL !"
1346
 
1347
- #: inc/admin/admin.php:881
1348
  msgid "Your site is not visible to Search Engines!"
1349
  msgstr "Votre site n'est pas visible aux moteurs de recherche !"
1350
 
1351
- #: inc/admin/admin.php:884 inc/admin/admin.php:894 inc/admin/admin.php:904
1352
- #: inc/admin/admin.php:928 inc/admin/admin.php:982 inc/admin/admin.php:995
1353
- #: inc/admin/admin.php:1067
1354
  msgid "Fix this!"
1355
  msgstr "Régler !"
1356
 
1357
- #: inc/admin/admin.php:891
1358
  msgid "Your site title is empty!"
1359
  msgstr "Le titre de votre site est vide !"
1360
 
1361
- #: inc/admin/admin.php:901 inc/admin/admin.php:2976
1362
  msgid ""
1363
  "Your permalinks are not SEO Friendly! Enable pretty permalinks to fix this."
1364
  msgstr ""
1365
  "Vos permaliens ne sont pas SEO Friendly ! Veuillez activer la réécriture "
1366
  "d'URL pour résoudre cela."
1367
 
1368
- #: inc/admin/admin.php:925
1369
  msgid "You RSS feed show full text!"
1370
  msgstr "Votre flux RSS affiche le texte complet !"
1371
 
1372
- #: inc/admin/admin.php:926 inc/admin/admin.php:980 inc/admin/admin.php:993
1373
  msgid "Medium impact"
1374
  msgstr "Impact modéré"
1375
 
1376
- #: inc/admin/admin.php:952
1377
  msgid "Break comments into pages is ON!"
1378
  msgstr "Diviser les commentaires en plusieurs pages est actif !"
1379
 
1380
- #: inc/admin/admin.php:953 inc/admin/admin.php:1017 inc/admin/admin.php:1053
1381
  msgid "Huge impact"
1382
  msgstr "Impact élevé"
1383
 
1384
- #: inc/admin/admin.php:955
1385
  msgid "Disable this!"
1386
  msgstr "Désactiver !"
1387
 
1388
- #: inc/admin/admin.php:979
1389
  msgid "Display more posts per page on homepage and archives"
1390
  msgstr ""
1391
  "Afficher davantage d'articles par page sur votre page d'accueil et archives"
1392
 
1393
- #: inc/admin/admin.php:992
1394
  msgid "You don't have an XML Sitemap!"
1395
  msgstr "Vous n'avez pas de Sitemap XML !"
1396
 
1397
- #: inc/admin/admin.php:1016
1398
  msgid "Do you have a Google My Business page? It's free!"
1399
  msgstr "Avez vous une page Google Business ? C'est gratuit !"
1400
 
1401
- #: inc/admin/admin.php:1019
1402
  msgid "Create your page now!"
1403
  msgstr "Créez votre page !"
1404
 
1405
- #: inc/admin/admin.php:1052
1406
  msgid "Add your site to Google. It's free!"
1407
  msgstr "Ajoutez votre site à Google. C’est gratuit !"
1408
 
1409
- #: inc/admin/admin.php:1055
1410
  msgid "Add your site to Search Console!"
1411
  msgstr "Ajoutez à Search Console !"
1412
 
1413
- #: inc/admin/admin.php:1065
1414
  msgid "You have to enter your licence key to get updates and support"
1415
  msgstr ""
1416
  "Vous devez entrer votre clé de licence pour obtenir mises à jour et support"
1417
 
1418
- #: inc/admin/admin.php:1080
1419
  msgid "Check websites setup on your server"
1420
  msgstr "Vérifier les sites présents sur votre hébergeur"
1421
 
1422
- #: inc/admin/admin.php:1082
1423
  msgid "Host IP: "
1424
  msgstr "IP de l'hôte : "
1425
 
1426
- #: inc/admin/admin.php:1088
1427
  msgid "Server IP Address: "
1428
  msgstr "Adresse IP du serveur : "
1429
 
1430
- #: inc/admin/admin.php:1090
1431
  msgid "Last scrape: "
1432
  msgstr "Dernière exploration : "
1433
 
1434
- #: inc/admin/admin.php:1091
1435
  msgid "Number of websites on your server: "
1436
  msgstr "Nombre de sites présents sur votre serveur : "
1437
 
1438
- #: inc/admin/admin.php:1103
1439
  msgid "Get list"
1440
  msgstr "Obtenir la liste"
1441
 
1442
- #: inc/admin/admin.php:1111
1443
  msgid "Check your domain expiration date"
1444
  msgstr "Vérifier la date d'expiration de votre nom de domaine"
1445
 
1446
- #: inc/admin/admin.php:1142
1447
  msgid "Your domain name: "
1448
  msgstr "Votre nom de domaine : "
1449
 
1450
- #: inc/admin/admin.php:1145
1451
  msgid "Your registrar: "
1452
  msgstr "Votre registraire de noms de domaine : "
1453
 
1454
- #: inc/admin/admin.php:1148
1455
  msgid "Last updated date: "
1456
  msgstr "Date de dernière mise à jour : "
1457
 
1458
- #: inc/admin/admin.php:1151
1459
  msgid "Domain creation date: "
1460
  msgstr "Date de création du domaine : "
1461
 
1462
- #: inc/admin/admin.php:1154
1463
  msgid "Your domain expires: "
1464
  msgstr "Votre domaine expire le : "
1465
 
1466
- #: inc/admin/admin.php:1159
1467
  msgid "Sorry, you domain name can't be verified :("
1468
  msgstr "Désolé, votre nom de domaine ne peut être vérifié :("
1469
 
1470
- #: inc/admin/admin.php:1162
1471
  msgid "Email me before expiration"
1472
  msgstr "M'alerter avant expiration"
1473
 
1474
- #: inc/admin/admin.php:1171
1475
  msgid "Check your Alexa Rank (Amazon index)"
1476
  msgstr "Vérifier votre rang Alexa (Indice Amazon)"
1477
 
1478
- #: inc/admin/admin.php:1186
1479
  msgid "Your Alexa Rank"
1480
  msgstr "Votre rang Alexa"
1481
 
1482
- #: inc/admin/admin.php:1208
1483
  msgid "Country Rank: "
1484
  msgstr "Rang Pays : "
1485
 
1486
- #: inc/admin/admin.php:1217
1487
  msgid "The lower, the best"
1488
  msgstr "Le plus faible, le mieux"
1489
 
1490
- #: inc/admin/admin.php:1221
1491
  msgid "Get Alexa Rank"
1492
  msgstr "Obtenir votre rang Alexa"
1493
 
1494
- #: inc/admin/admin.php:1229
1495
  msgid "Upload a list of links to disavow to Google"
1496
  msgstr "Téléverser une liste de liens à désavouer à Google"
1497
 
1498
- #: inc/admin/admin.php:1230
1499
  msgid "Google Trends"
1500
  msgstr "Google Tendances"
1501
 
1502
- #: inc/admin/admin.php:1231
1503
  msgid "Dareboost: Test, analyze and optimize your website"
1504
  msgstr "Dareboost : Testez, analysez et optimisez votre site web"
1505
 
1506
- #: inc/admin/admin.php:1232
1507
  msgid "Google Campaign URL Builder tool"
1508
  msgstr "Outil Google Campaign URL Builder"
1509
 
1510
- #: inc/admin/admin.php:1245
1511
  msgid "Titles & metas"
1512
  msgstr "Titres et Métas"
1513
 
1514
- #: inc/admin/admin.php:1246
1515
  msgid "Manage all your titles & metas"
1516
  msgstr "Gérez tous vos titres et métas"
1517
 
1518
- #: inc/admin/admin.php:1247 inc/admin/admin.php:1285 inc/admin/admin.php:1323
1519
- #: inc/admin/admin.php:1361 inc/admin/admin.php:1399 inc/admin/admin.php:1428
1520
- #: inc/admin/admin.php:1456 inc/admin/admin.php:1484 inc/admin/admin.php:1512
1521
- #: inc/admin/admin.php:1540 inc/admin/admin.php:1568 inc/admin/admin.php:1606
1522
- #: inc/admin/admin.php:1628 inc/admin/admin.php:1668 inc/admin/admin.php:1697
1523
- #: inc/admin/admin.php:1747 inc/admin/admin.php:1758 inc/admin/admin.php:1770
1524
- #: inc/admin/admin.php:1782 inc/admin/admin.php:1803
1525
  msgid "Manage"
1526
  msgstr "Gérer"
1527
 
1528
- #: inc/admin/admin.php:1275
1529
  msgid "Guide to manage your titles and meta descriptions - new window"
1530
  msgstr "Guide pour gérer vos titres et meta descriptions - nouvelle fenêtre"
1531
 
1532
- #: inc/admin/admin.php:1284
1533
  msgid "Manage your XML / Image / HTML Sitemap"
1534
  msgstr "Gérer votre plan de site XML / Image / HTML"
1535
 
1536
- #: inc/admin/admin.php:1313
1537
  msgid "Guide to enable your XML Sitemaps - new window"
1538
  msgstr "Guide pour activer votre plan de site XML - nouvelle fenêtre"
1539
 
1540
- #: inc/admin/admin.php:1322
1541
  msgid "Open Graph, Twitter Card, Google Knowledge Graph and more..."
1542
  msgstr "Open Graph, Twitter Card, Google Knowledge Graph et plus..."
1543
 
1544
- #: inc/admin/admin.php:1351
1545
  msgid "Guide to enable Google Knowledge Graph - new window"
1546
  msgstr "Guide pour activer Google Knowledge Graph - nouvelle fenêtre"
1547
 
1548
- #: inc/admin/admin.php:1360
1549
  msgid "Track everything about your visitors with Google Analytics"
1550
  msgstr "Suivez tout ce qui concerne vos visiteurs avec Google Analytics"
1551
 
1552
- #: inc/admin/admin.php:1389
1553
  msgid "Guide to getting started with Google Analytics - new window"
1554
  msgstr "Guide pour débuter avec Google Analytics - nouvelle fenêtre"
1555
 
1556
- #: inc/admin/admin.php:1398
1557
  msgid "Advanced SEO options for advanced users!"
1558
  msgstr "Options SEO avancées pour utilisateurs avancés !"
1559
 
1560
- #: inc/admin/admin.php:1427
1561
  msgid "Improve WooCommerce SEO"
1562
  msgstr "Améliorer le SEO de WooCommerce"
1563
 
1564
- #: inc/admin/admin.php:1455
1565
  msgid "Improve Easy Digital Downloads SEO"
1566
  msgstr "Améliorez le SEO de Easy Digital Downloads"
1567
 
1568
- #: inc/admin/admin.php:1483
1569
  msgid "Add Google Local Business data type"
1570
  msgstr "Ajoutez le type de données Google Local Business"
1571
 
1572
- #: inc/admin/admin.php:1511
1573
  msgid "Add Dublin Core meta tags"
1574
  msgstr "Ajout des balises Dublin Core"
1575
 
1576
- #: inc/admin/admin.php:1539
1577
  msgid ""
1578
  "Add data types to your content: articles, courses, recipes, videos, events "
1579
  "and products"
@@ -1581,470 +1674,486 @@ msgstr ""
1581
  "Ajout des types de données à vos contenus : articles, cours, recettes, "
1582
  "vidéos, événements et produits"
1583
 
1584
- #: inc/admin/admin.php:1567
1585
  msgid "Enable Breadcrumbs for your theme and improve your SEO in SERPs"
1586
  msgstr ""
1587
  "Activer le fil d'Ariane pour votre thème et améliorer votre SEO dans les "
1588
  "résultats de recherche"
1589
 
1590
- #: inc/admin/admin.php:1596
1591
  msgid "Guide to enable Breadcrumbs - new window"
1592
  msgstr "Guide pour activer le fil d'Ariane - nouvelle fenêtre"
1593
 
1594
- #: inc/admin/admin.php:1605
1595
  msgid "Track your website performance to improve SEO with Google Page Speed"
1596
  msgstr ""
1597
  "Suivez les performances de votre site Web afin d’améliorer le SEO avec "
1598
  "Google Page Speed"
1599
 
1600
- #: inc/admin/admin.php:1616
1601
  msgid "Guide to analyse your site with Google Page Speed - new window"
1602
  msgstr ""
1603
  "Guide pour analyser cette page avec Google Page Speed - nouvelle fenêtre"
1604
 
1605
- #: inc/admin/admin.php:1626
1606
  msgid "Edit your robots.txt file"
1607
  msgstr "Editer votre fichier robots.txt"
1608
 
1609
- #: inc/admin/admin.php:1627
1610
  msgid "View your robots.txt"
1611
  msgstr "Voir votre robots.txt"
1612
 
1613
- #: inc/admin/admin.php:1657
1614
  msgid "Guide to edit your robots.txt file - new window"
1615
  msgstr "Guide pour éditer votre fichier robots.txt - nouvelle fenêtre"
1616
 
1617
- #: inc/admin/admin.php:1667
1618
  msgid "Optimize your site for Google News"
1619
  msgstr "Optimisez votre site pour Google Actualités"
1620
 
1621
- #: inc/admin/admin.php:1695
1622
  msgid "Monitor 404, create 301, 302 and 307 redirections"
1623
  msgstr "Surveiller les 404, créer des redirections 301, 302 et 307"
1624
 
1625
- #: inc/admin/admin.php:1696
1626
  msgid "See redirects"
1627
  msgstr "Voir les redirections"
1628
 
1629
- #: inc/admin/admin.php:1725
1630
  msgid "Guide to enable 301 redirections and 404 monitoring - new window"
1631
  msgstr ""
1632
  "Guide pour activer les redirections 301 et la surveillance des 404 - "
1633
  "nouvelle fenêtre"
1634
 
1635
- #: inc/admin/admin.php:1734
1636
  msgid "Scan your site to find SEO problems."
1637
  msgstr "Analyser votre site pour trouver des problèmes de SEO."
1638
 
1639
- #: inc/admin/admin.php:1735
1640
  msgid "See broken links"
1641
  msgstr "Voir les liens cassés"
1642
 
1643
- #: inc/admin/admin.php:1736
1644
  msgid "Scan"
1645
  msgstr "Scan"
1646
 
1647
- #: inc/admin/admin.php:1745
1648
  msgid "Check your backlinks with Majestic API."
1649
  msgstr "Vérifiez vos backlinks avec l'API Majestic."
1650
 
1651
- #: inc/admin/admin.php:1746
1652
  msgid "See backlinks"
1653
  msgstr "Voir vos backlinks"
1654
 
1655
- #: inc/admin/admin.php:1757
 
 
 
 
 
 
 
 
1656
  msgid "Edit your htaccess file."
1657
  msgstr "Modifier votre fichier htaccess."
1658
 
1659
- #: inc/admin/admin.php:1769
1660
  msgid "Configure default WordPress RSS."
1661
  msgstr "Configuration des liens RSS par défaut de WordPress."
1662
 
1663
- #: inc/admin/admin.php:1781
1664
  msgid "Import / export SEOPress settings from site to site."
1665
  msgstr "Importer / Exporter les paramètres d'un site à un autre."
1666
 
1667
- #: inc/admin/admin.php:1792
1668
  msgid "Guide to export / import / reset settings - new window"
1669
  msgstr ""
1670
  "Guide pour importer / exporter / réinitialiser les paramètres - nouvelle "
1671
  "fenêtre"
1672
 
1673
- #: inc/admin/admin.php:1802
1674
  msgid "Edit your SEOPress license key."
1675
  msgstr "Modifier votre clé de licence SEOPress."
1676
 
1677
- #: inc/admin/admin.php:1813
1678
  msgid "Guide to activate SEOPress PRO - new window"
1679
  msgstr "Guide pour activer SEOPress PRO - nouvelle fenêtre"
1680
 
1681
- #: inc/admin/admin.php:1880 inc/admin/admin.php:3106
1682
  msgid "Site title"
1683
  msgstr "Titre du site"
1684
 
1685
- #: inc/admin/admin.php:2121
1686
  msgid "Indicate paginated content to Google"
1687
  msgstr "Indiquer à Google le contenu paginé"
1688
 
1689
- #: inc/admin/admin.php:2138 inc/admin/admin.php:3825
1690
  msgid "Enable XML Sitemap"
1691
  msgstr "Activez le Sitemap XML"
1692
 
1693
- #: inc/admin/admin.php:2146
1694
  msgid "Enable XML Image Sitemaps"
1695
  msgstr "Activer le Sitemap XML Images"
1696
 
1697
- #: inc/admin/admin.php:2154 inc/admin/admin.php:3879
1698
  msgid "Enable HTML Sitemap"
1699
  msgstr "Activez le Sitemap HTML"
1700
 
1701
- #: inc/admin/admin.php:2170
1702
  msgid "Check to INCLUDE Post Types"
1703
  msgstr "Cochez pour INCLURE les Types d'article"
1704
 
1705
- #: inc/admin/admin.php:2186
1706
  msgid "Check to INCLUDE Taxonomies"
1707
  msgstr "Cochez pour INCLURE les Taxonomies"
1708
 
1709
- #: inc/admin/admin.php:2202 inc/admin/admin.php:3984
1710
  msgid "Enter a post, page or custom post type ID(s) to display the sitemap"
1711
  msgstr ""
1712
  "Saisissez un ID d'article, de page ou de type de contenu où afficher le plan "
1713
  "de site"
1714
 
1715
- #: inc/admin/admin.php:2210 inc/admin/admin.php:3998
1716
  msgid "Exclude some Posts, Pages or Custom Post Types"
1717
  msgstr "Exclure certains articles, pages ou types de contenus"
1718
 
1719
- #: inc/admin/admin.php:2218
1720
  msgid "Disable the display of the publication date"
1721
  msgstr "Désactiver l’affichage de la date de publication"
1722
 
1723
- #: inc/admin/admin.php:2235
1724
  msgid "Person or organization"
1725
  msgstr "Personne ou Organisation"
1726
 
1727
- #: inc/admin/admin.php:2243 inc/admin/admin.php:4045
1728
  msgid "Your name / organization"
1729
  msgstr "Votre nom / organisation"
1730
 
1731
- #: inc/admin/admin.php:2251 inc/admin/admin.php:4058
1732
  msgid "Your photo / organization logo"
1733
  msgstr "Votre photo / logo"
1734
 
1735
- #: inc/admin/admin.php:2259 inc/admin/admin.php:4086
1736
  msgid "Organization Phone number (only for Organization)"
1737
  msgstr ""
1738
  "Numéro de téléphone de l'organisation (seulement pour les organisations)"
1739
 
1740
- #: inc/admin/admin.php:2267
1741
  msgid "Contact type (only for Organization)"
1742
  msgstr "Type de contact (seulement pour les organisations)"
1743
 
1744
- #: inc/admin/admin.php:2275
1745
  msgid "Contact option (only for Organization)"
1746
  msgstr "Option de contact (seulement pour les organisations)"
1747
 
1748
- #: inc/admin/admin.php:2292 inc/admin/admin.php:4161
1749
  msgid "Facebook Page URL"
1750
  msgstr "URL de la page Facebook"
1751
 
1752
- #: inc/admin/admin.php:2300
1753
  msgid "Twitter Username"
1754
  msgstr "Compte utilisateur Twitter"
1755
 
1756
- #: inc/admin/admin.php:2308 inc/admin/admin.php:4186
1757
  msgid "Google + URL"
1758
  msgstr "URL Google +"
1759
 
1760
- #: inc/admin/admin.php:2316 inc/admin/admin.php:4198
1761
  msgid "Pinterest URL"
1762
  msgstr "URL Pinterest"
1763
 
1764
- #: inc/admin/admin.php:2324 inc/admin/admin.php:4210
1765
  msgid "Instagram URL"
1766
  msgstr "URL Instagram"
1767
 
1768
- #: inc/admin/admin.php:2332 inc/admin/admin.php:4222
1769
  msgid "YouTube URL"
1770
  msgstr "URL YouTube"
1771
 
1772
- #: inc/admin/admin.php:2340 inc/admin/admin.php:4234
1773
  msgid "LinkedIn URL"
1774
  msgstr "URL LinkedIn"
1775
 
1776
- #: inc/admin/admin.php:2348 inc/admin/admin.php:4246
1777
  msgid "MySpace URL"
1778
  msgstr "URL MySpace"
1779
 
1780
- #: inc/admin/admin.php:2356 inc/admin/admin.php:4258
1781
  msgid "Soundcloud URL"
1782
  msgstr "URL Soundcloud"
1783
 
1784
- #: inc/admin/admin.php:2364 inc/admin/admin.php:4270
1785
  msgid "Tumblr URL"
1786
  msgstr "URL Tumblr"
1787
 
1788
- #: inc/admin/admin.php:2381
1789
  msgid "Enable Open Graph Data"
1790
  msgstr "Activez les données Open Graph"
1791
 
1792
- #: inc/admin/admin.php:2389 inc/admin/admin.php:4302
1793
  msgid "Select a default image"
1794
  msgstr "Sélectionnez une image par défaut"
1795
 
1796
- #: inc/admin/admin.php:2397
1797
  msgid "Facebook Link Ownership ID"
1798
  msgstr "Facebook Link Ownership ID"
1799
 
1800
- #: inc/admin/admin.php:2405
1801
  msgid "Facebook Admin ID"
1802
  msgstr "Facebook Admin ID"
1803
 
1804
- #: inc/admin/admin.php:2413
1805
  msgid "Facebook App ID"
1806
  msgstr "Facebook App ID"
1807
 
1808
- #: inc/admin/admin.php:2430
1809
  msgid "Enable Twitter Card"
1810
  msgstr "Activez Twitter Card"
1811
 
1812
- #: inc/admin/admin.php:2438
1813
  msgid "Use Open Graph if no Twitter Cards filled"
1814
  msgstr "Utilisez Open Graph is Twitter Cards non renseignées"
1815
 
1816
- #: inc/admin/admin.php:2446 inc/admin/admin.php:4391
1817
  msgid "Default Twitter Image"
1818
  msgstr "Image Twitter par défaut"
1819
 
1820
- #: inc/admin/admin.php:2454
1821
  msgid "Image size for Twitter Summary card"
1822
  msgstr "Taille d'image pour Twitter Summary Card"
1823
 
1824
- #: inc/admin/admin.php:2471
1825
  msgid "Enable Google Analytics tracking"
1826
  msgstr "Activer le suivi Google Analytics"
1827
 
1828
- #: inc/admin/admin.php:2479 inc/admin/admin.php:4440
1829
  msgid "Enter your tracking ID"
1830
  msgstr "Saisissez votre ID de suivi"
1831
 
1832
- #: inc/admin/admin.php:2487
 
 
 
 
 
 
 
 
1833
  msgid "Exclude user roles from tracking"
1834
  msgstr "Exclure des rôles utilisateurs du suivi"
1835
 
1836
- #: inc/admin/admin.php:2505 inc/admin/admin.php:4483
1837
  msgid "Enable remarketing, demographics and interest reporting"
1838
  msgstr ""
1839
  "Activer le remarketing, les rapports démographiques et centres d'intérêts"
1840
 
1841
- #: inc/admin/admin.php:2513 inc/admin/admin.php:4504
1842
  msgid "Enable IP Anonymization"
1843
  msgstr "Activer l'anonymisation des IP"
1844
 
1845
- #: inc/admin/admin.php:2521 inc/admin/admin.php:4525
1846
  msgid "Enhanced Link Attribution"
1847
  msgstr "Améliorer l'attribution des liens"
1848
 
1849
- #: inc/admin/admin.php:2529 inc/admin/admin.php:4546
1850
  msgid "Enable cross-domain tracking"
1851
  msgstr "Activer le suivi cross-domain"
1852
 
1853
- #: inc/admin/admin.php:2537 inc/admin/admin.php:4560
1854
  msgid "Cross domains"
1855