Permalink Manager Lite - Version 2.2.8.4

Version Description

  • Hotfix for Permastructures (now the permalink formats are saved correctly)
  • Hotfix for trailing slashes settings (the native settings will no longer be overwritten by Permalink Manager)
Download this release

Release Info

Developer mbis
Plugin Icon 128x128 Permalink Manager Lite
Version 2.2.8.4
Comparing to
See all releases

Code changes from version 2.2.7.6 to 2.2.8.4

README.txt CHANGED
@@ -7,7 +7,7 @@ Tags: permalinks, custom permalinks, url editor, permalinks, woocommerce permali
7
  Requires at least: 4.4.0
8
  Requires PHP: 5.4
9
  Tested up to: 5.3.1
10
- Stable tag: 2.2.7.6
11
 
12
  Permalink Manager Pro allows to easily change full URL addresses of posts, pages, custom post types, terms and WooCommerce links. You can also set different permalink formats per language or bulk change the URLs.
13
 
@@ -103,6 +103,26 @@ It is because Permalink Manager overwrites one of the core Wordpress functionali
103
 
104
  == Changelog ==
105
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
106
  = 2.2.7.6 =
107
  * Code optimization for Bulk URI Editor
108
  * Support for WooCommerce breadcrumbs
7
  Requires at least: 4.4.0
8
  Requires PHP: 5.4
9
  Tested up to: 5.3.1
10
+ Stable tag: 2.2.8.4
11
 
12
  Permalink Manager Pro allows to easily change full URL addresses of posts, pages, custom post types, terms and WooCommerce links. You can also set different permalink formats per language or bulk change the URLs.
13
 
103
 
104
  == Changelog ==
105
 
106
+ = 2.2.8.4 =
107
+ * Hotfix for Permastructures (now the permalink formats are saved correctly)
108
+ * Hotfix for trailing slashes settings (the native settings will no longer be overwritten by Permalink Manager)
109
+
110
+ = 2.2.8.2/2.2.8.3 =
111
+ * Improved feature descriptions in the settings
112
+ * Hotfix for endpoint redirect
113
+
114
+ = 2.2.8.1 =
115
+ * Hotfix for stop-words (now, the stop-words can be saved again)
116
+ * Support for Duplicate Page plugin
117
+
118
+ = 2.2.8.0 =
119
+ * Hotfix for multisite/network installations. Now, the plugin globals are reloaded whenever switch_blog() function is called.
120
+ * Hotfix for url_to_postid() function. The $pm_query global will no longer be altered.
121
+ * Hotfix for post/page revisions in custom permalink detect function
122
+ * Improved WP All Import Pro integration (better support for taxonomies)
123
+ * A different approach for WP Customize URLs
124
+ * New option available - "Old slug redirect"
125
+
126
  = 2.2.7.6 =
127
  * Code optimization for Bulk URI Editor
128
  * Support for WooCommerce breadcrumbs
includes/core/permalink-manager-actions.php CHANGED
@@ -9,8 +9,11 @@ class Permalink_Manager_Actions extends Permalink_Manager_Class {
9
  add_action('admin_init', array($this, 'extra_actions'));
10
 
11
  // Ajax-based functions
12
- add_action('wp_ajax_pm_bulk_tools', array($this, 'pm_bulk_tools'));
13
- add_action('wp_ajax_pm_save_permalink', array($this, 'pm_save_permalink'));
 
 
 
14
 
15
  add_action('clean_permalinks_event', array($this, 'clean_permalinks_hook'));
16
  add_action('init', array($this, 'clean_permalinks_cronjob'));
@@ -34,8 +37,6 @@ class Permalink_Manager_Actions extends Permalink_Manager_Class {
34
 
35
  $actions_map = array(
36
  'uri_editor' => array('function' => 'update_all_permalinks', 'display_uri_table' => true),
37
- //'regenerate' => array('function' => 'regenerate_all_permalinks', 'display_uri_table' => true),
38
- //'find_and_replace' => array('function' => 'find_and_replace', 'display_uri_table' => true),
39
  'permalink_manager_options' => array('function' => 'save_settings'),
40
  'permalink_manager_permastructs' => array('function' => 'save_permastructures'),
41
  'flush_sitemaps' => array('function' => 'flush_sitemaps'),
@@ -86,6 +87,13 @@ class Permalink_Manager_Actions extends Permalink_Manager_Class {
86
  }
87
  }
88
 
 
 
 
 
 
 
 
89
  // Sanitize & override the global with new settings
90
  $new_options = Permalink_Manager_Helper_Functions::sanitize_array($new_options);
91
  $permalink_manager_options = $new_options = array_filter($new_options);
@@ -286,28 +294,26 @@ class Permalink_Manager_Actions extends Permalink_Manager_Class {
286
 
287
  $post_fields = $_POST;
288
  $permastructure_options = $permastructures = array();
 
289
 
290
- foreach($post_fields as $option_name => $option_value) {
291
- $new_options[$option_name] = $option_value;
292
- }
293
 
294
- // Split permastructure & permastructure settings
295
- if(!empty($new_options['post_types'])) {
296
- $permastructures['post_types'] = $new_options['post_types'];
297
- }
298
 
299
- if(!empty($new_options['taxonomies'])) {
300
- $permastructures['taxonomies'] = $new_options['taxonomies'];
 
 
301
  }
302
 
303
- if(!empty($new_options['permastructure-settings'])) {
304
- $permastructure_options = $new_options['permastructure-settings'];
305
  }
306
 
307
  // A. Permastructures
308
- if(!empty($new_options['post_types']) || !empty($new_options['taxonomies'])) {
309
- $permastructures = Permalink_Manager_Helper_Functions::multidimensional_array_map('untrailingslashit', $permastructures);
310
-
311
  // Override the global with settings
312
  $permalink_manager_permastructs = $permastructures;
313
 
@@ -546,8 +552,7 @@ class Permalink_Manager_Actions extends Permalink_Manager_Class {
546
  unset($permalink_manager_uris[$uri_key]);
547
  update_option('permalink-manager-uris', $permalink_manager_uris);
548
 
549
- $permalink_manager_before_sections_html .= Permalink_Manager_Admin_Functions::get_alert_message(sprintf(__( 'URI "%s" was removed successfully!', 'permalink-manager' ), $uri), 'updated');
550
- $updated = true;
551
  }
552
 
553
  // Check if custom redirects are set
@@ -555,12 +560,17 @@ class Permalink_Manager_Actions extends Permalink_Manager_Class {
555
  unset($permalink_manager_redirects[$uri_key]);
556
  update_option('permalink-manager-redirects', $permalink_manager_redirects);
557
 
558
- $permalink_manager_before_sections_html .= Permalink_Manager_Admin_Functions::get_alert_message(__( 'Broken redirects were removed successfully!', 'permalink-manager' ), 'updated');
559
- $updated = true;
560
  }
561
 
562
  if(empty($updated)) {
563
  $permalink_manager_before_sections_html .= Permalink_Manager_Admin_Functions::get_alert_message(__( 'URI and/or custom redirects does not exist or were already removed!', 'permalink-manager' ), 'error');
 
 
 
 
 
 
564
  }
565
  }
566
 
@@ -600,6 +610,33 @@ class Permalink_Manager_Actions extends Permalink_Manager_Class {
600
  update_option('permalink-manager-uris', $permalink_manager_uris);
601
  }
602
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
603
  /**
604
  * Clear sitemaps cache
605
  */
9
  add_action('admin_init', array($this, 'extra_actions'));
10
 
11
  // Ajax-based functions
12
+ if(is_admin()) {
13
+ add_action('wp_ajax_pm_bulk_tools', array($this, 'pm_bulk_tools'));
14
+ add_action('wp_ajax_pm_save_permalink', array($this, 'pm_save_permalink'));
15
+ add_action('wp_ajax_detect_duplicates', array($this, 'ajax_detect_duplicates') );
16
+ }
17
 
18
  add_action('clean_permalinks_event', array($this, 'clean_permalinks_hook'));
19
  add_action('init', array($this, 'clean_permalinks_cronjob'));
37
 
38
  $actions_map = array(
39
  'uri_editor' => array('function' => 'update_all_permalinks', 'display_uri_table' => true),
 
 
40
  'permalink_manager_options' => array('function' => 'save_settings'),
41
  'permalink_manager_permastructs' => array('function' => 'save_permastructures'),
42
  'flush_sitemaps' => array('function' => 'flush_sitemaps'),
87
  }
88
  }
89
 
90
+ // Allow only white-listed option groups
91
+ foreach($new_options as $group => $group_options) {
92
+ if(!in_array($group, array('licence', 'screen-options', 'general', 'permastructure-settings', 'stop-words'))) {
93
+ unset($new_options[$group]);
94
+ }
95
+ }
96
+
97
  // Sanitize & override the global with new settings
98
  $new_options = Permalink_Manager_Helper_Functions::sanitize_array($new_options);
99
  $permalink_manager_options = $new_options = array_filter($new_options);
294
 
295
  $post_fields = $_POST;
296
  $permastructure_options = $permastructures = array();
297
+ $permastructure_types = array('post_types', 'taxonomies');
298
 
299
+ // Split permastructures & sanitize them
300
+ foreach($permastructure_types as $type) {
301
+ if(empty($_POST[$type]) || !is_array($_POST[$type])) { continue; }
302
 
303
+ $permastructures[$type] = $_POST[$type];
 
 
 
304
 
305
+ foreach($permastructures[$type] as &$single_permastructure) {
306
+ $single_permastructure = Permalink_Manager_Helper_Functions::sanitize_title($single_permastructure, true, false, false);
307
+ $single_permastructure = trim($single_permastructure, '\/ ');
308
+ }
309
  }
310
 
311
+ if(!empty($_POST['permastructure-settings'])) {
312
+ $permastructure_options = $_POST['permastructure-settings'];
313
  }
314
 
315
  // A. Permastructures
316
+ if(!empty($permastructures['post_types']) || !empty($permastructures['taxonomies'])) {
 
 
317
  // Override the global with settings
318
  $permalink_manager_permastructs = $permastructures;
319
 
552
  unset($permalink_manager_uris[$uri_key]);
553
  update_option('permalink-manager-uris', $permalink_manager_uris);
554
 
555
+ $updated = Permalink_Manager_Admin_Functions::get_alert_message(sprintf(__( 'URI "%s" was removed successfully!', 'permalink-manager' ), $uri), 'updated');
 
556
  }
557
 
558
  // Check if custom redirects are set
560
  unset($permalink_manager_redirects[$uri_key]);
561
  update_option('permalink-manager-redirects', $permalink_manager_redirects);
562
 
563
+ $updated = Permalink_Manager_Admin_Functions::get_alert_message(__( 'Broken redirects were removed successfully!', 'permalink-manager' ), 'updated');
 
564
  }
565
 
566
  if(empty($updated)) {
567
  $permalink_manager_before_sections_html .= Permalink_Manager_Admin_Functions::get_alert_message(__( 'URI and/or custom redirects does not exist or were already removed!', 'permalink-manager' ), 'error');
568
+ } else {
569
+ // Display the alert in admin panel
570
+ if(!empty($permalink_manager_before_sections_html) && is_admin()) {
571
+ $permalink_manager_before_sections_html .= $updated;
572
+ }
573
+ return true;
574
  }
575
  }
576
 
610
  update_option('permalink-manager-uris', $permalink_manager_uris);
611
  }
612
 
613
+ /**
614
+ * Check if URI was used before
615
+ */
616
+ function ajax_detect_duplicates($uri = null, $element_id = null) {
617
+ $duplicate_alert = __("URI is already in use, please select another one!", "permalink-manager");
618
+
619
+ if(!empty($_REQUEST['custom_uris'])) {
620
+ // Sanitize the array
621
+ $custom_uris = Permalink_Manager_Helper_Functions::sanitize_array($_REQUEST['custom_uris']);
622
+ $duplicates_array = array();
623
+
624
+ // Check each URI
625
+ foreach($custom_uris as $element_id => $uri) {
626
+ $duplicates_array[$element_id] = Permalink_Manager_Helper_Functions::is_uri_duplicated($uri, $element_id) ? $duplicate_alert : 0;
627
+ }
628
+
629
+ // Convert the output to JSON and stop the function
630
+ echo json_encode($duplicates_array);
631
+ } else if(!empty($_REQUEST['custom_uri']) && !empty($_REQUEST['element_id'])) {
632
+ $is_duplicated = Permalink_Manager_Helper_Functions::is_uri_duplicated($uri, $element_id);
633
+
634
+ echo ($is_duplicated) ? $duplicate_alert : 0;;
635
+ }
636
+
637
+ die();
638
+ }
639
+
640
  /**
641
  * Clear sitemaps cache
642
  */
includes/core/permalink-manager-admin-functions.php CHANGED
@@ -11,15 +11,13 @@ class Permalink_Manager_Admin_Functions extends Permalink_Manager_Class {
11
  public function __construct() {
12
  add_action( 'admin_menu', array($this, 'add_menu_page') );
13
  add_action( 'admin_init', array($this, 'init') );
14
- add_action( 'admin_init', array($this, 'redirect_customizer') );
15
 
16
  add_action( 'admin_notices', array($this, 'display_plugin_notices'));
17
  add_action( 'admin_notices', array($this, 'display_global_notices'));
18
  add_action( 'wp_ajax_dismissed_notice_handler', array($this, 'hide_global_notice') );
19
 
20
  add_filter( 'default_hidden_columns', array($this, 'quick_edit_hide_column'), 10, 2 );
21
-
22
- add_action( 'wp_ajax_detect_duplicates', array($this, 'ajax_detect_duplicates') );
23
  }
24
 
25
  /**
@@ -36,37 +34,30 @@ class Permalink_Manager_Admin_Functions extends Permalink_Manager_Class {
36
  }
37
 
38
  /**
39
- * Redirect custom permalinks to the native ones in Customizer editor
40
  */
41
- public function redirect_customizer() {
42
- if(strpos($_SERVER['REQUEST_URI'], 'customize.php') && !empty($_GET['url'])) {
43
- $old_url = $_GET['url'];
44
- $old_path = trim(parse_url($old_url, PHP_URL_PATH), "/");
45
- $old_query = parse_url($old_url, PHP_URL_QUERY);
46
-
47
- // Detect the post/term
48
- $element = Permalink_Manager_Core_Functions::detect_post(null, $old_url, true);
49
-
50
- if(!empty($element->ID)) {
51
- $correct_permalink = get_permalink($element->ID);
52
- } else if(!empty($element->term_id)) {
53
- $correct_permalink = get_term_link($element, $element->taxonomy);
54
- }
55
 
56
- // Get the full URL
57
- if(!empty($correct_permalink)) {
58
- $new_path = trim(parse_url($correct_permalink, PHP_URL_PATH), "/");
59
 
60
- $new_customize_url = wp_customize_url();
61
- $new_customize_url .= "?" . str_replace(urlencode($old_path), urlencode($new_path), parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY));
62
- $new_customize_url .= ($old_query) ? "&{$old_query}" : "";
 
63
 
64
- // Redirect to customizer with native permalink
65
- if($old_path !== $new_path) {
66
- wp_safe_redirect($new_customize_url);
67
- exit();
68
- }
69
- }
 
 
 
 
 
70
  }
71
  }
72
 
@@ -1007,33 +998,6 @@ class Permalink_Manager_Admin_Functions extends Permalink_Manager_Class {
1007
  echo $permalink_manager_before_sections_html;
1008
  }
1009
 
1010
- /**
1011
- * Check if URI was used before
1012
- */
1013
- function ajax_detect_duplicates($uri = null, $element_id = null) {
1014
- $duplicate_alert = __("URI is already in use, please select another one!", "permalink-manager");
1015
-
1016
- if(!empty($_REQUEST['custom_uris'])) {
1017
- // Sanitize the array
1018
- $custom_uris = Permalink_Manager_Helper_Functions::sanitize_array($_REQUEST['custom_uris']);
1019
- $duplicates_array = array();
1020
-
1021
- // Check each URI
1022
- foreach($custom_uris as $element_id => $uri) {
1023
- $duplicates_array[$element_id] = Permalink_Manager_Helper_Functions::is_uri_duplicated($uri, $element_id) ? $duplicate_alert : 0;
1024
- }
1025
-
1026
- // Convert the output to JSON and stop the function
1027
- echo json_encode($duplicates_array);
1028
- } else if(!empty($_REQUEST['custom_uri']) && !empty($_REQUEST['element_id'])) {
1029
- $is_duplicated = Permalink_Manager_Helper_Functions::is_uri_duplicated($uri, $element_id);
1030
-
1031
- echo ($is_duplicated) ? $duplicate_alert : 0;;
1032
- }
1033
-
1034
- die();
1035
- }
1036
-
1037
  /**
1038
  * Check if Permalink Manager Pro is active
1039
  */
11
  public function __construct() {
12
  add_action( 'admin_menu', array($this, 'add_menu_page') );
13
  add_action( 'admin_init', array($this, 'init') );
14
+ add_action( 'admin_bar_menu', array($this, 'fix_customize_url'), 10);
15
 
16
  add_action( 'admin_notices', array($this, 'display_plugin_notices'));
17
  add_action( 'admin_notices', array($this, 'display_global_notices'));
18
  add_action( 'wp_ajax_dismissed_notice_handler', array($this, 'hide_global_notice') );
19
 
20
  add_filter( 'default_hidden_columns', array($this, 'quick_edit_hide_column'), 10, 2 );
 
 
21
  }
22
 
23
  /**
34
  }
35
 
36
  /**
37
+ * Fix Customize URL
38
  */
39
+ public function fix_customize_url($wp_admin_bar) {
40
+ $object = get_queried_object();
41
+ $customize = $wp_admin_bar->get_node('customize');
 
 
 
 
 
 
 
 
 
 
 
42
 
43
+ if(empty($customize->href)) { return; }
 
 
44
 
45
+ $_REQUEST['customize_url'] = true;
46
+ if(!empty($object->ID)) {
47
+ $new_url = get_permalink($object->ID);
48
+ } else if(!empty($object->term_id)) {
49
 
50
+ }
51
+ $_REQUEST['customize_url'] = false;
52
+
53
+ if(!empty($new_url)) {
54
+ $new_url = urlencode_deep($new_url);
55
+ $customize_url = preg_replace('/url=([^&]+)/', "url={$new_url}", $customize->href);
56
+
57
+ $wp_admin_bar->add_node(array(
58
+ 'id' => 'customize',
59
+ 'href' => $customize_url,
60
+ ));
61
  }
62
  }
63
 
998
  echo $permalink_manager_before_sections_html;
999
  }
1000
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1001
  /**
1002
  * Check if Permalink Manager Pro is active
1003
  */
includes/core/permalink-manager-core-functions.php CHANGED
@@ -70,6 +70,9 @@ class Permalink_Manager_Core_Functions extends Permalink_Manager_Class {
70
  // Check if "Deep Detect" is enabled
71
  $deep_detect_enabled = apply_filters('permalink_manager_deep_uri_detect', $permalink_manager_options['general']['deep_detect']);
72
 
 
 
 
73
  // Keep only the URI
74
  $request_url = str_replace($home_url, "", $request_url);
75
 
@@ -145,6 +148,17 @@ class Permalink_Manager_Core_Functions extends Permalink_Manager_Class {
145
  }
146
  }
147
 
 
 
 
 
 
 
 
 
 
 
 
148
  // Flip array for better performance
149
  $all_uris = array_flip($all_uris);
150
 
@@ -246,7 +260,10 @@ class Permalink_Manager_Core_Functions extends Permalink_Manager_Class {
246
  else if(isset($element_id) && is_numeric($element_id)) {
247
  // Fix for revisions
248
  $is_revision = wp_is_post_revision($element_id);
249
- $element_id = ($is_revision) ? $is_revision : $element_id;
 
 
 
250
 
251
  // Filter detected post ID
252
  $element_id = apply_filters('permalink_manager_detected_post_id', $element_id, $uri_parts);
@@ -310,7 +327,8 @@ class Permalink_Manager_Core_Functions extends Permalink_Manager_Class {
310
  * 4. Auto-remove removed term custom URI & redirects (works if enabled in plugin settings)
311
  */
312
  if(!empty($broken_uri) && !empty($permalink_manager_options['general']['auto_remove_duplicates'])) {
313
- $remove_broken_uri = Permalink_Manager_Actions::clear_single_element_uris_and_redirects($element_id);
 
314
 
315
  // Reload page if success
316
  if($remove_broken_uri) {
@@ -412,7 +430,9 @@ class Permalink_Manager_Core_Functions extends Permalink_Manager_Class {
412
  } else if(in_array($trailing_slash_setting, array(1, 10))) {
413
  $permalink = preg_replace('/(.+?)([\/]*)(\?[^\/]+|\#[^\/]+|$)/', '$1/$3', $permalink); // Instead of trailingslashit()
414
  } else if(in_array($trailing_slash_setting, array(2, 20))) {
415
- $permalink = preg_replace('/(.+?)([\/]*)(\?[^\/]+|\#[^\/]+|$)/', '$1$3', $permalink); // Instead of untrailingslashit
 
 
416
  }
417
 
418
  // Remove double slashes
@@ -467,12 +487,14 @@ class Permalink_Manager_Core_Functions extends Permalink_Manager_Class {
467
  * Redirects
468
  */
469
  function new_uri_redirect_and_404() {
470
- global $wp_query, $permalink_manager_uris, $permalink_manager_redirects, $permalink_manager_external_redirects, $permalink_manager_options, $wp, $pm_query;
471
 
472
  // Get the redirection mode & trailing slashes settings
473
  $redirect_mode = (!empty($permalink_manager_options['general']['redirect'])) ? $permalink_manager_options['general']['redirect'] : false;
474
  $trailing_slashes_mode = (!empty($permalink_manager_options['general']['trailing_slashes'])) ? $permalink_manager_options['general']['trailing_slashes'] : false;
475
  $trailing_slashes_redirect_mode = (!empty($permalink_manager_options['general']['trailing_slashes_redirect'])) ? $permalink_manager_options['general']['trailing_slashes_redirect'] : 301;
 
 
476
  $redirect_type = '-';
477
 
478
  // Get home URL
@@ -483,7 +505,7 @@ class Permalink_Manager_Core_Functions extends Permalink_Manager_Class {
483
  $correct_permalink = '';
484
 
485
  // Get query string & URI
486
- $query_string = $_SERVER['QUERY_STRING'];
487
  $old_uri = $_SERVER['REQUEST_URI'];
488
 
489
  // Fix for WP installed in directories (remove the directory name from the URI)
@@ -531,7 +553,7 @@ class Permalink_Manager_Core_Functions extends Permalink_Manager_Class {
531
 
532
  // Check if the URI is not assigned to any post/term's redirects
533
  foreach($permalink_manager_redirects as $element => $redirects) {
534
- if(!is_array($redirects)) { continue; }
535
 
536
  if(in_array($uri, $redirects) || in_array($decoded_url, $redirects) || (is_numeric($endpoint_value) && in_array($endpoint_url, $redirects))) {
537
 
@@ -556,7 +578,7 @@ class Permalink_Manager_Core_Functions extends Permalink_Manager_Class {
556
  /**
557
  * 1C. Enhance native redirect
558
  */
559
- if(empty($wp_query->query_vars['do_not_redirect']) && $redirect_mode && !empty($queried_object) && empty($correct_permalink)) {
560
 
561
  // Affect only posts with custom URI and old URIs
562
  if(!empty($queried_object->ID) && isset($permalink_manager_uris[$queried_object->ID]) && empty($wp_query->query['preview'])) {
@@ -583,6 +605,19 @@ class Permalink_Manager_Core_Functions extends Permalink_Manager_Class {
583
  $redirect_type = (!empty($correct_permalink)) ? 'native_redirect' : $redirect_type;
584
  }
585
 
 
 
 
 
 
 
 
 
 
 
 
 
 
586
  /**
587
  * 2. Check trailing slashes (ignore links with query parameters)
588
  */
@@ -633,14 +668,29 @@ class Permalink_Manager_Core_Functions extends Permalink_Manager_Class {
633
 
634
  $correct_permalink = ($redirect_uri == $current_uri) ? null : $correct_permalink;
635
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
636
  } else {
637
  $queried_object = '-';
638
  }
639
 
640
  /**
641
- * 5. WWW prefix | SSL mismatch redirect
642
  */
643
- if(!empty($permalink_manager_options['general']['sslwww_redirect'])) {
644
  $home_url_has_www = (strpos($home_url, 'www.') !== false) ? true : false;
645
  $requested_url_has_www = (strpos($_SERVER['HTTP_HOST'], 'www.') !== false) ? true : false;
646
  $home_url_has_ssl = (strpos($home_url, 'https') !== false) ? true : false;
@@ -653,12 +703,12 @@ class Permalink_Manager_Core_Functions extends Permalink_Manager_Class {
653
  }
654
 
655
  /**
656
- * 6. Debug redirect
657
  */
658
  $correct_permalink = apply_filters('permalink_manager_filter_redirect', $correct_permalink, $redirect_type, $queried_object);
659
 
660
  /**
661
- * 7. Ignore default URIs (or do nothing if redirects are disabled)
662
  */
663
  if(!empty($correct_permalink) && is_string($correct_permalink) && !empty($redirect_mode)) {
664
  // Allow redirect
@@ -708,12 +758,16 @@ class Permalink_Manager_Core_Functions extends Permalink_Manager_Class {
708
  }
709
  }
710
 
711
- if(!($permalink_manager_options['general']['canonical_redirect']) || !empty($wp->query_vars['do_not_redirect'])) {
712
- remove_action('template_redirect', 'wp_old_slug_redirect');
713
  remove_action('template_redirect', 'redirect_canonical');
714
  add_filter('wpml_is_redirected', '__return_false', 99, 2);
715
  add_filter('pll_check_canonical_url', '__return_false', 99, 2);
716
  }
 
 
 
 
 
717
  }
718
 
719
  /**
70
  // Check if "Deep Detect" is enabled
71
  $deep_detect_enabled = apply_filters('permalink_manager_deep_uri_detect', $permalink_manager_options['general']['deep_detect']);
72
 
73
+ // Sanitize the URL
74
+ // $request_url = filter_var($request_url, FILTER_SANITIZE_URL);
75
+
76
  // Keep only the URI
77
  $request_url = str_replace($home_url, "", $request_url);
78
 
148
  }
149
  }
150
 
151
+ // Exclude draft posts
152
+ /*$exclude_drafts = apply_filters('permalink_manager_exclude_drafts', false);
153
+ if($exclude_drafts !== false) {
154
+ $post_ids = $wpdb->get_col("SELECT DISTINCT ID FROM {$wpdb->posts} AS p WHERE p.post_status = 'draft' ORDER BY ID DESC");
155
+ if(!empty($post_ids)) {
156
+ foreach($post_ids as $post_id) {
157
+ unset($permalink_manager_uris[$post_id]);
158
+ }
159
+ }
160
+ }*/
161
+
162
  // Flip array for better performance
163
  $all_uris = array_flip($all_uris);
164
 
260
  else if(isset($element_id) && is_numeric($element_id)) {
261
  // Fix for revisions
262
  $is_revision = wp_is_post_revision($element_id);
263
+ if($is_revision) {
264
+ $revision_id = $element_id;
265
+ $element_id = $is_revision;
266
+ }
267
 
268
  // Filter detected post ID
269
  $element_id = apply_filters('permalink_manager_detected_post_id', $element_id, $uri_parts);
327
  * 4. Auto-remove removed term custom URI & redirects (works if enabled in plugin settings)
328
  */
329
  if(!empty($broken_uri) && !empty($permalink_manager_options['general']['auto_remove_duplicates'])) {
330
+ $broken_element_id = (!empty($revision_id)) ? $revision_id : $element_id;
331
+ $remove_broken_uri = Permalink_Manager_Actions::force_clear_single_element_uris_and_redirects($broken_element_id);
332
 
333
  // Reload page if success
334
  if($remove_broken_uri) {
430
  } else if(in_array($trailing_slash_setting, array(1, 10))) {
431
  $permalink = preg_replace('/(.+?)([\/]*)(\?[^\/]+|\#[^\/]+|$)/', '$1/$3', $permalink); // Instead of trailingslashit()
432
  } else if(in_array($trailing_slash_setting, array(2, 20))) {
433
+ $permalink = preg_replace('/(.+?)([\/]*)(\?[^\/]+|\#[^\/]+|$)/', '$1$3', $permalink); // Instead of untrailingslashit()
434
+ } else {
435
+ $permalink = user_trailingslashit($permalink);
436
  }
437
 
438
  // Remove double slashes
487
  * Redirects
488
  */
489
  function new_uri_redirect_and_404() {
490
+ global $wp_query, $wp, $wpdb, $permalink_manager_uris, $permalink_manager_redirects, $permalink_manager_external_redirects, $permalink_manager_options, $pm_query;
491
 
492
  // Get the redirection mode & trailing slashes settings
493
  $redirect_mode = (!empty($permalink_manager_options['general']['redirect'])) ? $permalink_manager_options['general']['redirect'] : false;
494
  $trailing_slashes_mode = (!empty($permalink_manager_options['general']['trailing_slashes'])) ? $permalink_manager_options['general']['trailing_slashes'] : false;
495
  $trailing_slashes_redirect_mode = (!empty($permalink_manager_options['general']['trailing_slashes_redirect'])) ? $permalink_manager_options['general']['trailing_slashes_redirect'] : 301;
496
+ $canonical_redirect = (!empty($permalink_manager_options['general']['canonical_redirect'])) ? $permalink_manager_options['general']['canonical_redirect'] : false;
497
+ $old_slug_redirect = (!empty($permalink_manager_options['general']['old_slug_redirect'])) ? $permalink_manager_options['general']['old_slug_redirect'] : false;
498
  $redirect_type = '-';
499
 
500
  // Get home URL
505
  $correct_permalink = '';
506
 
507
  // Get query string & URI
508
+ $query_string = (!empty($_SERVER['QUERY_STRING'])) ? $_SERVER['QUERY_STRING'] : '';
509
  $old_uri = $_SERVER['REQUEST_URI'];
510
 
511
  // Fix for WP installed in directories (remove the directory name from the URI)
553
 
554
  // Check if the URI is not assigned to any post/term's redirects
555
  foreach($permalink_manager_redirects as $element => $redirects) {
556
+ if(!is_array($redirects) || empty($permalink_manager_uris[$element])) { continue; }
557
 
558
  if(in_array($uri, $redirects) || in_array($decoded_url, $redirects) || (is_numeric($endpoint_value) && in_array($endpoint_url, $redirects))) {
559
 
578
  /**
579
  * 1C. Enhance native redirect
580
  */
581
+ if($canonical_redirect && empty($wp_query->query_vars['do_not_redirect']) && !empty($queried_object) && empty($correct_permalink)) {
582
 
583
  // Affect only posts with custom URI and old URIs
584
  if(!empty($queried_object->ID) && isset($permalink_manager_uris[$queried_object->ID]) && empty($wp_query->query['preview'])) {
605
  $redirect_type = (!empty($correct_permalink)) ? 'native_redirect' : $redirect_type;
606
  }
607
 
608
+ /**
609
+ * 1D. Old slug redirect
610
+ */
611
+ if($old_slug_redirect && !empty($pm_query['uri']) && empty($wp_query->query_vars['do_not_redirect']) && is_404()) {
612
+ $slug = basename($pm_query['uri']);
613
+
614
+ $post_id = $wpdb->get_var($wpdb->prepare("SELECT post_id from {$wpdb->postmeta} WHERE meta_key = '_wp_old_slug' AND meta_value = %s", $slug));
615
+ if(!empty($post_id)) {
616
+ $correct_permalink = get_permalink($post_id);
617
+ $redirect_type = 'old_slug_redirect';
618
+ }
619
+ }
620
+
621
  /**
622
  * 2. Check trailing slashes (ignore links with query parameters)
623
  */
668
 
669
  $correct_permalink = ($redirect_uri == $current_uri) ? null : $correct_permalink;
670
  }
671
+
672
+ /**
673
+ * 5. Add endpoints to redirect URL
674
+ */
675
+ if(!empty($correct_permalink) && ($redirect_type !== 'slash_redirect') && (!empty($pm_query['endpoint_value']) || !empty($pm_query['endpoint']))) {
676
+ $endpoint_value = $pm_query['endpoint_value'];
677
+
678
+ if(empty($pm_query['endpoint']) && is_numeric($endpoint_value)) {
679
+ $correct_permalink = sprintf("%s/%d", trim($correct_permalink, "/"), $endpoint_value);
680
+ } else if(isset($pm_query['endpoint']) && !empty($endpoint_value)) {
681
+ $correct_permalink = sprintf("%s/%s/%s", trim($correct_permalink, "/"), $pm_query['endpoint'], $endpoint_value);
682
+ } else {
683
+ $correct_permalink = sprintf("%s/%s", trim($correct_permalink, "/"), $pm_query['endpoint']);
684
+ }
685
+ }
686
  } else {
687
  $queried_object = '-';
688
  }
689
 
690
  /**
691
+ * 6. WWW prefix | SSL mismatch redirect
692
  */
693
+ if(!empty($permalink_manager_options['general']['sslwww_redirect'])) {
694
  $home_url_has_www = (strpos($home_url, 'www.') !== false) ? true : false;
695
  $requested_url_has_www = (strpos($_SERVER['HTTP_HOST'], 'www.') !== false) ? true : false;
696
  $home_url_has_ssl = (strpos($home_url, 'https') !== false) ? true : false;
703
  }
704
 
705
  /**
706
+ * 7. Debug redirect
707
  */
708
  $correct_permalink = apply_filters('permalink_manager_filter_redirect', $correct_permalink, $redirect_type, $queried_object);
709
 
710
  /**
711
+ * 8. Ignore default URIs (or do nothing if redirects are disabled)
712
  */
713
  if(!empty($correct_permalink) && is_string($correct_permalink) && !empty($redirect_mode)) {
714
  // Allow redirect
758
  }
759
  }
760
 
761
+ if(empty($permalink_manager_options['general']['canonical_redirect']) || !empty($wp->query_vars['do_not_redirect'])) {
 
762
  remove_action('template_redirect', 'redirect_canonical');
763
  add_filter('wpml_is_redirected', '__return_false', 99, 2);
764
  add_filter('pll_check_canonical_url', '__return_false', 99, 2);
765
  }
766
+
767
+ if(empty($permalink_manager_options['general']['old_slug_redirect']) || !empty($wp->query_vars['do_not_redirect'])) {
768
+ remove_action('template_redirect', 'wp_old_slug_redirect');
769
+ }
770
+
771
  }
772
 
773
  /**
includes/core/permalink-manager-helper-functions.php CHANGED
@@ -17,6 +17,9 @@ class Permalink_Manager_Helper_Functions extends Permalink_Manager_Class {
17
  // Clear the final default URIs
18
  add_filter( 'permalink_manager_filter_default_term_uri', array($this, 'clear_single_uri'), 20);
19
  add_filter( 'permalink_manager_filter_default_post_uri', array($this, 'clear_single_uri'), 20);
 
 
 
20
  }
21
 
22
  /**
@@ -158,9 +161,9 @@ class Permalink_Manager_Helper_Functions extends Permalink_Manager_Class {
158
 
159
  static function content_types_disabled_by_default($is_taxonomy = false) {
160
  if($is_taxonomy) {
161
- return array('product_shipping_class', 'post_status');
162
  } else {
163
- return array('revision', 'algolia_task', 'fl_builder', 'fl-builder', 'fl-theme-layout', 'wc_product_tab', 'wc_voucher', 'wc_voucher_template', 'sliders', 'thirstylink', 'elementor_library', 'cms_block');
164
  }
165
  }
166
 
@@ -175,7 +178,8 @@ class Permalink_Manager_Helper_Functions extends Permalink_Manager_Class {
175
  // Disable post types that are not publicly_queryable
176
  if(!empty($wp_rewrite)){
177
  foreach($wp_post_types as $post_type) {
178
- $is_publicly_queryable = (empty($post_type->publicly_queryable) && empty($post_type->public)) ? false : true;
 
179
 
180
  if(!$is_publicly_queryable && !in_array($post_type->name, array('post', 'page', 'attachment'))) {
181
  $initial_disabled_post_types[] = $post_type->name;
@@ -463,7 +467,8 @@ class Permalink_Manager_Helper_Functions extends Permalink_Manager_Class {
463
  $clean = (empty($permalink_manager_options['general']['keep_accents'])) ? remove_accents($clean) : $clean;
464
 
465
  $percent_sign = ($keep_percent_sign) ? "\%" : "";
466
- $sanitize_regex = apply_filters("permalink_manager_sanitize_regex", "/[^\p{Thai}\p{Hebrew}\p{Arabic}\p{Cyrillic}a-zA-Z0-9{$percent_sign}\/_\.|+, -]/u");
 
467
  $clean = preg_replace($sanitize_regex, '', $clean);
468
  $clean = ($force_lowercase) ? strtolower(trim($clean, '-')) : trim($clean, '-');
469
 
@@ -592,7 +597,12 @@ class Permalink_Manager_Helper_Functions extends Permalink_Manager_Class {
592
  // Assign keys to duplicates (group them)
593
  if(count($duplicates_list) > 0) {
594
  foreach($duplicates_list as $duplicated_uri => $count) {
595
- $duplicates_groups[$duplicated_uri] = array_keys($all_uris, $duplicated_uri);
 
 
 
 
 
596
  }
597
  }
598
 
@@ -660,4 +670,18 @@ class Permalink_Manager_Helper_Functions extends Permalink_Manager_Class {
660
  return $found;
661
  }
662
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
663
  }
17
  // Clear the final default URIs
18
  add_filter( 'permalink_manager_filter_default_term_uri', array($this, 'clear_single_uri'), 20);
19
  add_filter( 'permalink_manager_filter_default_post_uri', array($this, 'clear_single_uri'), 20);
20
+
21
+ // Reload the globals when the blog is switched (multisite)
22
+ add_action('switch_blog', array($this, 'reload_globals_in_network'), 9);
23
  }
24
 
25
  /**
161
 
162
  static function content_types_disabled_by_default($is_taxonomy = false) {
163
  if($is_taxonomy) {
164
+ return array('product_shipping_class', 'post_status', 'fl-builder-template-category', 'post_format');
165
  } else {
166
+ return array('revision', 'algolia_task', 'fl_builder', 'fl-builder', 'fl-builder-template', 'fl-theme-layout', 'wc_product_tab', 'wc_voucher', 'wc_voucher_template', 'sliders', 'thirstylink', 'elementor_library', 'cms_block', 'us_page_block');
167
  }
168
  }
169
 
178
  // Disable post types that are not publicly_queryable
179
  if(!empty($wp_rewrite)){
180
  foreach($wp_post_types as $post_type) {
181
+ //$is_publicly_queryable = (empty($post_type->publicly_queryable) && empty($post_type->public)) ? false : true;
182
+ $is_publicly_queryable = (empty($post_type->publicly_queryable) || empty($post_type->public)) ? false : true;
183
 
184
  if(!$is_publicly_queryable && !in_array($post_type->name, array('post', 'page', 'attachment'))) {
185
  $initial_disabled_post_types[] = $post_type->name;
467
  $clean = (empty($permalink_manager_options['general']['keep_accents'])) ? remove_accents($clean) : $clean;
468
 
469
  $percent_sign = ($keep_percent_sign) ? "\%" : "";
470
+ //$sanitize_regex = apply_filters("permalink_manager_sanitize_regex", "/[^\p{Thai}\p{Greek}\p{Hebrew}\p{Arabic}\p{Cyrillic}a-zA-Z0-9{$percent_sign}\/_\.|+, -]/u", $percent_sign);
471
+ $sanitize_regex = apply_filters("permalink_manager_sanitize_regex", "/[^\p{Xan}a-zA-Z0-9{$percent_sign}\/_\.|+, -]/ui", $percent_sign);
472
  $clean = preg_replace($sanitize_regex, '', $clean);
473
  $clean = ($force_lowercase) ? strtolower(trim($clean, '-')) : trim($clean, '-');
474
 
597
  // Assign keys to duplicates (group them)
598
  if(count($duplicates_list) > 0) {
599
  foreach($duplicates_list as $duplicated_uri => $count) {
600
+ $duplicated_ids = array_keys($all_uris, $duplicated_uri);
601
+
602
+ // Ignore duplicates in different langauges
603
+ if(self::is_uri_duplicated($duplicated_uri, $duplicated_ids[0])) {
604
+ $duplicates_groups[$duplicated_uri] = $duplicated_ids;
605
+ }
606
  }
607
  }
608
 
670
  return $found;
671
  }
672
 
673
+ /**
674
+ * Reload the globals when the blog is switched (multisite)
675
+ */
676
+ public function reload_globals_in_network($new_blog_id) {
677
+ global $permalink_manager_uris, $permalink_manager_redirects, $permalink_manager_external_redirects;
678
+
679
+ if(function_exists('get_blog_option')) {
680
+ $permalink_manager_uris = get_blog_option($new_blog_id, 'permalink-manager-uris');
681
+ $permalink_manager_redirects = get_blog_option($new_blog_id, 'permalink-manager-redirects');
682
+ $permalink_manager_external_redirects = get_blog_option($new_blog_id, 'permalink-manager-external-redirects');
683
+ }
684
+ }
685
+
686
+
687
  }
includes/core/permalink-manager-third-parties.php CHANGED
@@ -141,18 +141,24 @@ class Permalink_Manager_Third_Parties extends Permalink_Manager_Class {
141
  add_action('pmxi_after_xml_import', array($this, 'wpai_schedule_regenerate_uris_after_xml_import'), 10, 1);
142
  add_action('wpai_regenerate_uris_after_import_event', array($this, 'wpai_regenerate_uris_after_import'), 10, 1);
143
  }
 
 
 
 
 
 
144
  }
145
 
146
  /**
147
  * Some of the hooks must be called shortly after all the plugins are loaded
148
  */
149
  public function init_early_hooks() {
150
- // 11. WP Store Locator
151
  if(class_exists('WPSL_CSV')) {
152
  add_action('added_post_meta', array($this, 'wpsl_regenerate_after_import'), 10, 4);
153
  add_action('updated_post_meta', array($this, 'wpsl_regenerate_after_import'), 10, 4);
154
  }
155
- // 12. Woocommerce
156
  if(class_exists('WooCommerce')) {
157
  add_filter('woocommerce_get_endpoint_url', array('Permalink_Manager_Core_Functions', 'control_trailing_slashes'), 9);
158
  }
@@ -172,7 +178,7 @@ class Permalink_Manager_Third_Parties extends Permalink_Manager_Class {
172
  $wp_query->query_vars['do_not_redirect'] = 1;
173
  }
174
  // Ultimate Member
175
- else if(!empty($query_vars['um_user']) && !empty($query_vars['um_user'])) {
176
  $wp_query->query_vars['do_not_redirect'] = 1;
177
  }
178
  // Mailster
@@ -187,6 +193,10 @@ class Permalink_Manager_Third_Parties extends Permalink_Manager_Class {
187
  else if(!empty($query_vars['wishlist-action'])) {
188
  $wp_query->query_vars['do_not_redirect'] = 1;
189
  }
 
 
 
 
190
  }
191
 
192
  // WPForo
@@ -713,6 +723,9 @@ class Permalink_Manager_Third_Parties extends Permalink_Manager_Class {
713
  return $permalink;
714
  }
715
 
 
 
 
716
  function filter_breadcrumbs($links) {
717
  // Get post type permastructure settings
718
  global $permalink_manager_uris, $permalink_manager_options, $post, $wpdb, $wp, $wp_current_filter;
@@ -767,14 +780,14 @@ class Permalink_Manager_Third_Parties extends Permalink_Manager_Class {
767
 
768
  // 1B. Try to get term
769
  if(empty($element) && !empty($available_taxonomies)) {
770
- $sql = sprintf("SELECT t.term_id, t.name, tt.taxonomy FROM {$wpdb->terms} AS t LEFT JOIN {$wpdb->term_taxonomy} AS tt ON t.term_id = tt.term_id WHERE slug = '%s' AND tt.taxonomy IN ('%s') LIMIT 1", $slug, implode("','", array_keys($available_taxonomies)));
771
 
772
  $element = $wpdb->get_row($sql);
773
  }
774
 
775
  // 1C. Try to get page/post
776
  if(empty($element) && !empty($available_post_types)) {
777
- $sql = sprintf("SELECT ID, post_title FROM {$wpdb->posts} WHERE post_name = '%s' AND post_status = 'publish' AND post_type IN ('%s') AND post_type != 'attachment' LIMIT 1", $slug, implode("','", array_keys($available_post_types)));
778
 
779
  $element = $wpdb->get_row($sql);
780
  }
@@ -823,7 +836,7 @@ class Permalink_Manager_Third_Parties extends Permalink_Manager_Class {
823
  }
824
 
825
  /**
826
- * 7. Support WooCommerce Wishlist Plugin
827
  */
828
  function ti_woocommerce_wishlist_uris($uri_parts, $request_url, $endpoints) {
829
  global $permalink_manager_uris, $wp;
@@ -848,7 +861,7 @@ class Permalink_Manager_Third_Parties extends Permalink_Manager_Class {
848
  }
849
 
850
  /**
851
- * 8. Revisionize
852
  */
853
  function revisionize_keep_post_uri($old_id, $new_id) {
854
  global $permalink_manager_uris;
@@ -874,12 +887,13 @@ class Permalink_Manager_Third_Parties extends Permalink_Manager_Class {
874
  }
875
 
876
  /**
877
- * 9. WP All Import
878
  */
879
- function wpaiextra_uri_display($post_type, $current_values) {
880
-
881
  // Check if post type is supported
882
- if(Permalink_Manager_Helper_Functions::is_disabled($post_type)) { return; }
 
 
883
 
884
  // Get custom URI format
885
  $custom_uri = (!empty($current_values['custom_uri'])) ? sanitize_text_field($current_values['custom_uri']) : "";
@@ -962,14 +976,24 @@ class Permalink_Manager_Third_Parties extends Permalink_Manager_Class {
962
  function wpai_api_import_function($importData, $parsedData) {
963
  global $permalink_manager_uris;
964
 
965
- // Check if post type is disabled
966
- if(empty($parsedData) || Permalink_Manager_Helper_Functions::is_disabled($importData['post_type'], 'post_type')) { return; }
 
 
 
 
 
 
 
967
 
968
  // Get the parsed custom URI
969
  $index = (isset($importData['i'])) ? $importData['i'] : false;
970
  $pid = (!empty($importData['pid'])) ? $importData['pid'] : false;
971
 
972
- if(isset($index) && isset($pid) && !empty($parsedData['custom_uri'][$index])) {
 
 
 
973
  $custom_uri = Permalink_Manager_Helper_Functions::sanitize_title($parsedData['custom_uri'][$index]);
974
 
975
  if(!empty($custom_uri)) {
@@ -1016,7 +1040,27 @@ class Permalink_Manager_Third_Parties extends Permalink_Manager_Class {
1016
  }
1017
 
1018
  /**
1019
- * 11. Store Locator - CSV Manager
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1020
  */
1021
  public function wpsl_regenerate_after_import($meta_id, $post_id, $meta_key, $meta_value) {
1022
  global $permalink_manager_uris;
@@ -1032,4 +1076,3 @@ class Permalink_Manager_Third_Parties extends Permalink_Manager_Class {
1032
  }
1033
 
1034
  }
1035
- ?>
141
  add_action('pmxi_after_xml_import', array($this, 'wpai_schedule_regenerate_uris_after_xml_import'), 10, 1);
142
  add_action('wpai_regenerate_uris_after_import_event', array($this, 'wpai_regenerate_uris_after_import'), 10, 1);
143
  }
144
+
145
+ // 11. Duplicate Post
146
+ if(defined('DUPLICATE_POST_CURRENT_VERSION')) {
147
+ add_action('dp_duplicate_post', array($this, 'duplicate_custom_uri'), 10, 2);
148
+ add_action('dp_duplicate_page', array($this, 'duplicate_custom_uri'), 10, 2);
149
+ }
150
  }
151
 
152
  /**
153
  * Some of the hooks must be called shortly after all the plugins are loaded
154
  */
155
  public function init_early_hooks() {
156
+ // 12. WP Store Locator
157
  if(class_exists('WPSL_CSV')) {
158
  add_action('added_post_meta', array($this, 'wpsl_regenerate_after_import'), 10, 4);
159
  add_action('updated_post_meta', array($this, 'wpsl_regenerate_after_import'), 10, 4);
160
  }
161
+ // Woocommerce
162
  if(class_exists('WooCommerce')) {
163
  add_filter('woocommerce_get_endpoint_url', array('Permalink_Manager_Core_Functions', 'control_trailing_slashes'), 9);
164
  }
178
  $wp_query->query_vars['do_not_redirect'] = 1;
179
  }
180
  // Ultimate Member
181
+ else if(!empty($query_vars['um_user']) || !empty($query_vars['um_tab']) || (!empty($query_vars['provider']) && !empty($query_vars['state']))) {
182
  $wp_query->query_vars['do_not_redirect'] = 1;
183
  }
184
  // Mailster
193
  else if(!empty($query_vars['wishlist-action'])) {
194
  $wp_query->query_vars['do_not_redirect'] = 1;
195
  }
196
+ // UserPro
197
+ else if(!empty($query_vars['up_username'])) {
198
+ $wp_query->query_vars['do_not_redirect'] = 1;
199
+ }
200
  }
201
 
202
  // WPForo
723
  return $permalink;
724
  }
725
 
726
+ /**
727
+ * 7. Breadcrumbs
728
+ */
729
  function filter_breadcrumbs($links) {
730
  // Get post type permastructure settings
731
  global $permalink_manager_uris, $permalink_manager_options, $post, $wpdb, $wp, $wp_current_filter;
780
 
781
  // 1B. Try to get term
782
  if(empty($element) && !empty($available_taxonomies)) {
783
+ $sql = sprintf("SELECT t.term_id, t.name, tt.taxonomy FROM {$wpdb->terms} AS t LEFT JOIN {$wpdb->term_taxonomy} AS tt ON t.term_id = tt.term_id WHERE slug = '%s' AND tt.taxonomy IN ('%s') LIMIT 1", esc_sql($slug), implode("','", array_keys($available_taxonomies)));
784
 
785
  $element = $wpdb->get_row($sql);
786
  }
787
 
788
  // 1C. Try to get page/post
789
  if(empty($element) && !empty($available_post_types)) {
790
+ $sql = sprintf("SELECT ID, post_title FROM {$wpdb->posts} WHERE post_name = '%s' AND post_status = 'publish' AND post_type IN ('%s') AND post_type != 'attachment' LIMIT 1", esc_sql($slug), implode("','", array_keys($available_post_types)));
791
 
792
  $element = $wpdb->get_row($sql);
793
  }
836
  }
837
 
838
  /**
839
+ * 8. Support WooCommerce Wishlist Plugin
840
  */
841
  function ti_woocommerce_wishlist_uris($uri_parts, $request_url, $endpoints) {
842
  global $permalink_manager_uris, $wp;
861
  }
862
 
863
  /**
864
+ * 9. Revisionize
865
  */
866
  function revisionize_keep_post_uri($old_id, $new_id) {
867
  global $permalink_manager_uris;
887
  }
888
 
889
  /**
890
+ * 10. WP All Import
891
  */
892
+ function wpaiextra_uri_display($content_type, $current_values) {
 
893
  // Check if post type is supported
894
+ if($content_type !== 'taxonomies' && Permalink_Manager_Helper_Functions::is_disabled($content_type)) {
895
+ return;
896
+ }
897
 
898
  // Get custom URI format
899
  $custom_uri = (!empty($current_values['custom_uri'])) ? sanitize_text_field($current_values['custom_uri']) : "";
976
  function wpai_api_import_function($importData, $parsedData) {
977
  global $permalink_manager_uris;
978
 
979
+ // Check if the array with $parsedData is not empty
980
+ if(empty($parsedData) || empty($importData['post_type'])) { return; }
981
+
982
+ // Check if the imported elements are terms
983
+ if($importData['post_type'] == 'taxonomies') {
984
+ $is_term = true;
985
+ } else if(Permalink_Manager_Helper_Functions::is_disabled($importData['post_type'], 'post_type')) {
986
+ return;
987
+ }
988
 
989
  // Get the parsed custom URI
990
  $index = (isset($importData['i'])) ? $importData['i'] : false;
991
  $pid = (!empty($importData['pid'])) ? $importData['pid'] : false;
992
 
993
+ // Prepend "tax-" prefix if needed
994
+ $pid = (!empty($is_term) && !empty($pid)) ? "tax-{$pid}" : $pid;
995
+
996
+ if(isset($index) && !empty($pid) && !empty($parsedData['custom_uri'][$index])) {
997
  $custom_uri = Permalink_Manager_Helper_Functions::sanitize_title($parsedData['custom_uri'][$index]);
998
 
999
  if(!empty($custom_uri)) {
1040
  }
1041
 
1042
  /**
1043
+ * 11. Duplicate Page
1044
+ */
1045
+ function duplicate_custom_uri($new_post_id, $old_post) {
1046
+ global $permalink_manager_uris;
1047
+
1048
+ if(!empty($old_post->ID)) {
1049
+ $old_post_id = intval($old_post->ID);
1050
+
1051
+ // Clone custom permalink (if set for cloned post/page)
1052
+ if(!empty($permalink_manager_uris[$old_post_id])) {
1053
+ $old_post_uri = $permalink_manager_uris[$old_post_id];
1054
+ $new_post_uri = preg_replace('/(.+?)(\.[^\.]+$|$)/', '$1-2$2', $old_post_uri);
1055
+
1056
+ $permalink_manager_uris[$new_post_id] = $new_post_uri;
1057
+ update_option('permalink-manager-uris', $permalink_manager_uris);
1058
+ }
1059
+ }
1060
+ }
1061
+
1062
+ /**
1063
+ * 12. Store Locator - CSV Manager
1064
  */
1065
  public function wpsl_regenerate_after_import($meta_id, $post_id, $meta_key, $meta_value) {
1066
  global $permalink_manager_uris;
1076
  }
1077
 
1078
  }
 
includes/core/permalink-manager-uri-functions-post.php CHANGED
@@ -53,7 +53,7 @@ class Permalink_Manager_URI_Functions_Post extends Permalink_Manager_Class {
53
  global $wp_rewrite, $permalink_manager_uris, $permalink_manager_options;
54
 
55
  // Do not filter permalinks in Customizer
56
- if((function_exists('is_customize_preview') && is_customize_preview())) { return $permalink; }
57
 
58
  // Do not filter in WPML String Editor
59
  if(!empty($_REQUEST['icl_ajx_action']) && $_REQUEST['icl_ajx_action'] == 'icl_st_save_translation') { return $permalink; }
@@ -111,7 +111,7 @@ class Permalink_Manager_URI_Functions_Post extends Permalink_Manager_Class {
111
  $slug = sanitize_title($slug);
112
 
113
  $new_slug = wp_unique_post_slug($slug, $id, get_post_status($id), get_post_type($id), null);
114
- $wpdb->query("UPDATE $wpdb->posts SET post_name = '$new_slug' WHERE ID = '$id'");
115
 
116
  return $new_slug;
117
  }
@@ -302,6 +302,10 @@ class Permalink_Manager_URI_Functions_Post extends Permalink_Manager_Class {
302
  $replacement = Permalink_Manager_Helper_Functions::get_term_full_slug($replacement_term, $terms, $mode, $native_uri);
303
  $native_replacement = Permalink_Manager_Helper_Functions::get_term_full_slug($replacement_term, $terms, $mode, true);
304
 
 
 
 
 
305
  // Filter final category slug
306
  $replacement = apply_filters('permalink_manager_filter_term_slug', $replacement, $replacement_term, $post, $terms, $taxonomy, $native_uri);
307
 
@@ -331,10 +335,15 @@ class Permalink_Manager_URI_Functions_Post extends Permalink_Manager_Class {
331
  * Support url_to_postid
332
  */
333
  public function url_to_postid($url) {
 
 
334
  // Filter only defined URLs
335
  if(empty($url)) { return $url; }
336
 
 
 
337
  $post = Permalink_Manager_Core_Functions::detect_post(null, $url, true);
 
338
 
339
  if(!empty($post->ID)) {
340
  $native_uri = self::get_default_post_uri($post->ID, true);
@@ -649,7 +658,7 @@ class Permalink_Manager_URI_Functions_Post extends Permalink_Manager_Class {
649
  // Check if post type is disabled
650
  if($post_type && Permalink_Manager_Helper_Functions::is_disabled($post_type, 'post_type')) { return $columns; }
651
 
652
- return array_merge($columns, array('permalink-manager-col' => __( 'Current URI', 'permalink-manager')));
653
  }
654
 
655
  function quick_edit_column_content($column_name, $post_id) {
53
  global $wp_rewrite, $permalink_manager_uris, $permalink_manager_options;
54
 
55
  // Do not filter permalinks in Customizer
56
+ if((function_exists('is_customize_preview') && is_customize_preview()) || !empty($_REQUEST['customize_url'])) { return $permalink; }
57
 
58
  // Do not filter in WPML String Editor
59
  if(!empty($_REQUEST['icl_ajx_action']) && $_REQUEST['icl_ajx_action'] == 'icl_st_save_translation') { return $permalink; }
111
  $slug = sanitize_title($slug);
112
 
113
  $new_slug = wp_unique_post_slug($slug, $id, get_post_status($id), get_post_type($id), null);
114
+ $wpdb->query($wpdb->prepare("UPDATE {$wpdb->posts} SET post_name = %s WHERE ID = %d", $new_slug, $id));
115
 
116
  return $new_slug;
117
  }
302
  $replacement = Permalink_Manager_Helper_Functions::get_term_full_slug($replacement_term, $terms, $mode, $native_uri);
303
  $native_replacement = Permalink_Manager_Helper_Functions::get_term_full_slug($replacement_term, $terms, $mode, true);
304
 
305
+ // Trim slashes
306
+ $replacement = trim($replacement, '/');
307
+ $native_replacement = trim($native_replacement, '/');
308
+
309
  // Filter final category slug
310
  $replacement = apply_filters('permalink_manager_filter_term_slug', $replacement, $replacement_term, $post, $terms, $taxonomy, $native_uri);
311
 
335
  * Support url_to_postid
336
  */
337
  public function url_to_postid($url) {
338
+ global $pm_query;
339
+
340
  // Filter only defined URLs
341
  if(empty($url)) { return $url; }
342
 
343
+ // Make sure that $pm_query global is not changed
344
+ $old_pm_query = $pm_query;
345
  $post = Permalink_Manager_Core_Functions::detect_post(null, $url, true);
346
+ $pm_query = $old_pm_query;
347
 
348
  if(!empty($post->ID)) {
349
  $native_uri = self::get_default_post_uri($post->ID, true);
658
  // Check if post type is disabled
659
  if($post_type && Permalink_Manager_Helper_Functions::is_disabled($post_type, 'post_type')) { return $columns; }
660
 
661
+ return (is_array($columns)) ? array_merge($columns, array('permalink-manager-col' => __( 'Current URI', 'permalink-manager'))) : $columns;
662
  }
663
 
664
  function quick_edit_column_content($column_name, $post_id) {
includes/views/permalink-manager-settings.php CHANGED
@@ -64,26 +64,25 @@ class Permalink_Manager_Settings extends Permalink_Manager_Class {
64
  'type' => 'single_checkbox',
65
  'label' => __('Canonical redirect', 'permalink-manager'),
66
  'input_class' => '',
67
- 'description' => __('This function allows Wordpress to correct the URLs used by the visitors.', 'permalink-manager')
 
 
 
 
 
 
68
  ),
69
  'setup_redirects' => array(
70
  'type' => 'single_checkbox',
71
- 'label' => __('Redirect old permalinks', 'permalink-manager'),
72
  'input_class' => '',
73
  'pro' => true,
74
  'disabled' => true,
75
- 'description' => __('If enabled, the redirects will be automatially created for old custom permalinks, after posts or terms URLs are changed.', 'permalink-manager')
76
- ),
77
- 'redirect' => array(
78
- 'type' => 'select',
79
- 'label' => __('Redirect mode', 'permalink-manager'),
80
- 'input_class' => 'settings-select',
81
- 'choices' => array(0 => __('Disable', 'permalink-manager'), "301" => __('Enable "301 redirect"', 'permalink-manager'), "302" => __('Enable "302 redirect"', 'permalink-manager')),
82
- 'description' => __('If enabled - the visitors will be redirected from native permalinks to your custom permalinks.', 'permalink-manager')
83
  ),
84
  'trailing_slashes' => array(
85
  'type' => 'select',
86
- 'label' => __('Trailing slashes', 'permalink-manager'),
87
  'input_class' => 'settings-select',
88
  'choices' => array(0 => __('Use default settings', 'permalink-manager'), 1 => __('Add trailing slashes', 'permalink-manager'), 10 => __('Add trailing slashes (+ auto-redirect links without them)', 'permalink-manager'), 2 => __('Remove trailing slashes', 'permalink-manager'), 20 => __('Remove trailing slashes (+ auto-redirect links with them)', 'permalink-manager'),),
89
  'description' => __('This option can be used to alter the native settings and control if trailing slash should be added or removed from the end of posts & terms permalinks.', 'permalink-manager')
@@ -93,6 +92,13 @@ class Permalink_Manager_Settings extends Permalink_Manager_Class {
93
  'label' => __('Force HTTPS/WWW in URLs', 'permalink-manager'),
94
  'input_class' => '',
95
  'description' => __('<strong>Please disable it, if you encounter any redirect loop issues.</strong>', 'permalink-manager')
 
 
 
 
 
 
 
96
  )
97
  )
98
  ),
@@ -117,7 +123,7 @@ class Permalink_Manager_Settings extends Permalink_Manager_Class {
117
  'type' => 'single_checkbox',
118
  'label' => __('Filter breadcrumbs', 'permalink-manager'),
119
  'input_class' => '',
120
- 'description' => __('If checked, the HTML breadcrumbs will be filtered by Permalink Manager to mimic the current URL structure.<br />Works with: Yoast SEO, RankMath and SEOPress breadcrumbs.', 'permalink-manager')
121
  ),
122
  'partial_disable' => array(
123
  'type' => 'checkbox',
64
  'type' => 'single_checkbox',
65
  'label' => __('Canonical redirect', 'permalink-manager'),
66
  'input_class' => '',
67
+ 'description' => __('If enabled, Permalink Manager will automatically redirect original (native) permalinks to actual (canonical) permalinks.', 'permalink-manager')
68
+ ),
69
+ 'old_slug_redirect' => array(
70
+ 'type' => 'single_checkbox',
71
+ 'label' => __('Old slug redirect', 'permalink-manager'),
72
+ 'input_class' => '',
73
+ 'description' => __('If enabled, Permalink Manager will automatically redirect old posts\' slugs to actual (canonical) permalinks (after the native slug is changed).', 'permalink-manager')
74
  ),
75
  'setup_redirects' => array(
76
  'type' => 'single_checkbox',
77
+ 'label' => __('Old custom permalinks redirect', 'permalink-manager'),
78
  'input_class' => '',
79
  'pro' => true,
80
  'disabled' => true,
81
+ 'description' => sprintf(__('If enabled, the redirect will be automatically created for <strong>earlier version of custom permalink</strong> after its changed in Permalink Manager (eg. with URI Editor or Regenerate/reset tool).<br />The old permalinks will be saved as <a href="%s" target="_blank">custom redirects</a>.', 'permalink-manager'), 'https://permalinkmanager.pro/docs/redirects/wordpress-custom-redirects/')
 
 
 
 
 
 
 
82
  ),
83
  'trailing_slashes' => array(
84
  'type' => 'select',
85
+ 'label' => __('Trailing slashes (redirect)', 'permalink-manager'),
86
  'input_class' => 'settings-select',
87
  'choices' => array(0 => __('Use default settings', 'permalink-manager'), 1 => __('Add trailing slashes', 'permalink-manager'), 10 => __('Add trailing slashes (+ auto-redirect links without them)', 'permalink-manager'), 2 => __('Remove trailing slashes', 'permalink-manager'), 20 => __('Remove trailing slashes (+ auto-redirect links with them)', 'permalink-manager'),),
88
  'description' => __('This option can be used to alter the native settings and control if trailing slash should be added or removed from the end of posts & terms permalinks.', 'permalink-manager')
92
  'label' => __('Force HTTPS/WWW in URLs', 'permalink-manager'),
93
  'input_class' => '',
94
  'description' => __('<strong>Please disable it, if you encounter any redirect loop issues.</strong>', 'permalink-manager')
95
+ ),
96
+ 'redirect' => array(
97
+ 'type' => 'select',
98
+ 'label' => __('Redirect mode', 'permalink-manager'),
99
+ 'input_class' => 'settings-select',
100
+ 'choices' => array(0 => __('Disable', 'permalink-manager'), "301" => __('Enable "301 redirect"', 'permalink-manager'), "302" => __('Enable "302 redirect"', 'permalink-manager')),
101
+ 'description' => __('The selected mode will be used for URL redirects controlled by Permalink Manager.', 'permalink-manager')
102
  )
103
  )
104
  ),
123
  'type' => 'single_checkbox',
124
  'label' => __('Filter breadcrumbs', 'permalink-manager'),
125
  'input_class' => '',
126
+ 'description' => __('If checked, the HTML breadcrumbs will be filtered by Permalink Manager to mimic the current URL structure.<br />Works with: <strong>WooCommerce, Yoast SEO, RankMath and SEOPress</strong> breadcrumbs.', 'permalink-manager')
127
  ),
128
  'partial_disable' => array(
129
  'type' => 'checkbox',
languages/permalink-manager-ja.mo CHANGED
Binary file
languages/permalink-manager-ja.po CHANGED
@@ -2,8 +2,8 @@ msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Permalink Manager Lite\n"
4
  "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2020-01-19 19:52+0000\n"
6
- "PO-Revision-Date: 2020-01-19 19:52+0000\n"
7
  "Last-Translator: admin <contact@maciejbis.net>\n"
8
  "Language-Team: Japanese\n"
9
  "Language: ja\n"
@@ -14,7 +14,7 @@ msgstr ""
14
  "X-Generator: Loco https://localise.biz/\n"
15
  "X-Loco-Version: 2.3.1; wp-5.3.2"
16
 
17
- #: permalink-manager.php:199
18
  #, php-format
19
  msgid ""
20
  "Get access to extra features: full taxonomy and WooCommerce support, "
@@ -26,33 +26,33 @@ msgstr ""
26
  "<strong>パーマリンク マネージャー Proの購入は<a href=\"%s\" target=\"_blank\">コチラ</a>! %s "
27
  "の割引 「%s」をご利用下さい。 </strong> %s まで!"
28
 
29
- #: includes/core/permalink-manager-third-parties.php:615
30
  msgid "\"Custom Permalinks\" URIs were imported!"
31
  msgstr "「カスタム パーマリンク」URIは、インポートされました!"
32
 
33
- #: includes/core/permalink-manager-third-parties.php:618
34
  msgid "No \"Custom Permalinks\" URIs were imported!"
35
  msgstr "「カスタム パーマリンク」 URIはインポートされませんでした!"
36
 
37
  #. Name of the plugin
38
- #: includes/core/permalink-manager-third-parties.php:889
39
  #: includes/core/permalink-manager-gutenberg.php:14
40
- #: includes/core/permalink-manager-admin-functions.php:119
41
- #: includes/core/permalink-manager-admin-functions.php:119
42
- #: includes/core/permalink-manager-admin-functions.php:724
43
- #: includes/core/permalink-manager-admin-functions.php:805
44
- #: includes/core/permalink-manager-admin-functions.php:810
45
- #: includes/core/permalink-manager-admin-functions.php:811
46
  msgid "Permalink Manager"
47
  msgstr "パーマリンク マネージャー"
48
 
49
- #: includes/core/permalink-manager-third-parties.php:893
50
  #: includes/core/permalink-manager-uri-functions-tax.php:475
51
  #: includes/views/permalink-manager-tools.php:70
52
  msgid "Custom URI"
53
  msgstr "カスタム URI"
54
 
55
- #: includes/core/permalink-manager-third-parties.php:894
56
  #, php-format
57
  msgid ""
58
  "If empty, a default permalink based on your current <a href=\"%s\" "
@@ -64,46 +64,46 @@ msgid "Clear/leave the field empty to use the default permalink."
64
  msgstr "デフォルトのパーマリンクを使用するため、フィールドを空のままにする / クリアする"
65
 
66
  #: includes/core/permalink-manager-uri-functions-tax.php:508
67
- #: includes/core/permalink-manager-admin-functions.php:728
68
- #: includes/core/permalink-manager-admin-functions.php:828
69
- #: includes/core/permalink-manager-uri-functions-post.php:652
70
  msgid "Current URI"
71
  msgstr "現在のURI"
72
 
73
- #: includes/core/permalink-manager-admin-functions.php:143
74
  msgid "Are you sure? This action cannot be undone!"
75
  msgstr ""
76
 
77
- #: includes/core/permalink-manager-admin-functions.php:164
78
  msgid "URI Editor"
79
  msgstr "URIエディター"
80
 
81
- #: includes/core/permalink-manager-admin-functions.php:165
82
  #: includes/views/permalink-manager-settings.php:14
83
  msgid "Settings"
84
  msgstr "設定"
85
 
86
- #: includes/core/permalink-manager-admin-functions.php:177
87
  msgid "Documentation"
88
  msgstr ""
89
 
90
- #: includes/core/permalink-manager-admin-functions.php:181
91
  msgid "Buy Permalink Manager Pro"
92
  msgstr "パーマリンク マネージャー Proを購入"
93
 
94
- #: includes/core/permalink-manager-admin-functions.php:268
95
  msgid "Select all"
96
  msgstr "全てを選択する"
97
 
98
- #: includes/core/permalink-manager-admin-functions.php:269
99
  msgid "Unselect all"
100
  msgstr "選択を全て解除する"
101
 
102
- #: includes/core/permalink-manager-admin-functions.php:384
103
  msgid "Permastructure translations"
104
  msgstr ""
105
 
106
- #: includes/core/permalink-manager-admin-functions.php:385
107
  msgid ""
108
  "If you would like to translate the permastructures and set-up different "
109
  "permalink structure per language, please fill in the fields below. Otherwise "
@@ -111,157 +111,157 @@ msgid ""
111
  "applied."
112
  msgstr ""
113
 
114
- #: includes/core/permalink-manager-admin-functions.php:402
115
  msgid "Default permastructure"
116
  msgstr "デフォルト パーマストラクチャ"
117
 
118
- #: includes/core/permalink-manager-admin-functions.php:403
119
  msgid "Restore default permastructure"
120
  msgstr ""
121
 
122
- #: includes/core/permalink-manager-admin-functions.php:409
123
- #: includes/core/permalink-manager-actions.php:393
124
- #: includes/core/permalink-manager-actions.php:397
125
  msgid "Permastructure settings"
126
  msgstr ""
127
 
128
- #: includes/core/permalink-manager-admin-functions.php:410
129
  msgid "Do not automatically append the slug"
130
  msgstr ""
131
 
132
- #: includes/core/permalink-manager-admin-functions.php:418
133
  msgid "Show additional settings"
134
  msgstr ""
135
 
136
- #: includes/core/permalink-manager-admin-functions.php:564
137
  msgid "Donate"
138
  msgstr "寄付"
139
 
140
- #: includes/core/permalink-manager-admin-functions.php:565
141
  msgid "by Maciej Bis"
142
  msgstr "by Maciej Bis"
143
 
144
- #: includes/core/permalink-manager-admin-functions.php:577
145
  msgid "Upgrade to PRO"
146
  msgstr ""
147
 
148
- #: includes/core/permalink-manager-admin-functions.php:644
149
- #: includes/core/permalink-manager-admin-functions.php:671
150
  msgid "Title"
151
  msgstr "タイトル"
152
 
153
- #: includes/core/permalink-manager-admin-functions.php:646
154
- #: includes/core/permalink-manager-admin-functions.php:673
155
  msgid "Old Slug"
156
  msgstr "古いスラッグ"
157
 
158
- #: includes/core/permalink-manager-admin-functions.php:647
159
- #: includes/core/permalink-manager-admin-functions.php:674
160
  msgid "New Slug"
161
  msgstr "新しいスラッグ"
162
 
163
- #: includes/core/permalink-manager-admin-functions.php:649
164
- #: includes/core/permalink-manager-admin-functions.php:676
165
  msgid "Old URI"
166
  msgstr "古いURI"
167
 
168
- #: includes/core/permalink-manager-admin-functions.php:650
169
- #: includes/core/permalink-manager-admin-functions.php:677
170
  msgid "New URI"
171
  msgstr "新しいURI"
172
 
173
- #: includes/core/permalink-manager-admin-functions.php:671
174
  msgid "Show more details"
175
  msgstr "さらなる詳細を表示する"
176
 
177
- #: includes/core/permalink-manager-admin-functions.php:684
178
  msgid "List of updated items"
179
  msgstr "更新済みのアイテムのリスト"
180
 
181
- #: includes/core/permalink-manager-admin-functions.php:697
182
  #, php-format
183
  msgid "<strong class=\"updated_count\">%d</strong> slug was updated!"
184
  msgid_plural "<strong class=\"updated_count\">%d</strong> slugs were updated!"
185
  msgstr[0] ""
186
  msgstr[1] ""
187
 
188
- #: includes/core/permalink-manager-admin-functions.php:698
189
  #, php-format
190
  msgid "<a %s>Click here</a> to go to the list of updated slugs"
191
  msgstr "更新されたスラッグのリストは、<a %s>ここをクリック</a> "
192
 
193
- #: includes/core/permalink-manager-admin-functions.php:702
194
- #: includes/core/permalink-manager-actions.php:107
195
  msgid "<strong>No slugs</strong> were updated!"
196
  msgstr "スラッグは、更新されませんでした。"
197
 
198
- #: includes/core/permalink-manager-admin-functions.php:791
199
- #: includes/core/permalink-manager-admin-functions.php:794
200
  msgid "Yes"
201
  msgstr "はい"
202
 
203
- #: includes/core/permalink-manager-admin-functions.php:791
204
- #: includes/core/permalink-manager-admin-functions.php:795
205
  msgid "No"
206
  msgstr "いいえ"
207
 
208
- #: includes/core/permalink-manager-admin-functions.php:793
209
  #, php-format
210
  msgid "Use global settings [%s]"
211
  msgstr "グローバル設定を使用する [%s]"
212
 
213
- #: includes/core/permalink-manager-admin-functions.php:796
214
  msgid "No (ignore this URI in bulk tools)"
215
  msgstr ""
216
 
217
- #: includes/core/permalink-manager-admin-functions.php:810
218
  msgid "Close: "
219
  msgstr "閉じる:"
220
 
221
- #: includes/core/permalink-manager-admin-functions.php:822
222
  msgid "The custom URI cannot be edited on frontpage."
223
  msgstr "カスタムURIは、フロントページでは編集不可です。"
224
 
225
- #: includes/core/permalink-manager-admin-functions.php:829
226
  msgid ""
227
  "If custom URI is not defined, a default URI will be set (see below). The "
228
  "custom URI can be edited only if 'Auto-update the URI' feature is not "
229
  "enabled."
230
  msgstr ""
231
 
232
- #: includes/core/permalink-manager-admin-functions.php:838
233
  msgid "Native slug"
234
  msgstr ""
235
 
236
- #: includes/core/permalink-manager-admin-functions.php:839
237
  msgid ""
238
  "The native slug is by default automatically used in native permalinks (when "
239
  "Permalink Manager is disabled)."
240
  msgstr ""
241
 
242
- #: includes/core/permalink-manager-admin-functions.php:849
243
  msgid "Auto-update the URI"
244
  msgstr "URIの自動更新"
245
 
246
- #: includes/core/permalink-manager-admin-functions.php:850
247
  msgid ""
248
  "If enabled, the 'Current URI' field will be automatically changed to "
249
  "'Default URI' (displayed below) after the post is saved or updated."
250
  msgstr "有効にすると、「現在のURI」項目は投稿が更新又は保存された後に、(下記に表示された)「デフォルトURI」に自動的に変更されます。"
251
 
252
- #: includes/core/permalink-manager-admin-functions.php:858
253
  msgid "Default URI"
254
  msgstr "デフォルト URI"
255
 
256
- #: includes/core/permalink-manager-admin-functions.php:859
257
  msgid "Restore Default URI"
258
  msgstr ""
259
 
260
- #: includes/core/permalink-manager-admin-functions.php:869
261
  msgid "Automatic redirect for native URI enabled:"
262
  msgstr "ネイティブURIの自動リダイレクトを有効にする:"
263
 
264
- #: includes/core/permalink-manager-admin-functions.php:880
265
  #, php-format
266
  msgid ""
267
  "<span><strong>Need more functionalities and dedicated support?</strong> Buy "
@@ -269,44 +269,40 @@ msgid ""
269
  "permalink-manager-pro/\">PMLITE coupon code</a> to get 10% off.</a></span>"
270
  msgstr ""
271
 
272
- #: includes/core/permalink-manager-admin-functions.php:891
273
  msgid "Save permalink"
274
  msgstr ""
275
 
276
- #: includes/core/permalink-manager-admin-functions.php:918
277
  msgid "Manage redirects"
278
  msgstr "リダイレクトを管理"
279
 
280
- #: includes/core/permalink-manager-admin-functions.php:1014
281
- msgid "URI is already in use, please select another one!"
282
- msgstr "URIは既に使用済みです。他をお選び下さい。"
283
-
284
- #: includes/core/permalink-manager-admin-functions.php:1063
285
  #, php-format
286
  msgid ""
287
  "This functionality is available only in <a href=\"%s\" target=\"_blank\">"
288
  "Permalink Manager Pro</a>."
289
  msgstr "この機能は、パーマリンク マネージャー Proのみ利用可能です。"
290
 
291
- #: includes/core/permalink-manager-pro-functions.php:120
292
- #: includes/core/permalink-manager-pro-functions.php:146
293
  #, php-format
294
  msgid ""
295
  "Please paste the licence key to access all Permalink Manager Pro updates & "
296
  "features <a href=\"%s\" target=\"_blank\">on this page</a>."
297
  msgstr ""
298
 
299
- #: includes/core/permalink-manager-pro-functions.php:125
300
  msgid ""
301
  "Expiration date could not be downloaded at this moment. Please try again in "
302
  "a few minutes."
303
  msgstr ""
304
 
305
- #: includes/core/permalink-manager-pro-functions.php:130
306
  msgid "Your Permalink Manager Pro licence key is invalid!"
307
  msgstr ""
308
 
309
- #: includes/core/permalink-manager-pro-functions.php:135
310
  #, php-format
311
  msgid ""
312
  "Your Permalink Manager Pro licence key expired! To restore access to plugin "
@@ -314,110 +310,110 @@ msgid ""
314
  "this page</a>."
315
  msgstr ""
316
 
317
- #: includes/core/permalink-manager-pro-functions.php:140
318
  msgid "You own a lifetime licence key."
319
  msgstr "あなたは、永久ライセンスキーをお持ちです。"
320
 
321
- #: includes/core/permalink-manager-pro-functions.php:143
322
  #, php-format
323
  msgid ""
324
  "Your licence key is valid until %s.<br />To prolong it please go to <a "
325
  "href=\"%s\" target=\"_blank\">this page</a> for more information."
326
  msgstr ""
327
 
328
- #: includes/core/permalink-manager-pro-functions.php:168
329
  msgid "Arabic"
330
  msgstr "アラビア語"
331
 
332
- #: includes/core/permalink-manager-pro-functions.php:169
333
  msgid "Chinese"
334
  msgstr "中国語"
335
 
336
- #: includes/core/permalink-manager-pro-functions.php:170
337
  msgid "Danish"
338
  msgstr "デンマーク語"
339
 
340
- #: includes/core/permalink-manager-pro-functions.php:171
341
  msgid "Dutch"
342
  msgstr "ドイツ語"
343
 
344
- #: includes/core/permalink-manager-pro-functions.php:172
345
  msgid "English"
346
  msgstr "英語"
347
 
348
- #: includes/core/permalink-manager-pro-functions.php:173
349
  msgid "Finnish"
350
  msgstr "フィンランド語"
351
 
352
- #: includes/core/permalink-manager-pro-functions.php:174
353
  msgid "French"
354
  msgstr "フランス語"
355
 
356
- #: includes/core/permalink-manager-pro-functions.php:175
357
  msgid "German"
358
  msgstr "ドイツ語"
359
 
360
- #: includes/core/permalink-manager-pro-functions.php:176
361
  msgid "Hebrew"
362
  msgstr "ヘブライ語"
363
 
364
- #: includes/core/permalink-manager-pro-functions.php:177
365
  msgid "Hindi"
366
  msgstr "ヒンディー語"
367
 
368
- #: includes/core/permalink-manager-pro-functions.php:178
369
  msgid "Italian"
370
  msgstr "イタリア語"
371
 
372
- #: includes/core/permalink-manager-pro-functions.php:179
373
  msgid "Japanese"
374
  msgstr "日本語"
375
 
376
- #: includes/core/permalink-manager-pro-functions.php:180
377
  msgid "Korean"
378
  msgstr "韓国語"
379
 
380
- #: includes/core/permalink-manager-pro-functions.php:181
381
  msgid "Norwegian"
382
  msgstr "ノルウェー語"
383
 
384
- #: includes/core/permalink-manager-pro-functions.php:182
385
  msgid "Persian"
386
  msgstr "ペルシア語"
387
 
388
- #: includes/core/permalink-manager-pro-functions.php:183
389
  msgid "Polish"
390
  msgstr "ポーランド語"
391
 
392
- #: includes/core/permalink-manager-pro-functions.php:184
393
  msgid "Portuguese"
394
  msgstr "ポルトガル語"
395
 
396
- #: includes/core/permalink-manager-pro-functions.php:185
397
  msgid "Russian"
398
  msgstr "ロシア語"
399
 
400
- #: includes/core/permalink-manager-pro-functions.php:186
401
  msgid "Spanish"
402
  msgstr "スペイン語"
403
 
404
- #: includes/core/permalink-manager-pro-functions.php:187
405
  msgid "Swedish"
406
  msgstr "スウェーデン語"
407
 
408
- #: includes/core/permalink-manager-pro-functions.php:188
409
  msgid "Turkish"
410
  msgstr "トルコ語"
411
 
412
- #: includes/core/permalink-manager-pro-functions.php:470
413
  msgid "Coupon Link"
414
  msgstr "クーポンリンク"
415
 
416
- #: includes/core/permalink-manager-pro-functions.php:491
417
  msgid "Coupon URI"
418
  msgstr "クーポンURI"
419
 
420
- #: includes/core/permalink-manager-pro-functions.php:492
421
  msgid ""
422
  "The URIs are case-insensitive, eg. <strong>BLACKFRIDAY</strong> and <strong>"
423
  "blackfriday</strong> are equivalent."
@@ -425,62 +421,66 @@ msgstr ""
425
  "URIは、大文字・小文字は区別しません。例:<strong>BLACKFRIDAY</strong> と<strong>"
426
  "blackfriday</strong>は、同じです。"
427
 
428
- #: includes/core/permalink-manager-pro-functions.php:503
429
  msgid "Coupon Full URL"
430
  msgstr "クーポン フル URL"
431
 
432
- #: includes/core/permalink-manager-actions.php:97
433
  msgid "The settings are saved!"
434
  msgstr "設定は、保存されました!"
435
 
436
- #: includes/core/permalink-manager-actions.php:361
437
  #, php-format
438
  msgid "%d Custom URIs and %d Custom Redirects were removed!"
439
  msgstr "%d カスタムURIと、%d カスタム リダイレクトは削除されました。"
440
 
441
- #: includes/core/permalink-manager-actions.php:363
442
  msgid "No Custom URIs or Custom Redirects were removed!"
443
  msgstr "カスタムURIもしくはカスタム リダイレクトは、削除されませんでした!"
444
 
445
- #: includes/core/permalink-manager-actions.php:375
446
  msgid "You are not allowed to remove Permalink Manager data!"
447
  msgstr ""
448
 
449
- #: includes/core/permalink-manager-actions.php:381
450
  msgid "Custom permalinks"
451
  msgstr ""
452
 
453
- #: includes/core/permalink-manager-actions.php:385
454
  msgid "Custom redirects"
455
  msgstr ""
456
 
457
- #: includes/core/permalink-manager-actions.php:389
458
  msgid "External redirects"
459
  msgstr ""
460
 
461
- #: includes/core/permalink-manager-actions.php:408
462
  #, php-format
463
  msgid "%s were removed!"
464
  msgstr ""
465
 
466
- #: includes/core/permalink-manager-actions.php:549
467
  #, php-format
468
  msgid "URI \"%s\" was removed successfully!"
469
  msgstr "「%s」のURIは、無事削除されました!"
470
 
471
- #: includes/core/permalink-manager-actions.php:558
472
  msgid "Broken redirects were removed successfully!"
473
  msgstr "リンク切れリダイレクトは、無事削除されました!"
474
 
475
- #: includes/core/permalink-manager-actions.php:563
476
  msgid "URI and/or custom redirects does not exist or were already removed!"
477
  msgstr "URIもしくはカスタムリダイレクトは、実在しないか既に削除されています!"
478
 
479
- #: includes/core/permalink-manager-actions.php:577
480
  msgid "The redirect was removed successfully!"
481
  msgstr "リダイレクトは、無事削除されました!"
482
 
483
- #: includes/core/permalink-manager-actions.php:612
 
 
 
 
484
  msgid "Sitemaps were updated!"
485
  msgstr "サイトマップは、更新されました!"
486
 
@@ -875,87 +875,97 @@ msgid ""
875
  msgstr "この機能は、WordPressに対して訪問者が使用したURLの修正を許可します。"
876
 
877
  #: includes/views/permalink-manager-settings.php:71
878
- msgid "Redirect old permalinks"
 
 
 
 
 
 
879
  msgstr ""
880
 
881
- #: includes/views/permalink-manager-settings.php:75
 
 
 
 
882
  msgid ""
883
  "If enabled, the redirects will be automatially created for old custom "
884
- "permalinks, after posts or terms URLs are changed."
885
  msgstr ""
886
 
887
- #: includes/views/permalink-manager-settings.php:79
888
  msgid "Redirect mode"
889
  msgstr ""
890
 
891
- #: includes/views/permalink-manager-settings.php:81
892
  msgid "Disable"
893
  msgstr "無効"
894
 
895
- #: includes/views/permalink-manager-settings.php:81
896
  msgid "Enable \"301 redirect\""
897
  msgstr "「301 リダイレクト」を有効にする"
898
 
899
- #: includes/views/permalink-manager-settings.php:81
900
  msgid "Enable \"302 redirect\""
901
  msgstr "「302 リダイレクト」を有効にする"
902
 
903
- #: includes/views/permalink-manager-settings.php:82
904
  msgid ""
905
- "If enabled - the visitors will be redirected from native permalinks to your "
906
  "custom permalinks."
907
  msgstr ""
908
 
909
- #: includes/views/permalink-manager-settings.php:86
910
  msgid "Trailing slashes"
911
  msgstr "末尾のスラッシュ"
912
 
913
- #: includes/views/permalink-manager-settings.php:88
914
  msgid "Use default settings"
915
  msgstr "デフォルトの設定を使用する"
916
 
917
- #: includes/views/permalink-manager-settings.php:88
918
  msgid "Add trailing slashes"
919
  msgstr "末尾のスラッシュを追加する"
920
 
921
- #: includes/views/permalink-manager-settings.php:88
922
  msgid "Add trailing slashes (+ auto-redirect links without them)"
923
  msgstr "末尾のスラッシュを追加する(+自動リダイレクト リンク、スラッシュあり)"
924
 
925
- #: includes/views/permalink-manager-settings.php:88
926
  msgid "Remove trailing slashes"
927
  msgstr "末尾のスラッシュを削除する"
928
 
929
- #: includes/views/permalink-manager-settings.php:88
930
  msgid "Remove trailing slashes (+ auto-redirect links with them)"
931
  msgstr "末尾のスラッシュを削除する(+自動リダイレクト リンク、スラッシュなし)"
932
 
933
- #: includes/views/permalink-manager-settings.php:89
934
  msgid ""
935
  "This option can be used to alter the native settings and control if trailing "
936
  "slash should be added or removed from the end of posts & terms permalinks."
937
  msgstr ""
938
  "このオプションは、ネイティブの設定を変更し、末尾のスラッシュを投稿・タームのパーマリンクの末尾に、追加・削除するかを制御するために使用できます。"
939
 
940
- #: includes/views/permalink-manager-settings.php:93
941
  msgid "Force HTTPS/WWW in URLs"
942
  msgstr ""
943
 
944
- #: includes/views/permalink-manager-settings.php:95
945
  msgid ""
946
  "<strong>Please disable it, if you encounter any redirect loop issues."
947
  "</strong>"
948
  msgstr ""
949
 
950
- #: includes/views/permalink-manager-settings.php:100
951
  msgid "Third party plugins"
952
  msgstr ""
953
 
954
- #: includes/views/permalink-manager-settings.php:106
955
  msgid "Fix WPML/Polylang language mismatch"
956
  msgstr ""
957
 
958
- #: includes/views/permalink-manager-settings.php:108
959
  msgid ""
960
  "If enabled, the plugin will load the adjacent translation of post when the "
961
  "custom permalink is detected, but the language code in the URL does not "
@@ -963,56 +973,56 @@ msgid ""
963
  msgstr ""
964
  "有効にすると、本プラグインはカスタムパーマリンクを検出した際、投稿に用いた言語に近い翻訳を読み込みますが、投稿やタームに割当られた言語コードとURL内言語コードと一致しない場合は読み込みません。"
965
 
966
- #: includes/views/permalink-manager-settings.php:112
967
  msgid "Disable support for WP All Import"
968
  msgstr ""
969
 
970
- #: includes/views/permalink-manager-settings.php:114
971
  msgid ""
972
  "If checked, the custom URIs will not be assigned to the posts imported by Wp "
973
  "All Import Pro plugin."
974
  msgstr ""
975
 
976
- #: includes/views/permalink-manager-settings.php:118
977
  msgid "Filter breadcrumbs"
978
  msgstr ""
979
 
980
- #: includes/views/permalink-manager-settings.php:120
981
  msgid ""
982
  "If checked, the HTML breadcrumbs will be filtered by Permalink Manager to "
983
  "mimic the current URL structure.<br />Works with: Yoast SEO, RankMath and "
984
  "SEOPress breadcrumbs."
985
  msgstr ""
986
 
987
- #: includes/views/permalink-manager-settings.php:124
988
  msgid "Exclude content types"
989
  msgstr ""
990
 
991
- #: includes/views/permalink-manager-settings.php:126
992
  msgid ""
993
  "Permalink Manager will ignore and not filter the custom permalinks of all "
994
  "selected above post types & taxonomies."
995
  msgstr ""
996
 
997
- #: includes/views/permalink-manager-settings.php:131
998
  msgid "Advanced settings"
999
  msgstr "詳細設定"
1000
 
1001
- #: includes/views/permalink-manager-settings.php:137
1002
  msgid "Show \"Native slug\" field"
1003
  msgstr ""
1004
 
1005
- #: includes/views/permalink-manager-settings.php:139
1006
  msgid ""
1007
  "If enabled, it would be possible to edit the native slug via URI Editor on "
1008
  "single post/term edit page."
1009
  msgstr ""
1010
 
1011
- #: includes/views/permalink-manager-settings.php:143
1012
  msgid "Force 404 on non-existing pagination pages"
1013
  msgstr "実在しないページ割付のページに404を強制表示する"
1014
 
1015
- #: includes/views/permalink-manager-settings.php:145
1016
  msgid ""
1017
  "If enabled, the non-existing pagination pages (for single posts) will return "
1018
  "404 (\"Not Found\") error.<br /><strong>Please disable it, if you encounter "
@@ -1021,60 +1031,60 @@ msgstr ""
1021
  "有効にすると、実在しないページ割付のページ(単一投稿用)に対して、404( \"Not Found\")エラーを返します。<br /><strong>"
1022
  "ページ割付のページ、もしくは独自のページ割付システムをご利用で、なんらかの問題が生じた場合は、無効にしてください。</strong>"
1023
 
1024
- #: includes/views/permalink-manager-settings.php:149
1025
  msgid "Strip special characters"
1026
  msgstr ""
1027
 
1028
- #: includes/views/permalink-manager-settings.php:151
1029
- #: includes/views/permalink-manager-settings.php:158
1030
  msgid "Yes, use native settings"
1031
  msgstr ""
1032
 
1033
- #: includes/views/permalink-manager-settings.php:151
1034
  msgid "No, keep special characters (.,|_+) in the slugs"
1035
  msgstr ""
1036
 
1037
- #: includes/views/permalink-manager-settings.php:152
1038
  msgid ""
1039
  "If enabled only alphanumeric characters, underscores and dashes will be "
1040
  "allowed for post/term slugs."
1041
  msgstr ""
1042
 
1043
- #: includes/views/permalink-manager-settings.php:156
1044
  msgid "Convert accented letters"
1045
  msgstr ""
1046
 
1047
- #: includes/views/permalink-manager-settings.php:158
1048
  msgid "No, keep accented letters in the slugs"
1049
  msgstr ""
1050
 
1051
- #: includes/views/permalink-manager-settings.php:159
1052
  msgid ""
1053
  "If enabled, all the accented letters will be replaced with their non-"
1054
  "accented equivalent (eg. Å => A, Æ => AE, Ø => O, Ć => C)."
1055
  msgstr ""
1056
 
1057
- #: includes/views/permalink-manager-settings.php:163
1058
  msgid "URI Editor role capability"
1059
  msgstr ""
1060
 
1061
- #: includes/views/permalink-manager-settings.php:164
1062
  msgid "Administrator (edit_theme_options)"
1063
  msgstr ""
1064
 
1065
- #: includes/views/permalink-manager-settings.php:164
1066
  msgid "Editor (publish_pages)"
1067
  msgstr ""
1068
 
1069
- #: includes/views/permalink-manager-settings.php:164
1070
  msgid "Author (publish_posts)"
1071
  msgstr ""
1072
 
1073
- #: includes/views/permalink-manager-settings.php:164
1074
  msgid "Contributor (edit_posts)"
1075
  msgstr ""
1076
 
1077
- #: includes/views/permalink-manager-settings.php:165
1078
  #, php-format
1079
  msgid ""
1080
  "Only the users who have selected capability will be able to access URI "
@@ -1082,7 +1092,7 @@ msgid ""
1082
  "be found here</a>."
1083
  msgstr ""
1084
 
1085
- #: includes/views/permalink-manager-settings.php:171
1086
  msgid "Save settings"
1087
  msgstr "設定を保存する"
1088
 
2
  msgstr ""
3
  "Project-Id-Version: Permalink Manager Lite\n"
4
  "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2020-02-15 16:27+0000\n"
6
+ "PO-Revision-Date: 2020-02-15 16:27+0000\n"
7
  "Last-Translator: admin <contact@maciejbis.net>\n"
8
  "Language-Team: Japanese\n"
9
  "Language: ja\n"
14
  "X-Generator: Loco https://localise.biz/\n"
15
  "X-Loco-Version: 2.3.1; wp-5.3.2"
16
 
17
+ #: permalink-manager.php:205
18
  #, php-format
19
  msgid ""
20
  "Get access to extra features: full taxonomy and WooCommerce support, "
26
  "<strong>パーマリンク マネージャー Proの購入は<a href=\"%s\" target=\"_blank\">コチラ</a>! %s "
27
  "の割引 「%s」をご利用下さい。 </strong> %s まで!"
28
 
29
+ #: includes/core/permalink-manager-third-parties.php:619
30
  msgid "\"Custom Permalinks\" URIs were imported!"
31
  msgstr "「カスタム パーマリンク」URIは、インポートされました!"
32
 
33
+ #: includes/core/permalink-manager-third-parties.php:622
34
  msgid "No \"Custom Permalinks\" URIs were imported!"
35
  msgstr "「カスタム パーマリンク」 URIはインポートされませんでした!"
36
 
37
  #. Name of the plugin
38
+ #: includes/core/permalink-manager-third-parties.php:894
39
  #: includes/core/permalink-manager-gutenberg.php:14
40
+ #: includes/core/permalink-manager-admin-functions.php:110
41
+ #: includes/core/permalink-manager-admin-functions.php:110
42
+ #: includes/core/permalink-manager-admin-functions.php:715
43
+ #: includes/core/permalink-manager-admin-functions.php:796
44
+ #: includes/core/permalink-manager-admin-functions.php:801
45
+ #: includes/core/permalink-manager-admin-functions.php:802
46
  msgid "Permalink Manager"
47
  msgstr "パーマリンク マネージャー"
48
 
49
+ #: includes/core/permalink-manager-third-parties.php:898
50
  #: includes/core/permalink-manager-uri-functions-tax.php:475
51
  #: includes/views/permalink-manager-tools.php:70
52
  msgid "Custom URI"
53
  msgstr "カスタム URI"
54
 
55
+ #: includes/core/permalink-manager-third-parties.php:899
56
  #, php-format
57
  msgid ""
58
  "If empty, a default permalink based on your current <a href=\"%s\" "
64
  msgstr "デフォルトのパーマリンクを使用するため、フィールドを空のままにする / クリアする"
65
 
66
  #: includes/core/permalink-manager-uri-functions-tax.php:508
67
+ #: includes/core/permalink-manager-admin-functions.php:719
68
+ #: includes/core/permalink-manager-admin-functions.php:819
69
+ #: includes/core/permalink-manager-uri-functions-post.php:661
70
  msgid "Current URI"
71
  msgstr "現在のURI"
72
 
73
+ #: includes/core/permalink-manager-admin-functions.php:134
74
  msgid "Are you sure? This action cannot be undone!"
75
  msgstr ""
76
 
77
+ #: includes/core/permalink-manager-admin-functions.php:155
78
  msgid "URI Editor"
79
  msgstr "URIエディター"
80
 
81
+ #: includes/core/permalink-manager-admin-functions.php:156
82
  #: includes/views/permalink-manager-settings.php:14
83
  msgid "Settings"
84
  msgstr "設定"
85
 
86
+ #: includes/core/permalink-manager-admin-functions.php:168
87
  msgid "Documentation"
88
  msgstr ""
89
 
90
+ #: includes/core/permalink-manager-admin-functions.php:172
91
  msgid "Buy Permalink Manager Pro"
92
  msgstr "パーマリンク マネージャー Proを購入"
93
 
94
+ #: includes/core/permalink-manager-admin-functions.php:259
95
  msgid "Select all"
96
  msgstr "全てを選択する"
97
 
98
+ #: includes/core/permalink-manager-admin-functions.php:260
99
  msgid "Unselect all"
100
  msgstr "選択を全て解除する"
101
 
102
+ #: includes/core/permalink-manager-admin-functions.php:375
103
  msgid "Permastructure translations"
104
  msgstr ""
105
 
106
+ #: includes/core/permalink-manager-admin-functions.php:376
107
  msgid ""
108
  "If you would like to translate the permastructures and set-up different "
109
  "permalink structure per language, please fill in the fields below. Otherwise "
111
  "applied."
112
  msgstr ""
113
 
114
+ #: includes/core/permalink-manager-admin-functions.php:393
115
  msgid "Default permastructure"
116
  msgstr "デフォルト パーマストラクチャ"
117
 
118
+ #: includes/core/permalink-manager-admin-functions.php:394
119
  msgid "Restore default permastructure"
120
  msgstr ""
121
 
122
+ #: includes/core/permalink-manager-admin-functions.php:400
123
+ #: includes/core/permalink-manager-actions.php:394
124
+ #: includes/core/permalink-manager-actions.php:398
125
  msgid "Permastructure settings"
126
  msgstr ""
127
 
128
+ #: includes/core/permalink-manager-admin-functions.php:401
129
  msgid "Do not automatically append the slug"
130
  msgstr ""
131
 
132
+ #: includes/core/permalink-manager-admin-functions.php:409
133
  msgid "Show additional settings"
134
  msgstr ""
135
 
136
+ #: includes/core/permalink-manager-admin-functions.php:555
137
  msgid "Donate"
138
  msgstr "寄付"
139
 
140
+ #: includes/core/permalink-manager-admin-functions.php:556
141
  msgid "by Maciej Bis"
142
  msgstr "by Maciej Bis"
143
 
144
+ #: includes/core/permalink-manager-admin-functions.php:568
145
  msgid "Upgrade to PRO"
146
  msgstr ""
147
 
148
+ #: includes/core/permalink-manager-admin-functions.php:635
149
+ #: includes/core/permalink-manager-admin-functions.php:662
150
  msgid "Title"
151
  msgstr "タイトル"
152
 
153
+ #: includes/core/permalink-manager-admin-functions.php:637
154
+ #: includes/core/permalink-manager-admin-functions.php:664
155
  msgid "Old Slug"
156
  msgstr "古いスラッグ"
157
 
158
+ #: includes/core/permalink-manager-admin-functions.php:638
159
+ #: includes/core/permalink-manager-admin-functions.php:665
160
  msgid "New Slug"
161
  msgstr "新しいスラッグ"
162
 
163
+ #: includes/core/permalink-manager-admin-functions.php:640
164
+ #: includes/core/permalink-manager-admin-functions.php:667
165
  msgid "Old URI"
166
  msgstr "古いURI"
167
 
168
+ #: includes/core/permalink-manager-admin-functions.php:641
169
+ #: includes/core/permalink-manager-admin-functions.php:668
170
  msgid "New URI"
171
  msgstr "新しいURI"
172
 
173
+ #: includes/core/permalink-manager-admin-functions.php:662
174
  msgid "Show more details"
175
  msgstr "さらなる詳細を表示する"
176
 
177
+ #: includes/core/permalink-manager-admin-functions.php:675
178
  msgid "List of updated items"
179
  msgstr "更新済みのアイテムのリスト"
180
 
181
+ #: includes/core/permalink-manager-admin-functions.php:688
182
  #, php-format
183
  msgid "<strong class=\"updated_count\">%d</strong> slug was updated!"
184
  msgid_plural "<strong class=\"updated_count\">%d</strong> slugs were updated!"
185
  msgstr[0] ""
186
  msgstr[1] ""
187
 
188
+ #: includes/core/permalink-manager-admin-functions.php:689
189
  #, php-format
190
  msgid "<a %s>Click here</a> to go to the list of updated slugs"
191
  msgstr "更新されたスラッグのリストは、<a %s>ここをクリック</a> "
192
 
193
+ #: includes/core/permalink-manager-admin-functions.php:693
194
+ #: includes/core/permalink-manager-actions.php:108
195
  msgid "<strong>No slugs</strong> were updated!"
196
  msgstr "スラッグは、更新されませんでした。"
197
 
198
+ #: includes/core/permalink-manager-admin-functions.php:782
199
+ #: includes/core/permalink-manager-admin-functions.php:785
200
  msgid "Yes"
201
  msgstr "はい"
202
 
203
+ #: includes/core/permalink-manager-admin-functions.php:782
204
+ #: includes/core/permalink-manager-admin-functions.php:786
205
  msgid "No"
206
  msgstr "いいえ"
207
 
208
+ #: includes/core/permalink-manager-admin-functions.php:784
209
  #, php-format
210
  msgid "Use global settings [%s]"
211
  msgstr "グローバル設定を使用する [%s]"
212
 
213
+ #: includes/core/permalink-manager-admin-functions.php:787
214
  msgid "No (ignore this URI in bulk tools)"
215
  msgstr ""
216
 
217
+ #: includes/core/permalink-manager-admin-functions.php:801
218
  msgid "Close: "
219
  msgstr "閉じる:"
220
 
221
+ #: includes/core/permalink-manager-admin-functions.php:813
222
  msgid "The custom URI cannot be edited on frontpage."
223
  msgstr "カスタムURIは、フロントページでは編集不可です。"
224
 
225
+ #: includes/core/permalink-manager-admin-functions.php:820
226
  msgid ""
227
  "If custom URI is not defined, a default URI will be set (see below). The "
228
  "custom URI can be edited only if 'Auto-update the URI' feature is not "
229
  "enabled."
230
  msgstr ""
231
 
232
+ #: includes/core/permalink-manager-admin-functions.php:829
233
  msgid "Native slug"
234
  msgstr ""
235
 
236
+ #: includes/core/permalink-manager-admin-functions.php:830
237
  msgid ""
238
  "The native slug is by default automatically used in native permalinks (when "
239
  "Permalink Manager is disabled)."
240
  msgstr ""
241
 
242
+ #: includes/core/permalink-manager-admin-functions.php:840
243
  msgid "Auto-update the URI"
244
  msgstr "URIの自動更新"
245
 
246
+ #: includes/core/permalink-manager-admin-functions.php:841
247
  msgid ""
248
  "If enabled, the 'Current URI' field will be automatically changed to "
249
  "'Default URI' (displayed below) after the post is saved or updated."
250
  msgstr "有効にすると、「現在のURI」項目は投稿が更新又は保存された後に、(下記に表示された)「デフォルトURI」に自動的に変更されます。"
251
 
252
+ #: includes/core/permalink-manager-admin-functions.php:849
253
  msgid "Default URI"
254
  msgstr "デフォルト URI"
255
 
256
+ #: includes/core/permalink-manager-admin-functions.php:850
257
  msgid "Restore Default URI"
258
  msgstr ""
259
 
260
+ #: includes/core/permalink-manager-admin-functions.php:860
261
  msgid "Automatic redirect for native URI enabled:"
262
  msgstr "ネイティブURIの自動リダイレクトを有効にする:"
263
 
264
+ #: includes/core/permalink-manager-admin-functions.php:871
265
  #, php-format
266
  msgid ""
267
  "<span><strong>Need more functionalities and dedicated support?</strong> Buy "
269
  "permalink-manager-pro/\">PMLITE coupon code</a> to get 10% off.</a></span>"
270
  msgstr ""
271
 
272
+ #: includes/core/permalink-manager-admin-functions.php:882
273
  msgid "Save permalink"
274
  msgstr ""
275
 
276
+ #: includes/core/permalink-manager-admin-functions.php:909
277
  msgid "Manage redirects"
278
  msgstr "リダイレクトを管理"
279
 
280
+ #: includes/core/permalink-manager-admin-functions.php:1027
 
 
 
 
281
  #, php-format
282
  msgid ""
283
  "This functionality is available only in <a href=\"%s\" target=\"_blank\">"
284
  "Permalink Manager Pro</a>."
285
  msgstr "この機能は、パーマリンク マネージャー Proのみ利用可能です。"
286
 
287
+ #: includes/core/permalink-manager-pro-functions.php:123
288
+ #: includes/core/permalink-manager-pro-functions.php:149
289
  #, php-format
290
  msgid ""
291
  "Please paste the licence key to access all Permalink Manager Pro updates & "
292
  "features <a href=\"%s\" target=\"_blank\">on this page</a>."
293
  msgstr ""
294
 
295
+ #: includes/core/permalink-manager-pro-functions.php:128
296
  msgid ""
297
  "Expiration date could not be downloaded at this moment. Please try again in "
298
  "a few minutes."
299
  msgstr ""
300
 
301
+ #: includes/core/permalink-manager-pro-functions.php:133
302
  msgid "Your Permalink Manager Pro licence key is invalid!"
303
  msgstr ""
304
 
305
+ #: includes/core/permalink-manager-pro-functions.php:138
306
  #, php-format
307
  msgid ""
308
  "Your Permalink Manager Pro licence key expired! To restore access to plugin "
310
  "this page</a>."
311
  msgstr ""
312
 
313
+ #: includes/core/permalink-manager-pro-functions.php:143
314
  msgid "You own a lifetime licence key."
315
  msgstr "あなたは、永久ライセンスキーをお持ちです。"
316
 
317
+ #: includes/core/permalink-manager-pro-functions.php:146
318
  #, php-format
319
  msgid ""
320
  "Your licence key is valid until %s.<br />To prolong it please go to <a "
321
  "href=\"%s\" target=\"_blank\">this page</a> for more information."
322
  msgstr ""
323
 
324
+ #: includes/core/permalink-manager-pro-functions.php:171
325
  msgid "Arabic"
326
  msgstr "アラビア語"
327
 
328
+ #: includes/core/permalink-manager-pro-functions.php:172
329
  msgid "Chinese"
330
  msgstr "中国語"
331
 
332
+ #: includes/core/permalink-manager-pro-functions.php:173
333
  msgid "Danish"
334
  msgstr "デンマーク語"
335
 
336
+ #: includes/core/permalink-manager-pro-functions.php:174
337
  msgid "Dutch"
338
  msgstr "ドイツ語"
339
 
340
+ #: includes/core/permalink-manager-pro-functions.php:175
341
  msgid "English"
342
  msgstr "英語"
343
 
344
+ #: includes/core/permalink-manager-pro-functions.php:176
345
  msgid "Finnish"
346
  msgstr "フィンランド語"
347
 
348
+ #: includes/core/permalink-manager-pro-functions.php:177
349
  msgid "French"
350
  msgstr "フランス語"
351
 
352
+ #: includes/core/permalink-manager-pro-functions.php:178
353
  msgid "German"
354
  msgstr "ドイツ語"
355
 
356
+ #: includes/core/permalink-manager-pro-functions.php:179
357
  msgid "Hebrew"
358
  msgstr "ヘブライ語"
359
 
360
+ #: includes/core/permalink-manager-pro-functions.php:180
361
  msgid "Hindi"
362
  msgstr "ヒンディー語"
363
 
364
+ #: includes/core/permalink-manager-pro-functions.php:181
365
  msgid "Italian"
366
  msgstr "イタリア語"
367
 
368
+ #: includes/core/permalink-manager-pro-functions.php:182
369
  msgid "Japanese"
370
  msgstr "日本語"
371
 
372
+ #: includes/core/permalink-manager-pro-functions.php:183
373
  msgid "Korean"
374
  msgstr "韓国語"
375
 
376
+ #: includes/core/permalink-manager-pro-functions.php:184
377
  msgid "Norwegian"
378
  msgstr "ノルウェー語"
379
 
380
+ #: includes/core/permalink-manager-pro-functions.php:185
381
  msgid "Persian"
382
  msgstr "ペルシア語"
383
 
384
+ #: includes/core/permalink-manager-pro-functions.php:186
385
  msgid "Polish"
386
  msgstr "ポーランド語"
387
 
388
+ #: includes/core/permalink-manager-pro-functions.php:187
389
  msgid "Portuguese"
390
  msgstr "ポルトガル語"
391
 
392
+ #: includes/core/permalink-manager-pro-functions.php:188
393
  msgid "Russian"
394
  msgstr "ロシア語"
395
 
396
+ #: includes/core/permalink-manager-pro-functions.php:189
397
  msgid "Spanish"
398
  msgstr "スペイン語"
399
 
400
+ #: includes/core/permalink-manager-pro-functions.php:190
401
  msgid "Swedish"
402
  msgstr "スウェーデン語"
403
 
404
+ #: includes/core/permalink-manager-pro-functions.php:191
405
  msgid "Turkish"
406
  msgstr "トルコ語"
407
 
408
+ #: includes/core/permalink-manager-pro-functions.php:473
409
  msgid "Coupon Link"
410
  msgstr "クーポンリンク"
411
 
412
+ #: includes/core/permalink-manager-pro-functions.php:494
413
  msgid "Coupon URI"
414
  msgstr "クーポンURI"
415
 
416
+ #: includes/core/permalink-manager-pro-functions.php:495
417
  msgid ""
418
  "The URIs are case-insensitive, eg. <strong>BLACKFRIDAY</strong> and <strong>"
419
  "blackfriday</strong> are equivalent."
421
  "URIは、大文字・小文字は区別しません。例:<strong>BLACKFRIDAY</strong> と<strong>"
422
  "blackfriday</strong>は、同じです。"
423
 
424
+ #: includes/core/permalink-manager-pro-functions.php:506
425
  msgid "Coupon Full URL"
426
  msgstr "クーポン フル URL"
427
 
428
+ #: includes/core/permalink-manager-actions.php:98
429
  msgid "The settings are saved!"
430
  msgstr "設定は、保存されました!"
431
 
432
+ #: includes/core/permalink-manager-actions.php:362
433
  #, php-format
434
  msgid "%d Custom URIs and %d Custom Redirects were removed!"
435
  msgstr "%d カスタムURIと、%d カスタム リダイレクトは削除されました。"
436
 
437
+ #: includes/core/permalink-manager-actions.php:364
438
  msgid "No Custom URIs or Custom Redirects were removed!"
439
  msgstr "カスタムURIもしくはカスタム リダイレクトは、削除されませんでした!"
440
 
441
+ #: includes/core/permalink-manager-actions.php:376
442
  msgid "You are not allowed to remove Permalink Manager data!"
443
  msgstr ""
444
 
445
+ #: includes/core/permalink-manager-actions.php:382
446
  msgid "Custom permalinks"
447
  msgstr ""
448
 
449
+ #: includes/core/permalink-manager-actions.php:386
450
  msgid "Custom redirects"
451
  msgstr ""
452
 
453
+ #: includes/core/permalink-manager-actions.php:390
454
  msgid "External redirects"
455
  msgstr ""
456
 
457
+ #: includes/core/permalink-manager-actions.php:409
458
  #, php-format
459
  msgid "%s were removed!"
460
  msgstr ""
461
 
462
+ #: includes/core/permalink-manager-actions.php:550
463
  #, php-format
464
  msgid "URI \"%s\" was removed successfully!"
465
  msgstr "「%s」のURIは、無事削除されました!"
466
 
467
+ #: includes/core/permalink-manager-actions.php:559
468
  msgid "Broken redirects were removed successfully!"
469
  msgstr "リンク切れリダイレクトは、無事削除されました!"
470
 
471
+ #: includes/core/permalink-manager-actions.php:564
472
  msgid "URI and/or custom redirects does not exist or were already removed!"
473
  msgstr "URIもしくはカスタムリダイレクトは、実在しないか既に削除されています!"
474
 
475
+ #: includes/core/permalink-manager-actions.php:578
476
  msgid "The redirect was removed successfully!"
477
  msgstr "リダイレクトは、無事削除されました!"
478
 
479
+ #: includes/core/permalink-manager-actions.php:608
480
+ msgid "URI is already in use, please select another one!"
481
+ msgstr "URIは既に使用済みです。他をお選び下さい。"
482
+
483
+ #: includes/core/permalink-manager-actions.php:640
484
  msgid "Sitemaps were updated!"
485
  msgstr "サイトマップは、更新されました!"
486
 
875
  msgstr "この機能は、WordPressに対して訪問者が使用したURLの修正を許可します。"
876
 
877
  #: includes/views/permalink-manager-settings.php:71
878
+ msgid "Old slug redirect"
879
+ msgstr ""
880
+
881
+ #: includes/views/permalink-manager-settings.php:73
882
+ msgid ""
883
+ "If enabled, the visitors will be automatically redirected to canonical "
884
+ "permalink if old post's slug was detected."
885
  msgstr ""
886
 
887
+ #: includes/views/permalink-manager-settings.php:77
888
+ msgid "Old custom permalinks redirect"
889
+ msgstr ""
890
+
891
+ #: includes/views/permalink-manager-settings.php:81
892
  msgid ""
893
  "If enabled, the redirects will be automatially created for old custom "
894
+ "permalinks, after posts/terms URLs are changed."
895
  msgstr ""
896
 
897
+ #: includes/views/permalink-manager-settings.php:85
898
  msgid "Redirect mode"
899
  msgstr ""
900
 
901
+ #: includes/views/permalink-manager-settings.php:87
902
  msgid "Disable"
903
  msgstr "無効"
904
 
905
+ #: includes/views/permalink-manager-settings.php:87
906
  msgid "Enable \"301 redirect\""
907
  msgstr "「301 リダイレクト」を有効にする"
908
 
909
+ #: includes/views/permalink-manager-settings.php:87
910
  msgid "Enable \"302 redirect\""
911
  msgstr "「302 リダイレクト」を有効にする"
912
 
913
+ #: includes/views/permalink-manager-settings.php:88
914
  msgid ""
915
+ "If enabled, the visitors will be redirected from native permalinks to your "
916
  "custom permalinks."
917
  msgstr ""
918
 
919
+ #: includes/views/permalink-manager-settings.php:92
920
  msgid "Trailing slashes"
921
  msgstr "末尾のスラッシュ"
922
 
923
+ #: includes/views/permalink-manager-settings.php:94
924
  msgid "Use default settings"
925
  msgstr "デフォルトの設定を使用する"
926
 
927
+ #: includes/views/permalink-manager-settings.php:94
928
  msgid "Add trailing slashes"
929
  msgstr "末尾のスラッシュを追加する"
930
 
931
+ #: includes/views/permalink-manager-settings.php:94
932
  msgid "Add trailing slashes (+ auto-redirect links without them)"
933
  msgstr "末尾のスラッシュを追加する(+自動リダイレクト リンク、スラッシュあり)"
934
 
935
+ #: includes/views/permalink-manager-settings.php:94
936
  msgid "Remove trailing slashes"
937
  msgstr "末尾のスラッシュを削除する"
938
 
939
+ #: includes/views/permalink-manager-settings.php:94
940
  msgid "Remove trailing slashes (+ auto-redirect links with them)"
941
  msgstr "末尾のスラッシュを削除する(+自動リダイレクト リンク、スラッシュなし)"
942
 
943
+ #: includes/views/permalink-manager-settings.php:95
944
  msgid ""
945
  "This option can be used to alter the native settings and control if trailing "
946
  "slash should be added or removed from the end of posts & terms permalinks."
947
  msgstr ""
948
  "このオプションは、ネイティブの設定を変更し、末尾のスラッシュを投稿・タームのパーマリンクの末尾に、追加・削除するかを制御するために使用できます。"
949
 
950
+ #: includes/views/permalink-manager-settings.php:99
951
  msgid "Force HTTPS/WWW in URLs"
952
  msgstr ""
953
 
954
+ #: includes/views/permalink-manager-settings.php:101
955
  msgid ""
956
  "<strong>Please disable it, if you encounter any redirect loop issues."
957
  "</strong>"
958
  msgstr ""
959
 
960
+ #: includes/views/permalink-manager-settings.php:106
961
  msgid "Third party plugins"
962
  msgstr ""
963
 
964
+ #: includes/views/permalink-manager-settings.php:112
965
  msgid "Fix WPML/Polylang language mismatch"
966
  msgstr ""
967
 
968
+ #: includes/views/permalink-manager-settings.php:114
969
  msgid ""
970
  "If enabled, the plugin will load the adjacent translation of post when the "
971
  "custom permalink is detected, but the language code in the URL does not "
973
  msgstr ""
974
  "有効にすると、本プラグインはカスタムパーマリンクを検出した際、投稿に用いた言語に近い翻訳を読み込みますが、投稿やタームに割当られた言語コードとURL内言語コードと一致しない場合は読み込みません。"
975
 
976
+ #: includes/views/permalink-manager-settings.php:118
977
  msgid "Disable support for WP All Import"
978
  msgstr ""
979
 
980
+ #: includes/views/permalink-manager-settings.php:120
981
  msgid ""
982
  "If checked, the custom URIs will not be assigned to the posts imported by Wp "
983
  "All Import Pro plugin."
984
  msgstr ""
985
 
986
+ #: includes/views/permalink-manager-settings.php:124
987
  msgid "Filter breadcrumbs"
988
  msgstr ""
989
 
990
+ #: includes/views/permalink-manager-settings.php:126
991
  msgid ""
992
  "If checked, the HTML breadcrumbs will be filtered by Permalink Manager to "
993
  "mimic the current URL structure.<br />Works with: Yoast SEO, RankMath and "
994
  "SEOPress breadcrumbs."
995
  msgstr ""
996
 
997
+ #: includes/views/permalink-manager-settings.php:130
998
  msgid "Exclude content types"
999
  msgstr ""
1000
 
1001
+ #: includes/views/permalink-manager-settings.php:132
1002
  msgid ""
1003
  "Permalink Manager will ignore and not filter the custom permalinks of all "
1004
  "selected above post types & taxonomies."
1005
  msgstr ""
1006
 
1007
+ #: includes/views/permalink-manager-settings.php:137
1008
  msgid "Advanced settings"
1009
  msgstr "詳細設定"
1010
 
1011
+ #: includes/views/permalink-manager-settings.php:143
1012
  msgid "Show \"Native slug\" field"
1013
  msgstr ""
1014
 
1015
+ #: includes/views/permalink-manager-settings.php:145
1016
  msgid ""
1017
  "If enabled, it would be possible to edit the native slug via URI Editor on "
1018
  "single post/term edit page."
1019
  msgstr ""
1020
 
1021
+ #: includes/views/permalink-manager-settings.php:149
1022
  msgid "Force 404 on non-existing pagination pages"
1023
  msgstr "実在しないページ割付のページに404を強制表示する"
1024
 
1025
+ #: includes/views/permalink-manager-settings.php:151
1026
  msgid ""
1027
  "If enabled, the non-existing pagination pages (for single posts) will return "
1028
  "404 (\"Not Found\") error.<br /><strong>Please disable it, if you encounter "
1031
  "有効にすると、実在しないページ割付のページ(単一投稿用)に対して、404( \"Not Found\")エラーを返します。<br /><strong>"
1032
  "ページ割付のページ、もしくは独自のページ割付システムをご利用で、なんらかの問題が生じた場合は、無効にしてください。</strong>"
1033
 
1034
+ #: includes/views/permalink-manager-settings.php:155
1035
  msgid "Strip special characters"
1036
  msgstr ""
1037
 
1038
+ #: includes/views/permalink-manager-settings.php:157
1039
+ #: includes/views/permalink-manager-settings.php:164
1040
  msgid "Yes, use native settings"
1041
  msgstr ""
1042
 
1043
+ #: includes/views/permalink-manager-settings.php:157
1044
  msgid "No, keep special characters (.,|_+) in the slugs"
1045
  msgstr ""
1046
 
1047
+ #: includes/views/permalink-manager-settings.php:158
1048
  msgid ""
1049
  "If enabled only alphanumeric characters, underscores and dashes will be "
1050
  "allowed for post/term slugs."
1051
  msgstr ""
1052
 
1053
+ #: includes/views/permalink-manager-settings.php:162
1054
  msgid "Convert accented letters"
1055
  msgstr ""
1056
 
1057
+ #: includes/views/permalink-manager-settings.php:164
1058
  msgid "No, keep accented letters in the slugs"
1059
  msgstr ""
1060
 
1061
+ #: includes/views/permalink-manager-settings.php:165
1062
  msgid ""
1063
  "If enabled, all the accented letters will be replaced with their non-"
1064
  "accented equivalent (eg. Å => A, Æ => AE, Ø => O, Ć => C)."
1065
  msgstr ""
1066
 
1067
+ #: includes/views/permalink-manager-settings.php:169
1068
  msgid "URI Editor role capability"
1069
  msgstr ""
1070
 
1071
+ #: includes/views/permalink-manager-settings.php:170
1072
  msgid "Administrator (edit_theme_options)"
1073
  msgstr ""
1074
 
1075
+ #: includes/views/permalink-manager-settings.php:170
1076
  msgid "Editor (publish_pages)"
1077
  msgstr ""
1078
 
1079
+ #: includes/views/permalink-manager-settings.php:170
1080
  msgid "Author (publish_posts)"
1081
  msgstr ""
1082
 
1083
+ #: includes/views/permalink-manager-settings.php:170
1084
  msgid "Contributor (edit_posts)"
1085
  msgstr ""
1086
 
1087
+ #: includes/views/permalink-manager-settings.php:171
1088
  #, php-format
1089
  msgid ""
1090
  "Only the users who have selected capability will be able to access URI "
1092
  "be found here</a>."
1093
  msgstr ""
1094
 
1095
+ #: includes/views/permalink-manager-settings.php:177
1096
  msgid "Save settings"
1097
  msgstr "設定を保存する"
1098
 
languages/permalink-manager.pot CHANGED
@@ -3,7 +3,7 @@ msgid ""
3
  msgstr ""
4
  "Project-Id-Version: PACKAGE VERSION\n"
5
  "Report-Msgid-Bugs-To: \n"
6
- "POT-Creation-Date: 2020-01-19 19:52+0000\n"
7
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
8
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
9
  "Language-Team: \n"
@@ -14,7 +14,7 @@ msgstr ""
14
  "Content-Transfer-Encoding: 8bit\n"
15
  "X-Generator: Loco https://localise.biz/"
16
 
17
- #: permalink-manager.php:199
18
  #, php-format
19
  msgid ""
20
  "Get access to extra features: full taxonomy and WooCommerce support, "
@@ -23,84 +23,84 @@ msgid ""
23
  "and save %s using \"%s\" coupon code!</strong> Valid until %s!"
24
  msgstr ""
25
 
26
- #: includes/core/permalink-manager-third-parties.php:615
27
  msgid "\"Custom Permalinks\" URIs were imported!"
28
  msgstr ""
29
 
30
- #: includes/core/permalink-manager-third-parties.php:618
31
  msgid "No \"Custom Permalinks\" URIs were imported!"
32
  msgstr ""
33
 
34
  #. Name of the plugin
35
- #: includes/core/permalink-manager-third-parties.php:889
36
  #: includes/core/permalink-manager-gutenberg.php:14
37
- #: includes/core/permalink-manager-admin-functions.php:119
38
- #: includes/core/permalink-manager-admin-functions.php:119
39
- #: includes/core/permalink-manager-admin-functions.php:724
40
- #: includes/core/permalink-manager-admin-functions.php:805
41
- #: includes/core/permalink-manager-admin-functions.php:810
42
- #: includes/core/permalink-manager-admin-functions.php:811
43
  msgid "Permalink Manager"
44
  msgstr ""
45
 
46
- #: includes/core/permalink-manager-third-parties.php:893
47
- #: includes/core/permalink-manager-uri-functions-tax.php:475
48
  #: includes/views/permalink-manager-tools.php:70
49
  msgid "Custom URI"
50
  msgstr ""
51
 
52
- #: includes/core/permalink-manager-third-parties.php:894
53
  #, php-format
54
  msgid ""
55
  "If empty, a default permalink based on your current <a href=\"%s\" "
56
  "target=\"_blank\">permastructure settings</a> will be used."
57
  msgstr ""
58
 
59
- #: includes/core/permalink-manager-uri-functions-tax.php:476
60
  msgid "Clear/leave the field empty to use the default permalink."
61
  msgstr ""
62
 
63
- #: includes/core/permalink-manager-uri-functions-tax.php:508
64
- #: includes/core/permalink-manager-admin-functions.php:728
65
- #: includes/core/permalink-manager-admin-functions.php:828
66
- #: includes/core/permalink-manager-uri-functions-post.php:652
67
  msgid "Current URI"
68
  msgstr ""
69
 
70
- #: includes/core/permalink-manager-admin-functions.php:143
71
  msgid "Are you sure? This action cannot be undone!"
72
  msgstr ""
73
 
74
- #: includes/core/permalink-manager-admin-functions.php:164
75
  msgid "URI Editor"
76
  msgstr ""
77
 
78
- #: includes/core/permalink-manager-admin-functions.php:165
79
  #: includes/views/permalink-manager-settings.php:14
80
  msgid "Settings"
81
  msgstr ""
82
 
83
- #: includes/core/permalink-manager-admin-functions.php:177
84
  msgid "Documentation"
85
  msgstr ""
86
 
87
- #: includes/core/permalink-manager-admin-functions.php:181
88
  msgid "Buy Permalink Manager Pro"
89
  msgstr ""
90
 
91
- #: includes/core/permalink-manager-admin-functions.php:268
92
  msgid "Select all"
93
  msgstr ""
94
 
95
- #: includes/core/permalink-manager-admin-functions.php:269
96
  msgid "Unselect all"
97
  msgstr ""
98
 
99
- #: includes/core/permalink-manager-admin-functions.php:384
100
  msgid "Permastructure translations"
101
  msgstr ""
102
 
103
- #: includes/core/permalink-manager-admin-functions.php:385
104
  msgid ""
105
  "If you would like to translate the permastructures and set-up different "
106
  "permalink structure per language, please fill in the fields below. Otherwise "
@@ -108,157 +108,157 @@ msgid ""
108
  "applied."
109
  msgstr ""
110
 
111
- #: includes/core/permalink-manager-admin-functions.php:402
112
  msgid "Default permastructure"
113
  msgstr ""
114
 
115
- #: includes/core/permalink-manager-admin-functions.php:403
116
  msgid "Restore default permastructure"
117
  msgstr ""
118
 
119
- #: includes/core/permalink-manager-admin-functions.php:409
120
- #: includes/core/permalink-manager-actions.php:393
121
- #: includes/core/permalink-manager-actions.php:397
122
  msgid "Permastructure settings"
123
  msgstr ""
124
 
125
- #: includes/core/permalink-manager-admin-functions.php:410
126
  msgid "Do not automatically append the slug"
127
  msgstr ""
128
 
129
- #: includes/core/permalink-manager-admin-functions.php:418
130
  msgid "Show additional settings"
131
  msgstr ""
132
 
133
- #: includes/core/permalink-manager-admin-functions.php:564
134
  msgid "Donate"
135
  msgstr ""
136
 
137
- #: includes/core/permalink-manager-admin-functions.php:565
138
  msgid "by Maciej Bis"
139
  msgstr ""
140
 
141
- #: includes/core/permalink-manager-admin-functions.php:577
142
  msgid "Upgrade to PRO"
143
  msgstr ""
144
 
145
- #: includes/core/permalink-manager-admin-functions.php:644
146
- #: includes/core/permalink-manager-admin-functions.php:671
147
  msgid "Title"
148
  msgstr ""
149
 
150
- #: includes/core/permalink-manager-admin-functions.php:646
151
- #: includes/core/permalink-manager-admin-functions.php:673
152
  msgid "Old Slug"
153
  msgstr ""
154
 
155
- #: includes/core/permalink-manager-admin-functions.php:647
156
- #: includes/core/permalink-manager-admin-functions.php:674
157
  msgid "New Slug"
158
  msgstr ""
159
 
160
- #: includes/core/permalink-manager-admin-functions.php:649
161
- #: includes/core/permalink-manager-admin-functions.php:676
162
  msgid "Old URI"
163
  msgstr ""
164
 
165
- #: includes/core/permalink-manager-admin-functions.php:650
166
- #: includes/core/permalink-manager-admin-functions.php:677
167
  msgid "New URI"
168
  msgstr ""
169
 
170
- #: includes/core/permalink-manager-admin-functions.php:671
171
  msgid "Show more details"
172
  msgstr ""
173
 
174
- #: includes/core/permalink-manager-admin-functions.php:684
175
  msgid "List of updated items"
176
  msgstr ""
177
 
178
- #: includes/core/permalink-manager-admin-functions.php:697
179
  #, php-format
180
  msgid "<strong class=\"updated_count\">%d</strong> slug was updated!"
181
  msgid_plural "<strong class=\"updated_count\">%d</strong> slugs were updated!"
182
  msgstr[0] ""
183
  msgstr[1] ""
184
 
185
- #: includes/core/permalink-manager-admin-functions.php:698
186
  #, php-format
187
  msgid "<a %s>Click here</a> to go to the list of updated slugs"
188
  msgstr ""
189
 
190
- #: includes/core/permalink-manager-admin-functions.php:702
191
- #: includes/core/permalink-manager-actions.php:107
192
  msgid "<strong>No slugs</strong> were updated!"
193
  msgstr ""
194
 
195
- #: includes/core/permalink-manager-admin-functions.php:791
196
- #: includes/core/permalink-manager-admin-functions.php:794
197
  msgid "Yes"
198
  msgstr ""
199
 
200
- #: includes/core/permalink-manager-admin-functions.php:791
201
- #: includes/core/permalink-manager-admin-functions.php:795
202
  msgid "No"
203
  msgstr ""
204
 
205
- #: includes/core/permalink-manager-admin-functions.php:793
206
  #, php-format
207
  msgid "Use global settings [%s]"
208
  msgstr ""
209
 
210
- #: includes/core/permalink-manager-admin-functions.php:796
211
  msgid "No (ignore this URI in bulk tools)"
212
  msgstr ""
213
 
214
- #: includes/core/permalink-manager-admin-functions.php:810
215
  msgid "Close: "
216
  msgstr ""
217
 
218
- #: includes/core/permalink-manager-admin-functions.php:822
219
  msgid "The custom URI cannot be edited on frontpage."
220
  msgstr ""
221
 
222
- #: includes/core/permalink-manager-admin-functions.php:829
223
  msgid ""
224
  "If custom URI is not defined, a default URI will be set (see below). The "
225
  "custom URI can be edited only if 'Auto-update the URI' feature is not "
226
  "enabled."
227
  msgstr ""
228
 
229
- #: includes/core/permalink-manager-admin-functions.php:838
230
  msgid "Native slug"
231
  msgstr ""
232
 
233
- #: includes/core/permalink-manager-admin-functions.php:839
234
  msgid ""
235
  "The native slug is by default automatically used in native permalinks (when "
236
  "Permalink Manager is disabled)."
237
  msgstr ""
238
 
239
- #: includes/core/permalink-manager-admin-functions.php:849
240
  msgid "Auto-update the URI"
241
  msgstr ""
242
 
243
- #: includes/core/permalink-manager-admin-functions.php:850
244
  msgid ""
245
  "If enabled, the 'Current URI' field will be automatically changed to "
246
  "'Default URI' (displayed below) after the post is saved or updated."
247
  msgstr ""
248
 
249
- #: includes/core/permalink-manager-admin-functions.php:858
250
  msgid "Default URI"
251
  msgstr ""
252
 
253
- #: includes/core/permalink-manager-admin-functions.php:859
254
  msgid "Restore Default URI"
255
  msgstr ""
256
 
257
- #: includes/core/permalink-manager-admin-functions.php:869
258
  msgid "Automatic redirect for native URI enabled:"
259
  msgstr ""
260
 
261
- #: includes/core/permalink-manager-admin-functions.php:880
262
  #, php-format
263
  msgid ""
264
  "<span><strong>Need more functionalities and dedicated support?</strong> Buy "
@@ -266,44 +266,40 @@ msgid ""
266
  "permalink-manager-pro/\">PMLITE coupon code</a> to get 10% off.</a></span>"
267
  msgstr ""
268
 
269
- #: includes/core/permalink-manager-admin-functions.php:891
270
  msgid "Save permalink"
271
  msgstr ""
272
 
273
- #: includes/core/permalink-manager-admin-functions.php:918
274
  msgid "Manage redirects"
275
  msgstr ""
276
 
277
- #: includes/core/permalink-manager-admin-functions.php:1014
278
- msgid "URI is already in use, please select another one!"
279
- msgstr ""
280
-
281
- #: includes/core/permalink-manager-admin-functions.php:1063
282
  #, php-format
283
  msgid ""
284
  "This functionality is available only in <a href=\"%s\" target=\"_blank\">"
285
  "Permalink Manager Pro</a>."
286
  msgstr ""
287
 
288
- #: includes/core/permalink-manager-pro-functions.php:120
289
- #: includes/core/permalink-manager-pro-functions.php:146
290
  #, php-format
291
  msgid ""
292
  "Please paste the licence key to access all Permalink Manager Pro updates & "
293
  "features <a href=\"%s\" target=\"_blank\">on this page</a>."
294
  msgstr ""
295
 
296
- #: includes/core/permalink-manager-pro-functions.php:125
297
  msgid ""
298
  "Expiration date could not be downloaded at this moment. Please try again in "
299
  "a few minutes."
300
  msgstr ""
301
 
302
- #: includes/core/permalink-manager-pro-functions.php:130
303
  msgid "Your Permalink Manager Pro licence key is invalid!"
304
  msgstr ""
305
 
306
- #: includes/core/permalink-manager-pro-functions.php:135
307
  #, php-format
308
  msgid ""
309
  "Your Permalink Manager Pro licence key expired! To restore access to plugin "
@@ -311,171 +307,175 @@ msgid ""
311
  "this page</a>."
312
  msgstr ""
313
 
314
- #: includes/core/permalink-manager-pro-functions.php:140
315
  msgid "You own a lifetime licence key."
316
  msgstr ""
317
 
318
- #: includes/core/permalink-manager-pro-functions.php:143
319
  #, php-format
320
  msgid ""
321
  "Your licence key is valid until %s.<br />To prolong it please go to <a "
322
  "href=\"%s\" target=\"_blank\">this page</a> for more information."
323
  msgstr ""
324
 
325
- #: includes/core/permalink-manager-pro-functions.php:168
326
  msgid "Arabic"
327
  msgstr ""
328
 
329
- #: includes/core/permalink-manager-pro-functions.php:169
330
  msgid "Chinese"
331
  msgstr ""
332
 
333
- #: includes/core/permalink-manager-pro-functions.php:170
334
  msgid "Danish"
335
  msgstr ""
336
 
337
- #: includes/core/permalink-manager-pro-functions.php:171
338
  msgid "Dutch"
339
  msgstr ""
340
 
341
- #: includes/core/permalink-manager-pro-functions.php:172
342
  msgid "English"
343
  msgstr ""
344
 
345
- #: includes/core/permalink-manager-pro-functions.php:173
346
  msgid "Finnish"
347
  msgstr ""
348
 
349
- #: includes/core/permalink-manager-pro-functions.php:174
350
  msgid "French"
351
  msgstr ""
352
 
353
- #: includes/core/permalink-manager-pro-functions.php:175
354
  msgid "German"
355
  msgstr ""
356
 
357
- #: includes/core/permalink-manager-pro-functions.php:176
358
  msgid "Hebrew"
359
  msgstr ""
360
 
361
- #: includes/core/permalink-manager-pro-functions.php:177
362
  msgid "Hindi"
363
  msgstr ""
364
 
365
- #: includes/core/permalink-manager-pro-functions.php:178
366
  msgid "Italian"
367
  msgstr ""
368
 
369
- #: includes/core/permalink-manager-pro-functions.php:179
370
  msgid "Japanese"
371
  msgstr ""
372
 
373
- #: includes/core/permalink-manager-pro-functions.php:180
374
  msgid "Korean"
375
  msgstr ""
376
 
377
- #: includes/core/permalink-manager-pro-functions.php:181
378
  msgid "Norwegian"
379
  msgstr ""
380
 
381
- #: includes/core/permalink-manager-pro-functions.php:182
382
  msgid "Persian"
383
  msgstr ""
384
 
385
- #: includes/core/permalink-manager-pro-functions.php:183
386
  msgid "Polish"
387
  msgstr ""
388
 
389
- #: includes/core/permalink-manager-pro-functions.php:184
390
  msgid "Portuguese"
391
  msgstr ""
392
 
393
- #: includes/core/permalink-manager-pro-functions.php:185
394
  msgid "Russian"
395
  msgstr ""
396
 
397
- #: includes/core/permalink-manager-pro-functions.php:186
398
  msgid "Spanish"
399
  msgstr ""
400
 
401
- #: includes/core/permalink-manager-pro-functions.php:187
402
  msgid "Swedish"
403
  msgstr ""
404
 
405
- #: includes/core/permalink-manager-pro-functions.php:188
406
  msgid "Turkish"
407
  msgstr ""
408
 
409
- #: includes/core/permalink-manager-pro-functions.php:470
410
  msgid "Coupon Link"
411
  msgstr ""
412
 
413
- #: includes/core/permalink-manager-pro-functions.php:491
414
  msgid "Coupon URI"
415
  msgstr ""
416
 
417
- #: includes/core/permalink-manager-pro-functions.php:492
418
  msgid ""
419
  "The URIs are case-insensitive, eg. <strong>BLACKFRIDAY</strong> and <strong>"
420
  "blackfriday</strong> are equivalent."
421
  msgstr ""
422
 
423
- #: includes/core/permalink-manager-pro-functions.php:503
424
  msgid "Coupon Full URL"
425
  msgstr ""
426
 
427
- #: includes/core/permalink-manager-actions.php:97
428
  msgid "The settings are saved!"
429
  msgstr ""
430
 
431
- #: includes/core/permalink-manager-actions.php:361
432
  #, php-format
433
  msgid "%d Custom URIs and %d Custom Redirects were removed!"
434
  msgstr ""
435
 
436
- #: includes/core/permalink-manager-actions.php:363
437
  msgid "No Custom URIs or Custom Redirects were removed!"
438
  msgstr ""
439
 
440
- #: includes/core/permalink-manager-actions.php:375
441
  msgid "You are not allowed to remove Permalink Manager data!"
442
  msgstr ""
443
 
444
- #: includes/core/permalink-manager-actions.php:381
445
  msgid "Custom permalinks"
446
  msgstr ""
447
 
448
- #: includes/core/permalink-manager-actions.php:385
449
  msgid "Custom redirects"
450
  msgstr ""
451
 
452
- #: includes/core/permalink-manager-actions.php:389
453
  msgid "External redirects"
454
  msgstr ""
455
 
456
- #: includes/core/permalink-manager-actions.php:408
457
  #, php-format
458
  msgid "%s were removed!"
459
  msgstr ""
460
 
461
- #: includes/core/permalink-manager-actions.php:549
462
  #, php-format
463
  msgid "URI \"%s\" was removed successfully!"
464
  msgstr ""
465
 
466
- #: includes/core/permalink-manager-actions.php:558
467
  msgid "Broken redirects were removed successfully!"
468
  msgstr ""
469
 
470
- #: includes/core/permalink-manager-actions.php:563
471
  msgid "URI and/or custom redirects does not exist or were already removed!"
472
  msgstr ""
473
 
474
- #: includes/core/permalink-manager-actions.php:577
475
  msgid "The redirect was removed successfully!"
476
  msgstr ""
477
 
478
- #: includes/core/permalink-manager-actions.php:612
 
 
 
 
479
  msgid "Sitemaps were updated!"
480
  msgstr ""
481
 
@@ -630,7 +630,7 @@ msgid "\"Stop words\" list"
630
  msgstr ""
631
 
632
  #: includes/views/permalink-manager-pro-addons.php:181
633
- msgid "The words should be comma-separated."
634
  msgstr ""
635
 
636
  #: includes/views/permalink-manager-pro-addons.php:190
@@ -854,202 +854,212 @@ msgid ""
854
  msgstr ""
855
 
856
  #: includes/views/permalink-manager-settings.php:71
857
- msgid "Redirect old permalinks"
858
  msgstr ""
859
 
860
- #: includes/views/permalink-manager-settings.php:75
 
 
 
 
 
 
 
 
 
 
861
  msgid ""
862
  "If enabled, the redirects will be automatially created for old custom "
863
- "permalinks, after posts or terms URLs are changed."
864
  msgstr ""
865
 
866
- #: includes/views/permalink-manager-settings.php:79
867
  msgid "Redirect mode"
868
  msgstr ""
869
 
870
- #: includes/views/permalink-manager-settings.php:81
871
  msgid "Disable"
872
  msgstr ""
873
 
874
- #: includes/views/permalink-manager-settings.php:81
875
  msgid "Enable \"301 redirect\""
876
  msgstr ""
877
 
878
- #: includes/views/permalink-manager-settings.php:81
879
  msgid "Enable \"302 redirect\""
880
  msgstr ""
881
 
882
- #: includes/views/permalink-manager-settings.php:82
883
  msgid ""
884
- "If enabled - the visitors will be redirected from native permalinks to your "
885
  "custom permalinks."
886
  msgstr ""
887
 
888
- #: includes/views/permalink-manager-settings.php:86
889
  msgid "Trailing slashes"
890
  msgstr ""
891
 
892
- #: includes/views/permalink-manager-settings.php:88
893
  msgid "Use default settings"
894
  msgstr ""
895
 
896
- #: includes/views/permalink-manager-settings.php:88
897
  msgid "Add trailing slashes"
898
  msgstr ""
899
 
900
- #: includes/views/permalink-manager-settings.php:88
901
  msgid "Add trailing slashes (+ auto-redirect links without them)"
902
  msgstr ""
903
 
904
- #: includes/views/permalink-manager-settings.php:88
905
  msgid "Remove trailing slashes"
906
  msgstr ""
907
 
908
- #: includes/views/permalink-manager-settings.php:88
909
  msgid "Remove trailing slashes (+ auto-redirect links with them)"
910
  msgstr ""
911
 
912
- #: includes/views/permalink-manager-settings.php:89
913
  msgid ""
914
  "This option can be used to alter the native settings and control if trailing "
915
  "slash should be added or removed from the end of posts & terms permalinks."
916
  msgstr ""
917
 
918
- #: includes/views/permalink-manager-settings.php:93
919
  msgid "Force HTTPS/WWW in URLs"
920
  msgstr ""
921
 
922
- #: includes/views/permalink-manager-settings.php:95
923
  msgid ""
924
  "<strong>Please disable it, if you encounter any redirect loop issues."
925
  "</strong>"
926
  msgstr ""
927
 
928
- #: includes/views/permalink-manager-settings.php:100
929
  msgid "Third party plugins"
930
  msgstr ""
931
 
932
- #: includes/views/permalink-manager-settings.php:106
933
  msgid "Fix WPML/Polylang language mismatch"
934
  msgstr ""
935
 
936
- #: includes/views/permalink-manager-settings.php:108
937
  msgid ""
938
  "If enabled, the plugin will load the adjacent translation of post when the "
939
  "custom permalink is detected, but the language code in the URL does not "
940
  "match the language code assigned to the post/term."
941
  msgstr ""
942
 
943
- #: includes/views/permalink-manager-settings.php:112
944
  msgid "Disable support for WP All Import"
945
  msgstr ""
946
 
947
- #: includes/views/permalink-manager-settings.php:114
948
  msgid ""
949
  "If checked, the custom URIs will not be assigned to the posts imported by Wp "
950
  "All Import Pro plugin."
951
  msgstr ""
952
 
953
- #: includes/views/permalink-manager-settings.php:118
954
  msgid "Filter breadcrumbs"
955
  msgstr ""
956
 
957
- #: includes/views/permalink-manager-settings.php:120
958
  msgid ""
959
  "If checked, the HTML breadcrumbs will be filtered by Permalink Manager to "
960
  "mimic the current URL structure.<br />Works with: Yoast SEO, RankMath and "
961
  "SEOPress breadcrumbs."
962
  msgstr ""
963
 
964
- #: includes/views/permalink-manager-settings.php:124
965
  msgid "Exclude content types"
966
  msgstr ""
967
 
968
- #: includes/views/permalink-manager-settings.php:126
969
  msgid ""
970
  "Permalink Manager will ignore and not filter the custom permalinks of all "
971
  "selected above post types & taxonomies."
972
  msgstr ""
973
 
974
- #: includes/views/permalink-manager-settings.php:131
975
  msgid "Advanced settings"
976
  msgstr ""
977
 
978
- #: includes/views/permalink-manager-settings.php:137
979
  msgid "Show \"Native slug\" field"
980
  msgstr ""
981
 
982
- #: includes/views/permalink-manager-settings.php:139
983
  msgid ""
984
  "If enabled, it would be possible to edit the native slug via URI Editor on "
985
  "single post/term edit page."
986
  msgstr ""
987
 
988
- #: includes/views/permalink-manager-settings.php:143
989
  msgid "Force 404 on non-existing pagination pages"
990
  msgstr ""
991
 
992
- #: includes/views/permalink-manager-settings.php:145
993
  msgid ""
994
  "If enabled, the non-existing pagination pages (for single posts) will return "
995
  "404 (\"Not Found\") error.<br /><strong>Please disable it, if you encounter "
996
  "any problems with pagination pages or use custom pagination system.</strong>"
997
  msgstr ""
998
 
999
- #: includes/views/permalink-manager-settings.php:149
1000
  msgid "Strip special characters"
1001
  msgstr ""
1002
 
1003
- #: includes/views/permalink-manager-settings.php:151
1004
- #: includes/views/permalink-manager-settings.php:158
1005
  msgid "Yes, use native settings"
1006
  msgstr ""
1007
 
1008
- #: includes/views/permalink-manager-settings.php:151
1009
  msgid "No, keep special characters (.,|_+) in the slugs"
1010
  msgstr ""
1011
 
1012
- #: includes/views/permalink-manager-settings.php:152
1013
  msgid ""
1014
  "If enabled only alphanumeric characters, underscores and dashes will be "
1015
  "allowed for post/term slugs."
1016
  msgstr ""
1017
 
1018
- #: includes/views/permalink-manager-settings.php:156
1019
  msgid "Convert accented letters"
1020
  msgstr ""
1021
 
1022
- #: includes/views/permalink-manager-settings.php:158
1023
  msgid "No, keep accented letters in the slugs"
1024
  msgstr ""
1025
 
1026
- #: includes/views/permalink-manager-settings.php:159
1027
  msgid ""
1028
  "If enabled, all the accented letters will be replaced with their non-"
1029
  "accented equivalent (eg. Å => A, Æ => AE, Ø => O, Ć => C)."
1030
  msgstr ""
1031
 
1032
- #: includes/views/permalink-manager-settings.php:163
1033
  msgid "URI Editor role capability"
1034
  msgstr ""
1035
 
1036
- #: includes/views/permalink-manager-settings.php:164
1037
  msgid "Administrator (edit_theme_options)"
1038
  msgstr ""
1039
 
1040
- #: includes/views/permalink-manager-settings.php:164
1041
  msgid "Editor (publish_pages)"
1042
  msgstr ""
1043
 
1044
- #: includes/views/permalink-manager-settings.php:164
1045
  msgid "Author (publish_posts)"
1046
  msgstr ""
1047
 
1048
- #: includes/views/permalink-manager-settings.php:164
1049
  msgid "Contributor (edit_posts)"
1050
  msgstr ""
1051
 
1052
- #: includes/views/permalink-manager-settings.php:165
1053
  #, php-format
1054
  msgid ""
1055
  "Only the users who have selected capability will be able to access URI "
@@ -1057,7 +1067,7 @@ msgid ""
1057
  "be found here</a>."
1058
  msgstr ""
1059
 
1060
- #: includes/views/permalink-manager-settings.php:171
1061
  msgid "Save settings"
1062
  msgstr ""
1063
 
3
  msgstr ""
4
  "Project-Id-Version: PACKAGE VERSION\n"
5
  "Report-Msgid-Bugs-To: \n"
6
+ "POT-Creation-Date: 2020-02-26 17:23+0000\n"
7
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
8
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
9
  "Language-Team: \n"
14
  "Content-Transfer-Encoding: 8bit\n"
15
  "X-Generator: Loco https://localise.biz/"
16
 
17
+ #: permalink-manager.php:205
18
  #, php-format
19
  msgid ""
20
  "Get access to extra features: full taxonomy and WooCommerce support, "
23
  "and save %s using \"%s\" coupon code!</strong> Valid until %s!"
24
  msgstr ""
25
 
26
+ #: includes/core/permalink-manager-third-parties.php:619
27
  msgid "\"Custom Permalinks\" URIs were imported!"
28
  msgstr ""
29
 
30
+ #: includes/core/permalink-manager-third-parties.php:622
31
  msgid "No \"Custom Permalinks\" URIs were imported!"
32
  msgstr ""
33
 
34
  #. Name of the plugin
35
+ #: includes/core/permalink-manager-third-parties.php:894
36
  #: includes/core/permalink-manager-gutenberg.php:14
37
+ #: includes/core/permalink-manager-admin-functions.php:110
38
+ #: includes/core/permalink-manager-admin-functions.php:110
39
+ #: includes/core/permalink-manager-admin-functions.php:715
40
+ #: includes/core/permalink-manager-admin-functions.php:796
41
+ #: includes/core/permalink-manager-admin-functions.php:801
42
+ #: includes/core/permalink-manager-admin-functions.php:802
43
  msgid "Permalink Manager"
44
  msgstr ""
45
 
46
+ #: includes/core/permalink-manager-third-parties.php:898
47
+ #: includes/core/permalink-manager-uri-functions-tax.php:474
48
  #: includes/views/permalink-manager-tools.php:70
49
  msgid "Custom URI"
50
  msgstr ""
51
 
52
+ #: includes/core/permalink-manager-third-parties.php:899
53
  #, php-format
54
  msgid ""
55
  "If empty, a default permalink based on your current <a href=\"%s\" "
56
  "target=\"_blank\">permastructure settings</a> will be used."
57
  msgstr ""
58
 
59
+ #: includes/core/permalink-manager-uri-functions-tax.php:475
60
  msgid "Clear/leave the field empty to use the default permalink."
61
  msgstr ""
62
 
63
+ #: includes/core/permalink-manager-uri-functions-tax.php:507
64
+ #: includes/core/permalink-manager-admin-functions.php:719
65
+ #: includes/core/permalink-manager-admin-functions.php:819
66
+ #: includes/core/permalink-manager-uri-functions-post.php:661
67
  msgid "Current URI"
68
  msgstr ""
69
 
70
+ #: includes/core/permalink-manager-admin-functions.php:134
71
  msgid "Are you sure? This action cannot be undone!"
72
  msgstr ""
73
 
74
+ #: includes/core/permalink-manager-admin-functions.php:155
75
  msgid "URI Editor"
76
  msgstr ""
77
 
78
+ #: includes/core/permalink-manager-admin-functions.php:156
79
  #: includes/views/permalink-manager-settings.php:14
80
  msgid "Settings"
81
  msgstr ""
82
 
83
+ #: includes/core/permalink-manager-admin-functions.php:168
84
  msgid "Documentation"
85
  msgstr ""
86
 
87
+ #: includes/core/permalink-manager-admin-functions.php:172
88
  msgid "Buy Permalink Manager Pro"
89
  msgstr ""
90
 
91
+ #: includes/core/permalink-manager-admin-functions.php:259
92
  msgid "Select all"
93
  msgstr ""
94
 
95
+ #: includes/core/permalink-manager-admin-functions.php:260
96
  msgid "Unselect all"
97
  msgstr ""
98
 
99
+ #: includes/core/permalink-manager-admin-functions.php:375
100
  msgid "Permastructure translations"
101
  msgstr ""
102
 
103
+ #: includes/core/permalink-manager-admin-functions.php:376
104
  msgid ""
105
  "If you would like to translate the permastructures and set-up different "
106
  "permalink structure per language, please fill in the fields below. Otherwise "
108
  "applied."
109
  msgstr ""
110
 
111
+ #: includes/core/permalink-manager-admin-functions.php:393
112
  msgid "Default permastructure"
113
  msgstr ""
114
 
115
+ #: includes/core/permalink-manager-admin-functions.php:394
116
  msgid "Restore default permastructure"
117
  msgstr ""
118
 
119
+ #: includes/core/permalink-manager-admin-functions.php:400
120
+ #: includes/core/permalink-manager-actions.php:399
121
+ #: includes/core/permalink-manager-actions.php:403
122
  msgid "Permastructure settings"
123
  msgstr ""
124
 
125
+ #: includes/core/permalink-manager-admin-functions.php:401
126
  msgid "Do not automatically append the slug"
127
  msgstr ""
128
 
129
+ #: includes/core/permalink-manager-admin-functions.php:409
130
  msgid "Show additional settings"
131
  msgstr ""
132
 
133
+ #: includes/core/permalink-manager-admin-functions.php:555
134
  msgid "Donate"
135
  msgstr ""
136
 
137
+ #: includes/core/permalink-manager-admin-functions.php:556
138
  msgid "by Maciej Bis"
139
  msgstr ""
140
 
141
+ #: includes/core/permalink-manager-admin-functions.php:568
142
  msgid "Upgrade to PRO"
143
  msgstr ""
144
 
145
+ #: includes/core/permalink-manager-admin-functions.php:635
146
+ #: includes/core/permalink-manager-admin-functions.php:662
147
  msgid "Title"
148
  msgstr ""
149
 
150
+ #: includes/core/permalink-manager-admin-functions.php:637
151
+ #: includes/core/permalink-manager-admin-functions.php:664
152
  msgid "Old Slug"
153
  msgstr ""
154
 
155
+ #: includes/core/permalink-manager-admin-functions.php:638
156
+ #: includes/core/permalink-manager-admin-functions.php:665
157
  msgid "New Slug"
158
  msgstr ""
159
 
160
+ #: includes/core/permalink-manager-admin-functions.php:640
161
+ #: includes/core/permalink-manager-admin-functions.php:667
162
  msgid "Old URI"
163
  msgstr ""
164
 
165
+ #: includes/core/permalink-manager-admin-functions.php:641
166
+ #: includes/core/permalink-manager-admin-functions.php:668
167
  msgid "New URI"
168
  msgstr ""
169
 
170
+ #: includes/core/permalink-manager-admin-functions.php:662
171
  msgid "Show more details"
172
  msgstr ""
173
 
174
+ #: includes/core/permalink-manager-admin-functions.php:675
175
  msgid "List of updated items"
176
  msgstr ""
177
 
178
+ #: includes/core/permalink-manager-admin-functions.php:688
179
  #, php-format
180
  msgid "<strong class=\"updated_count\">%d</strong> slug was updated!"
181
  msgid_plural "<strong class=\"updated_count\">%d</strong> slugs were updated!"
182
  msgstr[0] ""
183
  msgstr[1] ""
184
 
185
+ #: includes/core/permalink-manager-admin-functions.php:689
186
  #, php-format
187
  msgid "<a %s>Click here</a> to go to the list of updated slugs"
188
  msgstr ""
189
 
190
+ #: includes/core/permalink-manager-admin-functions.php:693
191
+ #: includes/core/permalink-manager-actions.php:115
192
  msgid "<strong>No slugs</strong> were updated!"
193
  msgstr ""
194
 
195
+ #: includes/core/permalink-manager-admin-functions.php:782
196
+ #: includes/core/permalink-manager-admin-functions.php:785
197
  msgid "Yes"
198
  msgstr ""
199
 
200
+ #: includes/core/permalink-manager-admin-functions.php:782
201
+ #: includes/core/permalink-manager-admin-functions.php:786
202
  msgid "No"
203
  msgstr ""
204
 
205
+ #: includes/core/permalink-manager-admin-functions.php:784
206
  #, php-format
207
  msgid "Use global settings [%s]"
208
  msgstr ""
209
 
210
+ #: includes/core/permalink-manager-admin-functions.php:787
211
  msgid "No (ignore this URI in bulk tools)"
212
  msgstr ""
213
 
214
+ #: includes/core/permalink-manager-admin-functions.php:801
215
  msgid "Close: "
216
  msgstr ""
217
 
218
+ #: includes/core/permalink-manager-admin-functions.php:813
219
  msgid "The custom URI cannot be edited on frontpage."
220
  msgstr ""
221
 
222
+ #: includes/core/permalink-manager-admin-functions.php:820
223
  msgid ""
224
  "If custom URI is not defined, a default URI will be set (see below). The "
225
  "custom URI can be edited only if 'Auto-update the URI' feature is not "
226
  "enabled."
227
  msgstr ""
228
 
229
+ #: includes/core/permalink-manager-admin-functions.php:829
230
  msgid "Native slug"
231
  msgstr ""
232
 
233
+ #: includes/core/permalink-manager-admin-functions.php:830
234
  msgid ""
235
  "The native slug is by default automatically used in native permalinks (when "
236
  "Permalink Manager is disabled)."
237
  msgstr ""
238
 
239
+ #: includes/core/permalink-manager-admin-functions.php:840
240
  msgid "Auto-update the URI"
241
  msgstr ""
242
 
243
+ #: includes/core/permalink-manager-admin-functions.php:841
244
  msgid ""
245
  "If enabled, the 'Current URI' field will be automatically changed to "
246
  "'Default URI' (displayed below) after the post is saved or updated."
247
  msgstr ""
248
 
249
+ #: includes/core/permalink-manager-admin-functions.php:849
250
  msgid "Default URI"
251
  msgstr ""
252
 
253
+ #: includes/core/permalink-manager-admin-functions.php:850
254
  msgid "Restore Default URI"
255
  msgstr ""
256
 
257
+ #: includes/core/permalink-manager-admin-functions.php:860
258
  msgid "Automatic redirect for native URI enabled:"
259
  msgstr ""
260
 
261
+ #: includes/core/permalink-manager-admin-functions.php:871
262
  #, php-format
263
  msgid ""
264
  "<span><strong>Need more functionalities and dedicated support?</strong> Buy "
266
  "permalink-manager-pro/\">PMLITE coupon code</a> to get 10% off.</a></span>"
267
  msgstr ""
268
 
269
+ #: includes/core/permalink-manager-admin-functions.php:882
270
  msgid "Save permalink"
271
  msgstr ""
272
 
273
+ #: includes/core/permalink-manager-admin-functions.php:909
274
  msgid "Manage redirects"
275
  msgstr ""
276
 
277
+ #: includes/core/permalink-manager-admin-functions.php:1027
 
 
 
 
278
  #, php-format
279
  msgid ""
280
  "This functionality is available only in <a href=\"%s\" target=\"_blank\">"
281
  "Permalink Manager Pro</a>."
282
  msgstr ""
283
 
284
+ #: includes/core/permalink-manager-pro-functions.php:123
285
+ #: includes/core/permalink-manager-pro-functions.php:149
286
  #, php-format
287
  msgid ""
288
  "Please paste the licence key to access all Permalink Manager Pro updates & "
289
  "features <a href=\"%s\" target=\"_blank\">on this page</a>."
290
  msgstr ""
291
 
292
+ #: includes/core/permalink-manager-pro-functions.php:128
293
  msgid ""
294
  "Expiration date could not be downloaded at this moment. Please try again in "
295
  "a few minutes."
296
  msgstr ""
297
 
298
+ #: includes/core/permalink-manager-pro-functions.php:133
299
  msgid "Your Permalink Manager Pro licence key is invalid!"
300
  msgstr ""
301
 
302
+ #: includes/core/permalink-manager-pro-functions.php:138
303
  #, php-format
304
  msgid ""
305
  "Your Permalink Manager Pro licence key expired! To restore access to plugin "
307
  "this page</a>."
308
  msgstr ""
309
 
310
+ #: includes/core/permalink-manager-pro-functions.php:143
311
  msgid "You own a lifetime licence key."
312
  msgstr ""
313
 
314
+ #: includes/core/permalink-manager-pro-functions.php:146
315
  #, php-format
316
  msgid ""
317
  "Your licence key is valid until %s.<br />To prolong it please go to <a "
318
  "href=\"%s\" target=\"_blank\">this page</a> for more information."
319
  msgstr ""
320
 
321
+ #: includes/core/permalink-manager-pro-functions.php:171
322
  msgid "Arabic"
323
  msgstr ""
324
 
325
+ #: includes/core/permalink-manager-pro-functions.php:172
326
  msgid "Chinese"
327
  msgstr ""
328
 
329
+ #: includes/core/permalink-manager-pro-functions.php:173
330
  msgid "Danish"
331
  msgstr ""
332
 
333
+ #: includes/core/permalink-manager-pro-functions.php:174
334
  msgid "Dutch"
335
  msgstr ""
336
 
337
+ #: includes/core/permalink-manager-pro-functions.php:175
338
  msgid "English"
339
  msgstr ""
340
 
341
+ #: includes/core/permalink-manager-pro-functions.php:176
342
  msgid "Finnish"
343
  msgstr ""
344
 
345
+ #: includes/core/permalink-manager-pro-functions.php:177
346
  msgid "French"
347
  msgstr ""
348
 
349
+ #: includes/core/permalink-manager-pro-functions.php:178
350
  msgid "German"
351
  msgstr ""
352
 
353
+ #: includes/core/permalink-manager-pro-functions.php:179
354
  msgid "Hebrew"
355
  msgstr ""
356
 
357
+ #: includes/core/permalink-manager-pro-functions.php:180
358
  msgid "Hindi"
359
  msgstr ""
360
 
361
+ #: includes/core/permalink-manager-pro-functions.php:181
362
  msgid "Italian"
363
  msgstr ""
364
 
365
+ #: includes/core/permalink-manager-pro-functions.php:182
366
  msgid "Japanese"
367
  msgstr ""
368
 
369
+ #: includes/core/permalink-manager-pro-functions.php:183
370
  msgid "Korean"
371
  msgstr ""
372
 
373
+ #: includes/core/permalink-manager-pro-functions.php:184
374
  msgid "Norwegian"
375
  msgstr ""
376
 
377
+ #: includes/core/permalink-manager-pro-functions.php:185
378
  msgid "Persian"
379
  msgstr ""
380
 
381
+ #: includes/core/permalink-manager-pro-functions.php:186
382
  msgid "Polish"
383
  msgstr ""
384
 
385
+ #: includes/core/permalink-manager-pro-functions.php:187
386
  msgid "Portuguese"
387
  msgstr ""
388
 
389
+ #: includes/core/permalink-manager-pro-functions.php:188
390
  msgid "Russian"
391
  msgstr ""
392
 
393
+ #: includes/core/permalink-manager-pro-functions.php:189
394
  msgid "Spanish"
395
  msgstr ""
396
 
397
+ #: includes/core/permalink-manager-pro-functions.php:190
398
  msgid "Swedish"
399
  msgstr ""
400
 
401
+ #: includes/core/permalink-manager-pro-functions.php:191
402
  msgid "Turkish"
403
  msgstr ""
404
 
405
+ #: includes/core/permalink-manager-pro-functions.php:473
406
  msgid "Coupon Link"
407
  msgstr ""
408
 
409
+ #: includes/core/permalink-manager-pro-functions.php:494
410
  msgid "Coupon URI"
411
  msgstr ""
412
 
413
+ #: includes/core/permalink-manager-pro-functions.php:495
414
  msgid ""
415
  "The URIs are case-insensitive, eg. <strong>BLACKFRIDAY</strong> and <strong>"
416
  "blackfriday</strong> are equivalent."
417
  msgstr ""
418
 
419
+ #: includes/core/permalink-manager-pro-functions.php:506
420
  msgid "Coupon Full URL"
421
  msgstr ""
422
 
423
+ #: includes/core/permalink-manager-actions.php:105
424
  msgid "The settings are saved!"
425
  msgstr ""
426
 
427
+ #: includes/core/permalink-manager-actions.php:367
428
  #, php-format
429
  msgid "%d Custom URIs and %d Custom Redirects were removed!"
430
  msgstr ""
431
 
432
+ #: includes/core/permalink-manager-actions.php:369
433
  msgid "No Custom URIs or Custom Redirects were removed!"
434
  msgstr ""
435
 
436
+ #: includes/core/permalink-manager-actions.php:381
437
  msgid "You are not allowed to remove Permalink Manager data!"
438
  msgstr ""
439
 
440
+ #: includes/core/permalink-manager-actions.php:387
441
  msgid "Custom permalinks"
442
  msgstr ""
443
 
444
+ #: includes/core/permalink-manager-actions.php:391
445
  msgid "Custom redirects"
446
  msgstr ""
447
 
448
+ #: includes/core/permalink-manager-actions.php:395
449
  msgid "External redirects"
450
  msgstr ""
451
 
452
+ #: includes/core/permalink-manager-actions.php:414
453
  #, php-format
454
  msgid "%s were removed!"
455
  msgstr ""
456
 
457
+ #: includes/core/permalink-manager-actions.php:555
458
  #, php-format
459
  msgid "URI \"%s\" was removed successfully!"
460
  msgstr ""
461
 
462
+ #: includes/core/permalink-manager-actions.php:563
463
  msgid "Broken redirects were removed successfully!"
464
  msgstr ""
465
 
466
+ #: includes/core/permalink-manager-actions.php:567
467
  msgid "URI and/or custom redirects does not exist or were already removed!"
468
  msgstr ""
469
 
470
+ #: includes/core/permalink-manager-actions.php:587
471
  msgid "The redirect was removed successfully!"
472
  msgstr ""
473
 
474
+ #: includes/core/permalink-manager-actions.php:617
475
+ msgid "URI is already in use, please select another one!"
476
+ msgstr ""
477
+
478
+ #: includes/core/permalink-manager-actions.php:649
479
  msgid "Sitemaps were updated!"
480
  msgstr ""
481
 
630
  msgstr ""
631
 
632
  #: includes/views/permalink-manager-pro-addons.php:181
633
+ msgid "Type comma to separate the words."
634
  msgstr ""
635
 
636
  #: includes/views/permalink-manager-pro-addons.php:190
854
  msgstr ""
855
 
856
  #: includes/views/permalink-manager-settings.php:71
857
+ msgid "Old slug redirect"
858
  msgstr ""
859
 
860
+ #: includes/views/permalink-manager-settings.php:73
861
+ msgid ""
862
+ "If enabled, the visitors will be automatically redirected to canonical "
863
+ "permalink if old post's slug was detected."
864
+ msgstr ""
865
+
866
+ #: includes/views/permalink-manager-settings.php:77
867
+ msgid "Old custom permalinks redirect"
868
+ msgstr ""
869
+
870
+ #: includes/views/permalink-manager-settings.php:81
871
  msgid ""
872
  "If enabled, the redirects will be automatially created for old custom "
873
+ "permalinks, after posts/terms URLs are changed."
874
  msgstr ""
875
 
876
+ #: includes/views/permalink-manager-settings.php:85
877
  msgid "Redirect mode"
878
  msgstr ""
879
 
880
+ #: includes/views/permalink-manager-settings.php:87
881
  msgid "Disable"
882
  msgstr ""
883
 
884
+ #: includes/views/permalink-manager-settings.php:87
885
  msgid "Enable \"301 redirect\""
886
  msgstr ""
887
 
888
+ #: includes/views/permalink-manager-settings.php:87
889
  msgid "Enable \"302 redirect\""
890
  msgstr ""
891
 
892
+ #: includes/views/permalink-manager-settings.php:88
893
  msgid ""
894
+ "If enabled, the visitors will be redirected from native permalinks to your "
895
  "custom permalinks."
896
  msgstr ""
897
 
898
+ #: includes/views/permalink-manager-settings.php:92
899
  msgid "Trailing slashes"
900
  msgstr ""
901
 
902
+ #: includes/views/permalink-manager-settings.php:94
903
  msgid "Use default settings"
904
  msgstr ""
905
 
906
+ #: includes/views/permalink-manager-settings.php:94
907
  msgid "Add trailing slashes"
908
  msgstr ""
909
 
910
+ #: includes/views/permalink-manager-settings.php:94
911
  msgid "Add trailing slashes (+ auto-redirect links without them)"
912
  msgstr ""
913
 
914
+ #: includes/views/permalink-manager-settings.php:94
915
  msgid "Remove trailing slashes"
916
  msgstr ""
917
 
918
+ #: includes/views/permalink-manager-settings.php:94
919
  msgid "Remove trailing slashes (+ auto-redirect links with them)"
920
  msgstr ""
921
 
922
+ #: includes/views/permalink-manager-settings.php:95
923
  msgid ""
924
  "This option can be used to alter the native settings and control if trailing "
925
  "slash should be added or removed from the end of posts & terms permalinks."
926
  msgstr ""
927
 
928
+ #: includes/views/permalink-manager-settings.php:99
929
  msgid "Force HTTPS/WWW in URLs"
930
  msgstr ""
931
 
932
+ #: includes/views/permalink-manager-settings.php:101
933
  msgid ""
934
  "<strong>Please disable it, if you encounter any redirect loop issues."
935
  "</strong>"
936
  msgstr ""
937
 
938
+ #: includes/views/permalink-manager-settings.php:106
939
  msgid "Third party plugins"
940
  msgstr ""
941
 
942
+ #: includes/views/permalink-manager-settings.php:112
943
  msgid "Fix WPML/Polylang language mismatch"
944
  msgstr ""
945
 
946
+ #: includes/views/permalink-manager-settings.php:114
947
  msgid ""
948
  "If enabled, the plugin will load the adjacent translation of post when the "
949
  "custom permalink is detected, but the language code in the URL does not "
950
  "match the language code assigned to the post/term."
951
  msgstr ""
952
 
953
+ #: includes/views/permalink-manager-settings.php:118
954
  msgid "Disable support for WP All Import"
955
  msgstr ""
956
 
957
+ #: includes/views/permalink-manager-settings.php:120
958
  msgid ""
959
  "If checked, the custom URIs will not be assigned to the posts imported by Wp "
960
  "All Import Pro plugin."
961
  msgstr ""
962
 
963
+ #: includes/views/permalink-manager-settings.php:124
964
  msgid "Filter breadcrumbs"
965
  msgstr ""
966
 
967
+ #: includes/views/permalink-manager-settings.php:126
968
  msgid ""
969
  "If checked, the HTML breadcrumbs will be filtered by Permalink Manager to "
970
  "mimic the current URL structure.<br />Works with: Yoast SEO, RankMath and "
971
  "SEOPress breadcrumbs."
972
  msgstr ""
973
 
974
+ #: includes/views/permalink-manager-settings.php:130
975
  msgid "Exclude content types"
976
  msgstr ""
977
 
978
+ #: includes/views/permalink-manager-settings.php:132
979
  msgid ""
980
  "Permalink Manager will ignore and not filter the custom permalinks of all "
981
  "selected above post types & taxonomies."
982
  msgstr ""
983
 
984
+ #: includes/views/permalink-manager-settings.php:137
985
  msgid "Advanced settings"
986
  msgstr ""
987
 
988
+ #: includes/views/permalink-manager-settings.php:143
989
  msgid "Show \"Native slug\" field"
990
  msgstr ""
991
 
992
+ #: includes/views/permalink-manager-settings.php:145
993
  msgid ""
994
  "If enabled, it would be possible to edit the native slug via URI Editor on "
995
  "single post/term edit page."
996
  msgstr ""
997
 
998
+ #: includes/views/permalink-manager-settings.php:149
999
  msgid "Force 404 on non-existing pagination pages"
1000
  msgstr ""
1001
 
1002
+ #: includes/views/permalink-manager-settings.php:151
1003
  msgid ""
1004
  "If enabled, the non-existing pagination pages (for single posts) will return "
1005
  "404 (\"Not Found\") error.<br /><strong>Please disable it, if you encounter "
1006
  "any problems with pagination pages or use custom pagination system.</strong>"
1007
  msgstr ""
1008
 
1009
+ #: includes/views/permalink-manager-settings.php:155
1010
  msgid "Strip special characters"
1011
  msgstr ""
1012
 
1013
+ #: includes/views/permalink-manager-settings.php:157
1014
+ #: includes/views/permalink-manager-settings.php:164
1015
  msgid "Yes, use native settings"
1016
  msgstr ""
1017
 
1018
+ #: includes/views/permalink-manager-settings.php:157
1019
  msgid "No, keep special characters (.,|_+) in the slugs"
1020
  msgstr ""
1021
 
1022
+ #: includes/views/permalink-manager-settings.php:158
1023
  msgid ""
1024
  "If enabled only alphanumeric characters, underscores and dashes will be "
1025
  "allowed for post/term slugs."
1026
  msgstr ""
1027
 
1028
+ #: includes/views/permalink-manager-settings.php:162
1029
  msgid "Convert accented letters"
1030
  msgstr ""
1031
 
1032
+ #: includes/views/permalink-manager-settings.php:164
1033
  msgid "No, keep accented letters in the slugs"
1034
  msgstr ""
1035
 
1036
+ #: includes/views/permalink-manager-settings.php:165
1037
  msgid ""
1038
  "If enabled, all the accented letters will be replaced with their non-"
1039
  "accented equivalent (eg. Å => A, Æ => AE, Ø => O, Ć => C)."
1040
  msgstr ""
1041
 
1042
+ #: includes/views/permalink-manager-settings.php:169
1043
  msgid "URI Editor role capability"
1044
  msgstr ""
1045
 
1046
+ #: includes/views/permalink-manager-settings.php:170
1047
  msgid "Administrator (edit_theme_options)"
1048
  msgstr ""
1049
 
1050
+ #: includes/views/permalink-manager-settings.php:170
1051
  msgid "Editor (publish_pages)"
1052
  msgstr ""
1053
 
1054
+ #: includes/views/permalink-manager-settings.php:170
1055
  msgid "Author (publish_posts)"
1056
  msgstr ""
1057
 
1058
+ #: includes/views/permalink-manager-settings.php:170
1059
  msgid "Contributor (edit_posts)"
1060
  msgstr ""
1061
 
1062
+ #: includes/views/permalink-manager-settings.php:171
1063
  #, php-format
1064
  msgid ""
1065
  "Only the users who have selected capability will be able to access URI "
1067
  "be found here</a>."
1068
  msgstr ""
1069
 
1070
+ #: includes/views/permalink-manager-settings.php:177
1071
  msgid "Save settings"
1072
  msgstr ""
1073
 
out/permalink-manager-admin.css CHANGED
@@ -77,6 +77,11 @@
77
 
78
  #permalink-manager .updated-slugs-table .row-title{max-width:400px}
79
 
 
 
 
 
 
80
  /**
81
  * Columns
82
  */
77
 
78
  #permalink-manager .updated-slugs-table .row-title{max-width:400px}
79
 
80
+ /**
81
+ * Plugins admin page
82
+ */
83
+ .plugin_license_info_row{transform:translate(0,-1px)}
84
+
85
  /**
86
  * Columns
87
  */
out/permalink-manager-admin.js CHANGED
@@ -501,7 +501,8 @@ jQuery(document).ready(function() {
501
  if(jQuery(stop_words_input).length > 0) {
502
  var stop_words = new TIB(document.querySelector(stop_words_input), {
503
  alert: false,
504
- escape: null,
 
505
  classes: ['tags words-editor', 'tag', 'tags-input', 'tags-output', 'tags-view'],
506
  });
507
  jQuery('.tags-output').hide();
501
  if(jQuery(stop_words_input).length > 0) {
502
  var stop_words = new TIB(document.querySelector(stop_words_input), {
503
  alert: false,
504
+ //escape: null,
505
+ escape: [','],
506
  classes: ['tags words-editor', 'tag', 'tags-input', 'tags-output', 'tags-view'],
507
  });
508
  jQuery('.tags-output').hide();
permalink-manager.php CHANGED
@@ -4,7 +4,7 @@
4
  * Plugin Name: Permalink Manager Lite
5
  * Plugin URI: https://permalinkmanager.pro?utm_source=plugin
6
  * Description: Advanced plugin that allows to set-up custom permalinks (bulk editors included), slugs and permastructures (WooCommerce compatible).
7
- * Version: 2.2.7.6
8
  * Author: Maciej Bis
9
  * Author URI: http://maciejbis.net/
10
  * License: GPL-2.0+
@@ -12,7 +12,7 @@
12
  * Text Domain: permalink-manager
13
  * Domain Path: /languages
14
  * WC requires at least: 3.0.0
15
- * WC tested up to: 3.8.0
16
  */
17
 
18
  // If this file is called directly or plugin is already defined, abort.
@@ -20,322 +20,339 @@ if (!defined('WPINC')) {
20
  die;
21
  }
22
 
23
- // Define the directories used to load plugin files.
24
- define( 'PERMALINK_MANAGER_PLUGIN_NAME', 'Permalink Manager' );
25
- define( 'PERMALINK_MANAGER_PLUGIN_SLUG', 'permalink-manager' );
26
- define( 'PERMALINK_MANAGER_VERSION', '2.2.7.6' );
27
- define( 'PERMALINK_MANAGER_FILE', __FILE__ );
28
- define( 'PERMALINK_MANAGER_DIR', untrailingslashit(dirname(__FILE__)) );
29
- define( 'PERMALINK_MANAGER_BASENAME', plugin_basename(__FILE__));
30
- define( 'PERMALINK_MANAGER_URL', untrailingslashit( plugins_url('', __FILE__) ) );
31
- define( 'PERMALINK_MANAGER_WEBSITE', 'http://permalinkmanager.pro?utm_source=plugin' );
32
- define( 'PERMALINK_MANAGER_DONATE', 'https://www.paypal.me/Bismit' );
33
-
34
- class Permalink_Manager_Class {
35
-
36
- public $permalink_manager_options_page, $permalink_manager_options;
37
- public $sections, $functions, $permalink_manager_before_sections_html, $permalink_manager_after_sections_html;
38
-
39
- /**
40
- * Get options from DB, load subclasses & hooks
41
- */
42
- public function __construct() {
43
- $this->include_subclassess();
44
- $this->register_init_hooks();
45
- }
46
-
47
- /**
48
- * Include back-end classess and set their instances
49
- */
50
- function include_subclassess() {
51
- // WP_List_Table needed for post types & taxnomies editors
52
- if( ! class_exists( 'WP_List_Table' ) ) {
53
- require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' );
54
  }
55
 
56
- $classes = array(
57
- 'core' => array(
58
- 'helper-functions' => 'Permalink_Manager_Helper_Functions',
59
- 'uri-functions-post' => 'Permalink_Manager_URI_Functions_Post',
60
- 'uri-functions-tax' => 'Permalink_Manager_URI_Functions_Tax',
61
- 'admin-functions' => 'Permalink_Manager_Admin_Functions',
62
- 'actions' => 'Permalink_Manager_Actions',
63
- 'third-parties' => 'Permalink_Manager_Third_Parties',
64
- 'core-functions' => 'Permalink_Manager_Core_Functions',
65
- 'gutenberg' => 'Permalink_Manager_Gutenberg',
66
- 'debug' => 'Permalink_Manager_Debug_Functions',
67
- 'pro-functions' => 'Permalink_Manager_Pro_Functions'
68
- ),
69
- 'views' => array(
70
- 'uri-editor' => 'Permalink_Manager_Uri_Editor',
71
- 'tools' => 'Permalink_Manager_Tools',
72
- 'permastructs' => 'Permalink_Manager_Permastructs',
73
- 'settings' => 'Permalink_Manager_Settings',
74
- 'debug' => 'Permalink_Manager_Debug',
75
- 'pro-addons' => 'Permalink_Manager_Pro_Addons',
76
- 'help' => 'Permalink_Manager_Help',
77
- 'uri-editor-tax' => false,
78
- 'uri-editor-post' => false
79
- )
80
- );
81
-
82
- // Load classes and set-up their instances
83
- foreach($classes as $class_type => $classes_array) {
84
- foreach($classes_array as $class => $class_name) {
85
- $filename = PERMALINK_MANAGER_DIR . "/includes/{$class_type}/permalink-manager-{$class}.php";
86
-
87
- if(file_exists($filename)) {
88
- require_once $filename;
89
- if($class_name) { $this->functions[$class] = new $class_name(); }
 
 
 
 
 
 
 
 
 
 
90
  }
91
  }
92
  }
93
- }
94
-
95
- /**
96
- * Register general hooks
97
- */
98
- public function register_init_hooks() {
99
- // Localize plugin
100
- add_action( 'init', array($this, 'localize_me'), 1 );
101
 
102
- // Support deprecated hooks
103
- add_action( 'plugins_loaded', array($this, 'deprecated_hooks'), 9 );
 
 
 
 
104
 
105
- // Load globals & options
106
- add_action( 'plugins_loaded', array($this, 'get_options_and_globals'), 9 );
107
 
108
- // Legacy support
109
- add_action( 'init', array($this, 'legacy_support'), 2 );
110
 
111
- // Default settings & alerts
112
- add_filter( 'permalink_manager_options', array($this, 'default_settings'), 1 );
113
- add_filter( 'permalink_manager_alerts', array($this, 'default_alerts'), 1 );
114
- }
115
 
116
- /**
117
- * Localize this plugin
118
- */
119
- function localize_me() {
120
- load_plugin_textdomain( 'permalink-manager', false, basename(dirname(__FILE__)) . "/languages" );
121
- }
122
 
123
- /**
124
- * Get options values & set global
125
- */
126
- public function get_options_and_globals() {
127
- // 1. Globals with data stored in DB
128
- global $permalink_manager_options, $permalink_manager_uris, $permalink_manager_permastructs, $permalink_manager_redirects, $permalink_manager_external_redirects;
129
-
130
- $this->permalink_manager_options = $permalink_manager_options = apply_filters('permalink_manager_options', get_option('permalink-manager', array()));
131
- $this->permalink_manager_uris = $permalink_manager_uris = apply_filters('permalink_manager_uris', get_option('permalink-manager-uris', array()));
132
- $this->permalink_manager_permastructs = $permalink_manager_permastructs = apply_filters('permalink_manager_permastructs', get_option('permalink-manager-permastructs', array()));
133
- $this->permalink_manager_redirects = $permalink_manager_redirects = apply_filters('permalink_manager_redirects', get_option('permalink-manager-redirects', array()));
134
- $this->permalink_manager_external_redirects = $permalink_manager_external_redirects = apply_filters('permalink_manager_external_redirects', get_option('permalink-manager-external-redirects', array()));
135
-
136
- // 2. Globals used to display additional content (eg. alerts)
137
- global $permalink_manager_alerts, $permalink_manager_before_sections_html, $permalink_manager_after_sections_html;
138
-
139
- $this->permalink_manager_alerts = $permalink_manager_alerts = apply_filters('permalink_manager_alerts', get_option('permalink-manager-alerts', array()));
140
- $this->permalink_manager_before_sections_html = $permalink_manager_before_sections_html = apply_filters('permalink_manager_before_sections', '');
141
- $this->permalink_manager_after_sections_html = $permalink_manager_after_sections_html = apply_filters('permalink_manager_after_sections', '');
142
- }
143
 
144
- /**
145
- * Set the initial/default settings (including "Screen Options")
146
- */
147
- public function default_settings($settings) {
148
- $all_taxonomies = Permalink_Manager_Helper_Functions::get_taxonomies_array();
149
- $all_post_types = Permalink_Manager_Helper_Functions::get_post_types_array();
150
-
151
- $default_settings = apply_filters('permalink_manager_default_options', array(
152
- 'screen-options' => array(
153
- 'per_page' => 20,
154
- 'post_statuses' => array('publish'),
155
- 'group' => false,
156
- ),
157
- 'general' => array(
158
- 'auto_update_uris' => 0,
159
- 'show_native_slug_field' => 0,
160
- 'pagination_redirect' => 0,
161
- 'sslwww_redirect' => 0,
162
- 'canonical_redirect' => 1,
163
- 'setup_redirects' => 1,
164
- 'redirect' => '301',
165
- 'trailing_slashes' => 0,
166
- 'auto_remove_duplicates' => 1,
167
- 'fix_language_mismatch' => 1,
168
- 'pmxi_import_support' => 0,
169
- 'yoast_breadcrumbs' => 0,
170
- 'force_custom_slugs' => 0,
171
- 'disable_slug_sanitization' => 0,
172
- 'keep_accents' => 0,
173
- 'partial_disable' => array(),
174
- 'deep_detect' => 1,
175
- 'edit_uris_cap' => 'publish_posts',
176
- ),
177
- 'licence' => array()
178
- ));
179
-
180
- // Apply the default settings (if empty values) in all settings sections
181
- foreach($default_settings as $group_name => $fields) {
182
- foreach($fields as $field_name => $field) {
183
- if(!isset($settings[$group_name][$field_name])) {
184
- $settings[$group_name][$field_name] = $field;
185
- }
186
- }
187
  }
188
 
189
- return $settings;
190
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
191
 
192
- /**
193
- * Set the initial/default admin notices
194
- */
195
- public function default_alerts($alerts) {
196
- $default_alerts = apply_filters('permalink_manager_default_alerts', array(
197
- 'jan20promo' => array(
198
- 'txt' => sprintf(
199
- __("Get access to extra features: full taxonomy and WooCommerce support, possibility to use custom fields inside the permalinks and more!<br /><strong>Buy Permalink Manager Pro <a href=\"%s\" target=\"_blank\">here</a> and save %s using \"%s\" coupon code!</strong> Valid until %s!", "permalink-manager"),
200
- PERMALINK_MANAGER_WEBSITE . "&utm_campaign=discount_code",
201
- '20&#37;',
202
- 'JAN20',
203
- '30.01'
204
  ),
205
- 'type' => 'notice-info',
206
- 'show' => 'pro_hide',
207
- 'plugin_only' => true,
208
- 'until' => '2020-01-31'
209
- )
210
- ));
211
-
212
- // Apply the default settings (if empty values) in all settings sections
213
- return (array) $alerts + (array) $default_alerts;
214
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
215
 
216
- /**
217
- * Temporary hook
218
- */
219
- function legacy_support() {
220
- global $permalink_manager_permastructs, $permalink_manager_options;
221
-
222
- if(isset($permalink_manager_options['base-editor'])) {
223
- $new_options['post_types'] = $permalink_manager_options['base-editor'];
224
- update_option('permalink-manager-permastructs', $new_options);
225
  }
226
- else if(empty($permalink_manager_permastructs['post_types']) && empty($permalink_manager_permastructs['taxonomies']) && count($permalink_manager_permastructs) > 0) {
227
- $new_options['post_types'] = $permalink_manager_permastructs;
228
- update_option('permalink-manager-permastructs', $new_options);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
229
  }
230
 
231
- // Adjust options structure
232
- if(!empty($permalink_manager_options['miscellaneous'])) {
233
- // Combine general & general
234
- $permalink_manager_unfiltered_options['general'] = array_merge($permalink_manager_unfiltered_options['general'], $permalink_manager_unfiltered_options['miscellaneous']);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
235
 
236
- // Move licence key to different section
237
- $permalink_manager_unfiltered_options['licence']['licence_key'] = (!empty($permalink_manager_unfiltered_options['miscellaneous']['license_key'])) ? $permalink_manager_unfiltered_options['miscellaneous']['license_key'] : "";
238
 
239
- // Remove redundant keys
240
- unset($permalink_manager_unfiltered_options['general']['license_key']);
241
- unset($permalink_manager_unfiltered_options['miscellaneous']);
242
- unset($permalink_manager_unfiltered_options['permalink_manager_options']);
243
- unset($permalink_manager_unfiltered_options['_wp_http_referer']);
244
- }
245
 
246
- // Adjust "Force Custom Slugs" + "Sanitize" settings
247
- if(!empty($permalink_manager_options['general']['force_custom_slugs']) && $permalink_manager_options['general']['force_custom_slugs'] == 2) {
248
- $permalink_manager_unfiltered_options = $permalink_manager_options;
249
 
250
- $permalink_manager_unfiltered_options['general']['force_custom_slugs'] = 1;
251
- $permalink_manager_unfiltered_options['general']['disable_slug_sanitization'] = 1;
252
- }
253
 
254
- // Save the settings in database
255
- if(!empty($permalink_manager_unfiltered_options)) {
256
- update_option('permalink-manager', $permalink_manager_unfiltered_options);
 
257
  }
258
- }
259
 
260
- /**
261
- * Support deprecated hooks
262
- */
263
- function deprecated_hooks_list($filters = true) {
264
- $deprecated_filters = array(
265
- 'permalink_manager_default_options' => 'permalink-manager-default-options',
266
- 'permalink_manager_options' => 'permalink-manager-options',
267
- 'permalink_manager_uris' => 'permalink-manager-uris',
268
- 'permalink_manager_alerts' => 'permalink-manager-alerts',
269
- 'permalink_manager_redirects' => 'permalink-manager-redirects',
270
- 'permalink_manager_external_redirects' => 'permalink-manager-external-redirects',
271
- 'permalink_manager_permastructs' => 'permalink-manager-permastructs',
272
-
273
- 'permalink_manager_alerts' => 'permalink-manager-alerts',
274
- 'permalink_manager_before_sections' => 'permalink-manager-before-sections',
275
- 'permalink_manager_sections' => 'permalink-manager-sections',
276
- 'permalink_manager_after_sections' => 'permalink-manager-after-sections',
277
-
278
- 'permalink_manager_field_args' => 'permalink-manager-field-args',
279
- 'permalink_manager_field_output' => 'permalink-manager-field-output',
280
-
281
- 'permalink_manager_deep_uri_detect' => 'permalink-manager-deep-uri-detect',
282
- 'permalink_manager_detect_uri' => 'permalink-manager-detect-uri',
283
- 'permalink_manager_detected_element_id' => 'permalink-manager-detected-initial-id',
284
- 'permalink_manager_detected_term_id' => 'permalink-manager-detected-term-id',
285
- 'permalink_manager_detected_post_id' => 'permalink-manager-detected-post-id',
286
-
287
- 'permalink_manager_primary_term' => 'permalink-manager-primary-term',
288
- 'permalink_manager_disabled_post_types' => 'permalink-manager-disabled-post-types',
289
- 'permalink_manager_disabled_taxonomies' => 'permalink-manager-disabled-taxonomies',
290
- 'permalink_manager_endpoints' => 'permalink-manager-endpoints',
291
- 'permalink_manager_filter_permalink_base' => 'permalink_manager-filter-permalink-base',
292
- 'permalink_manager_force_lowercase_uris' => 'permalink-manager-force-lowercase-uris',
293
-
294
- 'permalink_manager_uri_editor_extra_info' => 'permalink-manager-uri-editor-extra-info',
295
- 'permalink_manager_debug_fields' => 'permalink-manager-debug-fields',
296
- 'permalink_manager_permastructs_fields' => 'permalink-manager-permastructs-fields',
297
- 'permalink_manager_settings_fields' => 'permalink-manager-settings-fields',
298
- 'permalink_manager_tools_fields' => 'permalink-manager-tools-fields',
299
-
300
- 'permalink_manager_uri_editor_columns' => 'permalink-manager-uri-editor-columns',
301
- 'permalink_manager_uri_editor_column_content' => 'permalink-manager-uri-editor-column-content',
302
- );
303
-
304
- return ($filters) ? $deprecated_filters : array();
305
- }
306
 
307
- function deprecated_hooks() {
308
- $deprecated_filters = (array) $this->deprecated_hooks_list(true);
309
- foreach($deprecated_filters as $new => $old) {
310
- add_filter($new, array($this, 'deprecated_hooks_mapping'), -1000, 8);
 
311
  }
312
- }
313
 
314
- function deprecated_hooks_mapping($data) {
315
- $deprecated_filters = $this->deprecated_hooks_list(true);
316
- $filter = current_filter();
 
 
 
 
 
 
 
 
 
 
317
 
318
- if(isset($deprecated_filters[$filter])) {
319
- if(has_filter($deprecated_filters[$filter])) {
320
- $args = func_get_args();
321
- $data = apply_filters_ref_array($deprecated_filters[$filter], $args);
 
 
322
  }
323
  }
324
 
325
- return $data;
326
  }
327
 
328
- }
 
 
 
 
329
 
330
- /**
331
- * Begins execution of the plugin.
332
- */
333
- function run_permalink_manager() {
334
- global $permalink_manager;
335
 
336
- // Do not run when Elementor is opened
337
- if((!empty($_REQUEST['action']) && strpos($_REQUEST['action'], 'elementor') !== false) || isset($_REQUEST['elementor-preview'])) { return; }
 
338
 
339
- $permalink_manager = new Permalink_Manager_Class();
340
  }
341
- run_permalink_manager();
4
  * Plugin Name: Permalink Manager Lite
5
  * Plugin URI: https://permalinkmanager.pro?utm_source=plugin
6
  * Description: Advanced plugin that allows to set-up custom permalinks (bulk editors included), slugs and permastructures (WooCommerce compatible).
7
+ * Version: 2.2.8.4
8
  * Author: Maciej Bis
9
  * Author URI: http://maciejbis.net/
10
  * License: GPL-2.0+
12
  * Text Domain: permalink-manager
13
  * Domain Path: /languages
14
  * WC requires at least: 3.0.0
15
+ * WC tested up to: 3.9.2
16
  */
17
 
18
  // If this file is called directly or plugin is already defined, abort.
20
  die;
21
  }
22
 
23
+ if(!class_exists('Permalink_Manager_Class')) {
24
+
25
+ // Define the directories used to load plugin files.
26
+ define( 'PERMALINK_MANAGER_PLUGIN_NAME', 'Permalink Manager' );
27
+ define( 'PERMALINK_MANAGER_PLUGIN_SLUG', 'permalink-manager' );
28
+ define( 'PERMALINK_MANAGER_VERSION', '2.2.8.4' );
29
+ define( 'PERMALINK_MANAGER_FILE', __FILE__ );
30
+ define( 'PERMALINK_MANAGER_DIR', untrailingslashit(dirname(__FILE__)) );
31
+ define( 'PERMALINK_MANAGER_BASENAME', plugin_basename(__FILE__));
32
+ define( 'PERMALINK_MANAGER_URL', untrailingslashit( plugins_url('', __FILE__) ) );
33
+ define( 'PERMALINK_MANAGER_WEBSITE', 'http://permalinkmanager.pro?utm_source=plugin' );
34
+ define( 'PERMALINK_MANAGER_DONATE', 'https://www.paypal.me/Bismit' );
35
+
36
+ class Permalink_Manager_Class {
37
+
38
+ public $permalink_manager_options_page, $permalink_manager_options;
39
+ public $sections, $functions, $permalink_manager_before_sections_html, $permalink_manager_after_sections_html;
40
+
41
+ /**
42
+ * Get options from DB, load subclasses & hooks
43
+ */
44
+ public function __construct() {
45
+ $this->include_subclassess();
46
+ $this->register_init_hooks();
 
 
 
 
 
 
 
47
  }
48
 
49
+ /**
50
+ * Include back-end classess and set their instances
51
+ */
52
+ function include_subclassess() {
53
+ // WP_List_Table needed for post types & taxnomies editors
54
+ if( ! class_exists( 'WP_List_Table' ) ) {
55
+ require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' );
56
+ }
57
+
58
+ $classes = array(
59
+ 'core' => array(
60
+ 'helper-functions' => 'Permalink_Manager_Helper_Functions',
61
+ 'uri-functions-post' => 'Permalink_Manager_URI_Functions_Post',
62
+ 'uri-functions-tax' => 'Permalink_Manager_URI_Functions_Tax',
63
+ 'admin-functions' => 'Permalink_Manager_Admin_Functions',
64
+ 'actions' => 'Permalink_Manager_Actions',
65
+ 'third-parties' => 'Permalink_Manager_Third_Parties',
66
+ 'core-functions' => 'Permalink_Manager_Core_Functions',
67
+ 'gutenberg' => 'Permalink_Manager_Gutenberg',
68
+ 'debug' => 'Permalink_Manager_Debug_Functions',
69
+ 'pro-functions' => 'Permalink_Manager_Pro_Functions'
70
+ ),
71
+ 'views' => array(
72
+ 'uri-editor' => 'Permalink_Manager_Uri_Editor',
73
+ 'tools' => 'Permalink_Manager_Tools',
74
+ 'permastructs' => 'Permalink_Manager_Permastructs',
75
+ 'settings' => 'Permalink_Manager_Settings',
76
+ 'debug' => 'Permalink_Manager_Debug',
77
+ 'pro-addons' => 'Permalink_Manager_Pro_Addons',
78
+ 'help' => 'Permalink_Manager_Help',
79
+ 'uri-editor-tax' => false,
80
+ 'uri-editor-post' => false
81
+ )
82
+ );
83
+
84
+ // Load classes and set-up their instances
85
+ foreach($classes as $class_type => $classes_array) {
86
+ foreach($classes_array as $class => $class_name) {
87
+ $filename = PERMALINK_MANAGER_DIR . "/includes/{$class_type}/permalink-manager-{$class}.php";
88
+
89
+ if(file_exists($filename)) {
90
+ require_once $filename;
91
+ if($class_name) { $this->functions[$class] = new $class_name(); }
92
+ }
93
  }
94
  }
95
  }
 
 
 
 
 
 
 
 
96
 
97
+ /**
98
+ * Register general hooks
99
+ */
100
+ public function register_init_hooks() {
101
+ // Localize plugin
102
+ add_action( 'init', array($this, 'localize_me'), 1 );
103
 
104
+ // Support deprecated hooks
105
+ add_action( 'plugins_loaded', array($this, 'deprecated_hooks'), 9 );
106
 
107
+ // Deactivate free version if Permalink Manager Pro is activated
108
+ add_action( 'plugins_loaded', array($this, 'is_pro_activated'), 9 );
109
 
110
+ // Load globals & options
111
+ add_action( 'plugins_loaded', array($this, 'get_options_and_globals'), 9 );
 
 
112
 
113
+ // Legacy support
114
+ add_action( 'init', array($this, 'legacy_support'), 2 );
 
 
 
 
115
 
116
+ // Default settings & alerts
117
+ add_filter( 'permalink_manager_options', array($this, 'default_settings'), 1 );
118
+ add_filter( 'permalink_manager_alerts', array($this, 'default_alerts'), 1 );
119
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
120
 
121
+ /**
122
+ * Localize this plugin
123
+ */
124
+ function localize_me() {
125
+ load_plugin_textdomain( 'permalink-manager', false, basename(dirname(__FILE__)) . "/languages" );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
126
  }
127
 
128
+ /**
129
+ * Get options values & set global
130
+ */
131
+ public function get_options_and_globals() {
132
+ // 1. Globals with data stored in DB
133
+ global $permalink_manager_options, $permalink_manager_uris, $permalink_manager_permastructs, $permalink_manager_redirects, $permalink_manager_external_redirects;
134
+
135
+ $this->permalink_manager_options = $permalink_manager_options = apply_filters('permalink_manager_options', get_option('permalink-manager', array()));
136
+ $this->permalink_manager_uris = $permalink_manager_uris = apply_filters('permalink_manager_uris', get_option('permalink-manager-uris', array()));
137
+ $this->permalink_manager_permastructs = $permalink_manager_permastructs = apply_filters('permalink_manager_permastructs', get_option('permalink-manager-permastructs', array()));
138
+ $this->permalink_manager_redirects = $permalink_manager_redirects = apply_filters('permalink_manager_redirects', get_option('permalink-manager-redirects', array()));
139
+ $this->permalink_manager_external_redirects = $permalink_manager_external_redirects = apply_filters('permalink_manager_external_redirects', get_option('permalink-manager-external-redirects', array()));
140
+
141
+ // 2. Globals used to display additional content (eg. alerts)
142
+ global $permalink_manager_alerts, $permalink_manager_before_sections_html, $permalink_manager_after_sections_html;
143
+
144
+ $this->permalink_manager_alerts = $permalink_manager_alerts = apply_filters('permalink_manager_alerts', get_option('permalink-manager-alerts', array()));
145
+ $this->permalink_manager_before_sections_html = $permalink_manager_before_sections_html = apply_filters('permalink_manager_before_sections', '');
146
+ $this->permalink_manager_after_sections_html = $permalink_manager_after_sections_html = apply_filters('permalink_manager_after_sections', '');
147
+ }
148
 
149
+ /**
150
+ * Set the initial/default settings (including "Screen Options")
151
+ */
152
+ public function default_settings($settings) {
153
+ $all_taxonomies = Permalink_Manager_Helper_Functions::get_taxonomies_array();
154
+ $all_post_types = Permalink_Manager_Helper_Functions::get_post_types_array();
155
+
156
+ $default_settings = apply_filters('permalink_manager_default_options', array(
157
+ 'screen-options' => array(
158
+ 'per_page' => 20,
159
+ 'post_statuses' => array('publish'),
160
+ 'group' => false,
161
  ),
162
+ 'general' => array(
163
+ 'auto_update_uris' => 0,
164
+ 'show_native_slug_field' => 0,
165
+ 'pagination_redirect' => 0,
166
+ 'sslwww_redirect' => 0,
167
+ 'canonical_redirect' => 1,
168
+ 'old_slug_redirect' => 0,
169
+ 'setup_redirects' => 1,
170
+ 'redirect' => '301',
171
+ 'trailing_slashes' => 0,
172
+ 'auto_remove_duplicates' => 1,
173
+ 'fix_language_mismatch' => 1,
174
+ 'pmxi_import_support' => 0,
175
+ 'yoast_breadcrumbs' => 0,
176
+ 'force_custom_slugs' => 0,
177
+ 'disable_slug_sanitization' => 0,
178
+ 'keep_accents' => 0,
179
+ 'partial_disable' => array(),
180
+ 'deep_detect' => 1,
181
+ 'edit_uris_cap' => 'publish_posts',
182
+ ),
183
+ 'licence' => array()
184
+ ));
185
+
186
+ // Apply the default settings (if empty values) in all settings sections
187
+ foreach($default_settings as $group_name => $fields) {
188
+ foreach($fields as $field_name => $field) {
189
+ if(!isset($settings[$group_name][$field_name])) {
190
+ $settings[$group_name][$field_name] = $field;
191
+ }
192
+ }
193
+ }
194
 
195
+ return $settings;
 
 
 
 
 
 
 
 
196
  }
197
+
198
+ /**
199
+ * Set the initial/default admin notices
200
+ */
201
+ public function default_alerts($alerts) {
202
+ $default_alerts = apply_filters('permalink_manager_default_alerts', array(
203
+ 'jan20promo' => array(
204
+ 'txt' => sprintf(
205
+ __("Get access to extra features: full taxonomy and WooCommerce support, possibility to use custom fields inside the permalinks and more!<br /><strong>Buy Permalink Manager Pro <a href=\"%s\" target=\"_blank\">here</a> and save %s using \"%s\" coupon code!</strong> Valid until %s!", "permalink-manager"),
206
+ PERMALINK_MANAGER_WEBSITE . "&utm_campaign=discount_code",
207
+ '20&#37;',
208
+ 'JAN20',
209
+ '30.01'
210
+ ),
211
+ 'type' => 'notice-info',
212
+ 'show' => 'pro_hide',
213
+ 'plugin_only' => true,
214
+ 'until' => '2020-01-31'
215
+ )
216
+ ));
217
+
218
+ // Apply the default settings (if empty values) in all settings sections
219
+ return (array) $alerts + (array) $default_alerts;
220
  }
221
 
222
+ /**
223
+ * Temporary hook
224
+ */
225
+ function legacy_support() {
226
+ global $permalink_manager_permastructs, $permalink_manager_options;
227
+
228
+ if(isset($permalink_manager_options['base-editor'])) {
229
+ $new_options['post_types'] = $permalink_manager_options['base-editor'];
230
+ update_option('permalink-manager-permastructs', $new_options);
231
+ }
232
+ else if(empty($permalink_manager_permastructs['post_types']) && empty($permalink_manager_permastructs['taxonomies']) && count($permalink_manager_permastructs) > 0) {
233
+ $new_options['post_types'] = $permalink_manager_permastructs;
234
+ update_option('permalink-manager-permastructs', $new_options);
235
+ }
236
+
237
+ // Adjust options structure
238
+ if(!empty($permalink_manager_options['miscellaneous'])) {
239
+ // Combine general & general
240
+ $permalink_manager_unfiltered_options['general'] = array_merge($permalink_manager_unfiltered_options['general'], $permalink_manager_unfiltered_options['miscellaneous']);
241
 
242
+ // Move licence key to different section
243
+ $permalink_manager_unfiltered_options['licence']['licence_key'] = (!empty($permalink_manager_unfiltered_options['miscellaneous']['license_key'])) ? $permalink_manager_unfiltered_options['miscellaneous']['license_key'] : "";
244
 
245
+ // Remove redundant keys
246
+ unset($permalink_manager_unfiltered_options['general']['license_key']);
247
+ unset($permalink_manager_unfiltered_options['miscellaneous']);
248
+ unset($permalink_manager_unfiltered_options['permalink_manager_options']);
249
+ unset($permalink_manager_unfiltered_options['_wp_http_referer']);
250
+ }
251
 
252
+ // Adjust "Force Custom Slugs" + "Sanitize" settings
253
+ if(!empty($permalink_manager_options['general']['force_custom_slugs']) && $permalink_manager_options['general']['force_custom_slugs'] == 2) {
254
+ $permalink_manager_unfiltered_options = $permalink_manager_options;
255
 
256
+ $permalink_manager_unfiltered_options['general']['force_custom_slugs'] = 1;
257
+ $permalink_manager_unfiltered_options['general']['disable_slug_sanitization'] = 1;
258
+ }
259
 
260
+ // Save the settings in database
261
+ if(!empty($permalink_manager_unfiltered_options)) {
262
+ update_option('permalink-manager', $permalink_manager_unfiltered_options);
263
+ }
264
  }
 
265
 
266
+ /**
267
+ * Support deprecated hooks
268
+ */
269
+ function deprecated_hooks_list($filters = true) {
270
+ $deprecated_filters = array(
271
+ 'permalink_manager_default_options' => 'permalink-manager-default-options',
272
+ 'permalink_manager_options' => 'permalink-manager-options',
273
+ 'permalink_manager_uris' => 'permalink-manager-uris',
274
+ 'permalink_manager_alerts' => 'permalink-manager-alerts',
275
+ 'permalink_manager_redirects' => 'permalink-manager-redirects',
276
+ 'permalink_manager_external_redirects' => 'permalink-manager-external-redirects',
277
+ 'permalink_manager_permastructs' => 'permalink-manager-permastructs',
278
+
279
+ 'permalink_manager_alerts' => 'permalink-manager-alerts',
280
+ 'permalink_manager_before_sections' => 'permalink-manager-before-sections',
281
+ 'permalink_manager_sections' => 'permalink-manager-sections',
282
+ 'permalink_manager_after_sections' => 'permalink-manager-after-sections',
283
+
284
+ 'permalink_manager_field_args' => 'permalink-manager-field-args',
285
+ 'permalink_manager_field_output' => 'permalink-manager-field-output',
286
+
287
+ 'permalink_manager_deep_uri_detect' => 'permalink-manager-deep-uri-detect',
288
+ 'permalink_manager_detect_uri' => 'permalink-manager-detect-uri',
289
+ 'permalink_manager_detected_element_id' => 'permalink-manager-detected-initial-id',
290
+ 'permalink_manager_detected_term_id' => 'permalink-manager-detected-term-id',
291
+ 'permalink_manager_detected_post_id' => 'permalink-manager-detected-post-id',
292
+
293
+ 'permalink_manager_primary_term' => 'permalink-manager-primary-term',
294
+ 'permalink_manager_disabled_post_types' => 'permalink-manager-disabled-post-types',
295
+ 'permalink_manager_disabled_taxonomies' => 'permalink-manager-disabled-taxonomies',
296
+ 'permalink_manager_endpoints' => 'permalink-manager-endpoints',
297
+ 'permalink_manager_filter_permalink_base' => 'permalink_manager-filter-permalink-base',
298
+ 'permalink_manager_force_lowercase_uris' => 'permalink-manager-force-lowercase-uris',
299
+
300
+ 'permalink_manager_uri_editor_extra_info' => 'permalink-manager-uri-editor-extra-info',
301
+ 'permalink_manager_debug_fields' => 'permalink-manager-debug-fields',
302
+ 'permalink_manager_permastructs_fields' => 'permalink-manager-permastructs-fields',
303
+ 'permalink_manager_settings_fields' => 'permalink-manager-settings-fields',
304
+ 'permalink_manager_tools_fields' => 'permalink-manager-tools-fields',
305
+
306
+ 'permalink_manager_uri_editor_columns' => 'permalink-manager-uri-editor-columns',
307
+ 'permalink_manager_uri_editor_column_content' => 'permalink-manager-uri-editor-column-content',
308
+ );
309
+
310
+ return ($filters) ? $deprecated_filters : array();
311
+ }
312
 
313
+ function deprecated_hooks() {
314
+ $deprecated_filters = (array) $this->deprecated_hooks_list(true);
315
+ foreach($deprecated_filters as $new => $old) {
316
+ add_filter($new, array($this, 'deprecated_hooks_mapping'), -1000, 8);
317
+ }
318
  }
 
319
 
320
+ function deprecated_hooks_mapping($data) {
321
+ $deprecated_filters = $this->deprecated_hooks_list(true);
322
+ $filter = current_filter();
323
+
324
+ if(isset($deprecated_filters[$filter])) {
325
+ if(has_filter($deprecated_filters[$filter])) {
326
+ $args = func_get_args();
327
+ $data = apply_filters_ref_array($deprecated_filters[$filter], $args);
328
+ }
329
+ }
330
+
331
+ return $data;
332
+ }
333
 
334
+ /**
335
+ * Deactivate Permalink Manager Lite if Permalink Manager Pro is enabled
336
+ */
337
+ function is_pro_activated() {
338
+ if(function_exists('is_plugin_active') && is_plugin_active('permalink-manager/permalink-manager.php') && is_plugin_active('permalink-manager-pro/permalink-manager.php')) {
339
+ deactivate_plugins('permalink-manager/permalink-manager.php');
340
  }
341
  }
342
 
 
343
  }
344
 
345
+ /**
346
+ * Begins execution of the plugin.
347
+ */
348
+ function run_permalink_manager() {
349
+ global $permalink_manager;
350
 
351
+ // Do not run when Elementor is opened
352
+ if((!empty($_REQUEST['action']) && strpos($_REQUEST['action'], 'elementor') !== false) || isset($_REQUEST['elementor-preview'])) { return; }
 
 
 
353
 
354
+ $permalink_manager = new Permalink_Manager_Class();
355
+ }
356
+ run_permalink_manager();
357
 
 
358
  }