Version Description
- More debug functions added
- Better support for Hebrew letters
- Support for location custom fields in WP Store Locator - CSV Manager plugin
- Improved support for Gutenberg editor (reported by Cedric Busuttil)
Download this release
Release Info
Developer | mbis |
Plugin | Permalink Manager Lite |
Version | 2.2.6 |
Comparing to | |
See all releases |
Code changes from version 2.2.7.3 to 2.2.6
- README.txt +9 -24
- includes/core/permalink-manager-actions.php +9 -12
- includes/core/permalink-manager-admin-functions.php +18 -47
- includes/core/permalink-manager-core-functions.php +163 -154
- includes/core/permalink-manager-helper-functions.php +22 -49
- includes/core/permalink-manager-third-parties.php +82 -87
- includes/core/permalink-manager-uri-functions-post.php +13 -15
- includes/views/permalink-manager-settings.php +9 -21
- includes/views/permalink-manager-uri-editor-post.php +2 -3
- languages/permalink-manager.pot +636 -658
- out/permalink-manager-admin.js +6 -30
- permalink-manager.php +6 -8
README.txt
CHANGED
@@ -6,18 +6,19 @@ License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
|
6 |
Tags: permalinks, custom permalinks, translate permalinks, woocommerce permalinks
|
7 |
Requires at least: 4.4.0
|
8 |
Requires PHP: 5.4
|
9 |
-
Tested up to: 5.2.
|
10 |
-
Stable tag: 2.2.
|
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
|
13 |
|
14 |
== Description ==
|
15 |
|
16 |
Permalink Manager is a most advanced and highly rated Wordpress permalink plugin that helps Wordpress users to control the URL addresses of all posts, pages, custom post type elements (taxonomies are supported in Pro version). To avoid 404 or duplicated content errors after the new custom permalink is defined, the visitors trying to access the old permalink will be automatically redirected to the new custom URL.
|
17 |
|
18 |
-
The plugin supports all custom post types & custom taxonomies and popular 3rd party plugins including WooCommerce, Yoast SEO, WPML, and Polylang. To improve SEO performance even more, the plugin settings provide a possibility to disable the canonical redirect (used natively by Wordpress) and control the trailing slashes settings.
|
|
|
|
|
19 |
|
20 |
-
<a href="https://permalinkmanager.pro/docs/?utm_source=wordpressorg">Documentation</a> | <a href="https://permalinkmanager.pro/buy-permalink-manager-pro/?utm_source=wordpressorg">Permalink Manager Pro</a>
|
21 |
|
22 |
= All features =
|
23 |
|
@@ -31,8 +32,8 @@ The plugin supports all custom post types & custom taxonomies and popular 3rd pa
|
|
31 |
* **Trailing slashes settings**<br/>They can be forced or removed from all permalinks.
|
32 |
|
33 |
= Need additional features & priority support? =
|
34 |
-
Buy <a href="https://permalinkmanager.pro?utm_source=wordpress">Permalink Manager Pro here</a>.
|
35 |
-
|
36 |
https://www.youtube.com/watch?v=KMOtAK5c7t8
|
37 |
|
38 |
= Additional features available in Permalink Manager Pro =
|
@@ -103,29 +104,13 @@ It is because Permalink Manager overwrites one of the core Wordpress functionali
|
|
103 |
|
104 |
== Changelog ==
|
105 |
|
106 |
-
= 2.2.7.3 =
|
107 |
-
* Support for "Primary category" set with The SEO Framework
|
108 |
-
* Changes for URI Editor section backend (SQL queries + improvements for search box)
|
109 |
-
* Improved support for WooCommerce Wishlist plugin
|
110 |
-
* Improvements for slugs sanitization functions
|
111 |
-
* Possibility to exclude posts from bulk tools added to "Auto-update the URI" dropdown in URI Editor
|
112 |
-
|
113 |
-
= 2.2.7.1 =
|
114 |
-
* Hotfix for PHP Fatal error in permalink-manager-admin-functions.php file
|
115 |
-
|
116 |
-
= 2.2.7 =
|
117 |
-
* Force 404 for draft posts (for non-logged-in users)
|
118 |
-
* New feature: Force HTTPs/WWW in URLs
|
119 |
-
* New setting fields: "URI Editor role capability" & "Force HTTPS in URLs"
|
120 |
-
* Minor improvements
|
121 |
-
|
122 |
= 2.2.6 =
|
123 |
* More debug functions added
|
124 |
* Better support for Hebrew letters
|
125 |
* Support for location custom fields in WP Store Locator - CSV Manager plugin
|
126 |
* Improved support for Gutenberg editor (reported by Cedric Busuttil)
|
127 |
|
128 |
-
= 2.2.4/2.2.5
|
129 |
* Minor code improvements
|
130 |
* Yoast SEO Breadcrumbs - further improvements
|
131 |
* Hotfix for Toolset custom fields support (Permalink Manager Pro)
|
6 |
Tags: permalinks, custom permalinks, translate permalinks, woocommerce permalinks
|
7 |
Requires at least: 4.4.0
|
8 |
Requires PHP: 5.4
|
9 |
+
Tested up to: 5.2.3
|
10 |
+
Stable tag: 2.2.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 |
|
14 |
== Description ==
|
15 |
|
16 |
Permalink Manager is a most advanced and highly rated Wordpress permalink plugin that helps Wordpress users to control the URL addresses of all posts, pages, custom post type elements (taxonomies are supported in Pro version). To avoid 404 or duplicated content errors after the new custom permalink is defined, the visitors trying to access the old permalink will be automatically redirected to the new custom URL.
|
17 |
|
18 |
+
The plugin supports all custom post types & custom taxonomies and popular 3rd party plugins including WooCommerce, Yoast SEO, WPML, and Polylang. To improve SEO performance even more, the plugin settings provide a possibility to disable the canonical redirect (used natively by Wordpress) and control the trailing slashes settings.
|
19 |
+
|
20 |
+
<a href="https://permalinkmanager.pro/docs/?utm_source=wordpressorg">Documentation</a> | <a href="https://permalinkmanager.pro/buy-permalink-manager-pro/?utm_source=wordpressorg">Permalink Manager Pro</a>
|
21 |
|
|
|
22 |
|
23 |
= All features =
|
24 |
|
32 |
* **Trailing slashes settings**<br/>They can be forced or removed from all permalinks.
|
33 |
|
34 |
= Need additional features & priority support? =
|
35 |
+
Buy <a href="https://permalinkmanager.pro?utm_source=wordpress">Permalink Manager Pro here</a>.
|
36 |
+
|
37 |
https://www.youtube.com/watch?v=KMOtAK5c7t8
|
38 |
|
39 |
= Additional features available in Permalink Manager Pro =
|
104 |
|
105 |
== Changelog ==
|
106 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
107 |
= 2.2.6 =
|
108 |
* More debug functions added
|
109 |
* Better support for Hebrew letters
|
110 |
* Support for location custom fields in WP Store Locator - CSV Manager plugin
|
111 |
* Improved support for Gutenberg editor (reported by Cedric Busuttil)
|
112 |
|
113 |
+
= 2.2.4/2.2.5=
|
114 |
* Minor code improvements
|
115 |
* Yoast SEO Breadcrumbs - further improvements
|
116 |
* Hotfix for Toolset custom fields support (Permalink Manager Pro)
|
includes/core/permalink-manager-actions.php
CHANGED
@@ -23,14 +23,7 @@ class Permalink_Manager_Actions extends Permalink_Manager_Class {
|
|
23 |
global $permalink_manager_after_sections_html;
|
24 |
|
25 |
// 1. Check if the form was submitted
|
26 |
-
if(empty($_POST)) {
|
27 |
-
return;
|
28 |
-
}
|
29 |
-
|
30 |
-
// 2. Do nothing if search query is not empty
|
31 |
-
if(isset($_REQUEST['search-submit']) || isset($_REQUEST['months-filter-button'])) {
|
32 |
-
return;
|
33 |
-
}
|
34 |
|
35 |
$actions_map = array(
|
36 |
'uri_editor' => array('function' => 'update_all_permalinks', 'display_uri_table' => true),
|
@@ -42,7 +35,7 @@ class Permalink_Manager_Actions extends Permalink_Manager_Class {
|
|
42 |
'import' => array('function' => 'import_custom_permalinks_uris'),
|
43 |
);
|
44 |
|
45 |
-
//
|
46 |
foreach($actions_map as $action => $map) {
|
47 |
if(isset($_POST[$action]) && wp_verify_nonce($_POST[$action], 'permalink-manager')) {
|
48 |
// Execute the function
|
@@ -59,7 +52,7 @@ class Permalink_Manager_Actions extends Permalink_Manager_Class {
|
|
59 |
}
|
60 |
}
|
61 |
|
62 |
-
//
|
63 |
if(isset($updated_slugs_count)) {
|
64 |
$permalink_manager_after_sections_html .= Permalink_Manager_Admin_Functions::display_updated_slugs($updated_slugs_array);
|
65 |
}
|
@@ -140,7 +133,7 @@ class Permalink_Manager_Actions extends Permalink_Manager_Class {
|
|
140 |
$progress = get_transient("pm_{$uniq_id}_progress");
|
141 |
|
142 |
$first_chunk = true;
|
143 |
-
$chunk_size = 50;
|
144 |
|
145 |
if(empty($items)) {
|
146 |
$items = $class_name::get_items();
|
@@ -238,8 +231,12 @@ class Permalink_Manager_Actions extends Permalink_Manager_Class {
|
|
238 |
* Update all permalinks in "Permalink Editor"
|
239 |
*/
|
240 |
function update_all_permalinks() {
|
|
|
|
|
|
|
|
|
241 |
// Check if posts or terms should be updated
|
242 |
-
if(!empty($_POST['content_type']) && $_POST['content_type'] == 'taxonomies') {
|
243 |
return Permalink_Manager_URI_Functions_Tax::update_all_permalinks();
|
244 |
} else {
|
245 |
return Permalink_Manager_URI_Functions_Post::update_all_permalinks();
|
23 |
global $permalink_manager_after_sections_html;
|
24 |
|
25 |
// 1. Check if the form was submitted
|
26 |
+
if(empty($_POST)) { return; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
|
28 |
$actions_map = array(
|
29 |
'uri_editor' => array('function' => 'update_all_permalinks', 'display_uri_table' => true),
|
35 |
'import' => array('function' => 'import_custom_permalinks_uris'),
|
36 |
);
|
37 |
|
38 |
+
// 2. Find the action
|
39 |
foreach($actions_map as $action => $map) {
|
40 |
if(isset($_POST[$action]) && wp_verify_nonce($_POST[$action], 'permalink-manager')) {
|
41 |
// Execute the function
|
52 |
}
|
53 |
}
|
54 |
|
55 |
+
// 3. Display the slugs table (and append the globals)
|
56 |
if(isset($updated_slugs_count)) {
|
57 |
$permalink_manager_after_sections_html .= Permalink_Manager_Admin_Functions::display_updated_slugs($updated_slugs_array);
|
58 |
}
|
133 |
$progress = get_transient("pm_{$uniq_id}_progress");
|
134 |
|
135 |
$first_chunk = true;
|
136 |
+
$chunk_size = apply_filters('permalink_manager_chunk_size', 50);
|
137 |
|
138 |
if(empty($items)) {
|
139 |
$items = $class_name::get_items();
|
231 |
* Update all permalinks in "Permalink Editor"
|
232 |
*/
|
233 |
function update_all_permalinks() {
|
234 |
+
// Do nothing if search query is not empty
|
235 |
+
if(!empty($_REQUEST['search-submit'])) {
|
236 |
+
return;
|
237 |
+
}
|
238 |
// Check if posts or terms should be updated
|
239 |
+
else if(!empty($_POST['content_type']) && $_POST['content_type'] == 'taxonomies') {
|
240 |
return Permalink_Manager_URI_Functions_Tax::update_all_permalinks();
|
241 |
} else {
|
242 |
return Permalink_Manager_URI_Functions_Post::update_all_permalinks();
|
includes/core/permalink-manager-admin-functions.php
CHANGED
@@ -26,9 +26,8 @@ class Permalink_Manager_Admin_Functions extends Permalink_Manager_Class {
|
|
26 |
* Hooks that should be triggered with "admin_init"
|
27 |
*/
|
28 |
public function init() {
|
29 |
-
// Additional
|
30 |
add_filter( "plugin_action_links_{$this->plugin_basename}", array($this, "plugins_page_links") );
|
31 |
-
add_filter( "plugin_row_meta", array($this, "plugins_page_meta"), 10, 2 );
|
32 |
|
33 |
// Detect current section
|
34 |
$this->sections = apply_filters('permalink_manager_sections', array());
|
@@ -155,30 +154,10 @@ class Permalink_Manager_Admin_Functions extends Permalink_Manager_Class {
|
|
155 |
* Additional links on "Plugins" page
|
156 |
*/
|
157 |
public function plugins_page_links($links) {
|
158 |
-
$
|
159 |
-
|
160 |
-
|
161 |
-
);
|
162 |
-
|
163 |
-
return array_merge($links, $new_links);
|
164 |
-
}
|
165 |
-
|
166 |
-
/**
|
167 |
-
* Additional meta links on "Plugins" page
|
168 |
-
*/
|
169 |
-
public function plugins_page_meta($links, $file) {
|
170 |
-
if($file == PERMALINK_MANAGER_BASENAME) {
|
171 |
-
$new_links = array(
|
172 |
-
'doc' => sprintf('<a href="%s?utm_source=plugin_admin_page" target="_blank">%s</a>', 'https://permalinkmanager.pro/docs/', __( 'Documentation', 'permalink-manager' ))
|
173 |
-
);
|
174 |
-
|
175 |
-
if(!defined('PERMALINK_MANAGER_PRO')) {
|
176 |
-
$new_links['upgrade'] = sprintf('<a href="%s?utm_source=plugin_admin_page" target="_blank"><strong>%s</strong></a>', PERMALINK_MANAGER_WEBSITE, __( 'Buy Permalink Manager Pro', 'permalink-manager' ));
|
177 |
-
}
|
178 |
-
|
179 |
-
$links = array_merge($links, $new_links);
|
180 |
}
|
181 |
-
|
182 |
return $links;
|
183 |
}
|
184 |
|
@@ -660,16 +639,16 @@ class Permalink_Manager_Admin_Functions extends Permalink_Manager_Class {
|
|
660 |
}
|
661 |
|
662 |
// Decode permalink
|
663 |
-
$permalink =
|
664 |
|
665 |
$main_content .= "<tr{$alternate_class}>";
|
666 |
$main_content .= '<td class="row-title column-primary" data-colname="' . __('Title', 'permalink-manager') . '">' . $row['item_title'] . "<a target=\"_blank\" href=\"{$permalink}\"><span class=\"small\">{$permalink}</span></a>" . '<button type="button" class="toggle-row"><span class="screen-reader-text">' . __('Show more details', 'permalink-manager') . '</span></button></td>';
|
667 |
if($show_slugs) {
|
668 |
-
$main_content .= (isset($row['old_slug'])) ? '<td data-colname="' . __('Old Slug', 'permalink-manager') . '">' .
|
669 |
-
$main_content .= (isset($row['new_slug'])) ? '<td data-colname="' . __('New Slug', 'permalink-manager') . '">' .
|
670 |
} else {
|
671 |
-
$main_content .= '<td data-colname="' . __('Old URI', 'permalink-manager') . '">' .
|
672 |
-
$main_content .= '<td data-colname="' . __('New URI', 'permalink-manager') . '">' .
|
673 |
}
|
674 |
$main_content .= '</tr>';
|
675 |
}
|
@@ -748,12 +727,6 @@ class Permalink_Manager_Admin_Functions extends Permalink_Manager_Class {
|
|
748 |
public static function display_uri_box($element, $gutenberg = false) {
|
749 |
global $permalink_manager_options, $permalink_manager_uris;
|
750 |
|
751 |
-
// Check the user capabilities
|
752 |
-
$edit_uris_cap = (!empty($permalink_manager_options['general']['edit_uris_cap'])) ? $permalink_manager_options['general']['edit_uris_cap'] : 'publish_posts';
|
753 |
-
if(!current_user_can($edit_uris_cap)) {
|
754 |
-
return;
|
755 |
-
}
|
756 |
-
|
757 |
if(!empty($element->ID)) {
|
758 |
$id = $element_id = $element->ID;
|
759 |
$native_slug = $element->post_name;
|
@@ -766,9 +739,8 @@ class Permalink_Manager_Admin_Functions extends Permalink_Manager_Class {
|
|
766 |
$auto_update_def_label = ($auto_update_def_val) ? __("Yes", "permalink-manager") : __("No", "permalink-manager");
|
767 |
$auto_update_choices = array(
|
768 |
0 => array("label" => sprintf(__("Use global settings [%s]", "permalink-manager"), $auto_update_def_label), "atts" => "data-auto-update=\"{$auto_update_def_val}\""),
|
769 |
-
1 => array("label" => __("Yes", "permalink-manager"), "atts" => "data-auto-update=\"1\""),
|
770 |
-1 => array("label" => __("No", "permalink-manager"), "atts" => "data-auto-update=\"0\""),
|
771 |
-
|
772 |
);
|
773 |
|
774 |
// Get URIs
|
@@ -789,7 +761,7 @@ class Permalink_Manager_Admin_Functions extends Permalink_Manager_Class {
|
|
789 |
}
|
790 |
|
791 |
// Decode default URI
|
792 |
-
$default_uri =
|
793 |
|
794 |
// Start HTML output
|
795 |
// 1. Button
|
@@ -824,7 +796,7 @@ class Permalink_Manager_Admin_Functions extends Permalink_Manager_Class {
|
|
824 |
|
825 |
// 5. Native slug
|
826 |
if(!empty($element->ID) && !empty($permalink_manager_options["general"]["show_native_slug_field"])) {
|
827 |
-
$native_slug_field = Permalink_Manager_Admin_Functions::generate_option_field("native_slug", array("extra_atts" => "data-default=\"{$native_slug}\" data-element-id=\"{$element_id}\"", "input_class" => "widefat native_slug", "value" =>
|
828 |
|
829 |
$html .= sprintf("<div class=\"native_slug_container\"><p><label for=\"native_slug\" class=\"strong\">%s %s</label></p><span>%s</span></div>",
|
830 |
__("Native slug", "permalink-manager"),
|
@@ -860,7 +832,7 @@ class Permalink_Manager_Admin_Functions extends Permalink_Manager_Class {
|
|
860 |
"<div class=\"default-permalink-row columns-container\"><span><strong>%s</strong> <a href=\"%s\">%s</a></span></div>",
|
861 |
__("Automatic redirect for native URI enabled:", "permalink-manager"),
|
862 |
$native_permalink,
|
863 |
-
|
864 |
);
|
865 |
}
|
866 |
}
|
@@ -903,22 +875,21 @@ class Permalink_Manager_Admin_Functions extends Permalink_Manager_Class {
|
|
903 |
global $permalink_manager_options, $permalink_manager_redirects;
|
904 |
|
905 |
// Heading
|
906 |
-
$html =
|
907 |
-
|
908 |
-
$html .= sprintf(
|
909 |
-
"<div><a class=\"button\" href=\"#\" id=\"toggle-redirect-panel\">%s</a></span></div>",
|
910 |
__("Manage redirects", "permalink-manager")
|
911 |
);
|
912 |
|
913 |
$html .= "<div id=\"redirect-panel-inside\">";
|
|
|
|
|
914 |
if(Permalink_Manager_Admin_Functions::is_pro_active() && class_exists('Permalink_Manager_Pro_Addons')) {
|
915 |
$html .= Permalink_Manager_Pro_Addons::display_redirect_form($element_id);
|
916 |
} else {
|
917 |
$html .= self::pro_text(true);
|
918 |
}
|
919 |
-
$html .= "</div>";
|
920 |
|
921 |
-
$html .= "</div>";
|
922 |
|
923 |
return $html;
|
924 |
}
|
26 |
* Hooks that should be triggered with "admin_init"
|
27 |
*/
|
28 |
public function init() {
|
29 |
+
// Additional link in "Plugins" page
|
30 |
add_filter( "plugin_action_links_{$this->plugin_basename}", array($this, "plugins_page_links") );
|
|
|
31 |
|
32 |
// Detect current section
|
33 |
$this->sections = apply_filters('permalink_manager_sections', array());
|
154 |
* Additional links on "Plugins" page
|
155 |
*/
|
156 |
public function plugins_page_links($links) {
|
157 |
+
$links[] = sprintf('<a href="%s">%s</a>', $this->get_admin_url(), __( 'URI Editor', 'permalink-manager' ));
|
158 |
+
if(!defined('PERMALINK_MANAGER_PRO')) {
|
159 |
+
$links[] = sprintf('<a href="%s" target="_blank">%s</a>', PERMALINK_MANAGER_WEBSITE, __( 'Buy Permalink Manager Pro', 'permalink-manager' ));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
160 |
}
|
|
|
161 |
return $links;
|
162 |
}
|
163 |
|
639 |
}
|
640 |
|
641 |
// Decode permalink
|
642 |
+
$permalink = urldecode(urldecode($permalink));
|
643 |
|
644 |
$main_content .= "<tr{$alternate_class}>";
|
645 |
$main_content .= '<td class="row-title column-primary" data-colname="' . __('Title', 'permalink-manager') . '">' . $row['item_title'] . "<a target=\"_blank\" href=\"{$permalink}\"><span class=\"small\">{$permalink}</span></a>" . '<button type="button" class="toggle-row"><span class="screen-reader-text">' . __('Show more details', 'permalink-manager') . '</span></button></td>';
|
646 |
if($show_slugs) {
|
647 |
+
$main_content .= (isset($row['old_slug'])) ? '<td data-colname="' . __('Old Slug', 'permalink-manager') . '">' . urldecode($row['old_slug']) . '</td>' : "";
|
648 |
+
$main_content .= (isset($row['new_slug'])) ? '<td data-colname="' . __('New Slug', 'permalink-manager') . '">' . urldecode($row['new_slug']) . '</td>' : "";
|
649 |
} else {
|
650 |
+
$main_content .= '<td data-colname="' . __('Old URI', 'permalink-manager') . '">' . urldecode($row['old_uri']) . '</td>';
|
651 |
+
$main_content .= '<td data-colname="' . __('New URI', 'permalink-manager') . '">' . urldecode($row['new_uri']) . '</td>';
|
652 |
}
|
653 |
$main_content .= '</tr>';
|
654 |
}
|
727 |
public static function display_uri_box($element, $gutenberg = false) {
|
728 |
global $permalink_manager_options, $permalink_manager_uris;
|
729 |
|
|
|
|
|
|
|
|
|
|
|
|
|
730 |
if(!empty($element->ID)) {
|
731 |
$id = $element_id = $element->ID;
|
732 |
$native_slug = $element->post_name;
|
739 |
$auto_update_def_label = ($auto_update_def_val) ? __("Yes", "permalink-manager") : __("No", "permalink-manager");
|
740 |
$auto_update_choices = array(
|
741 |
0 => array("label" => sprintf(__("Use global settings [%s]", "permalink-manager"), $auto_update_def_label), "atts" => "data-auto-update=\"{$auto_update_def_val}\""),
|
|
|
742 |
-1 => array("label" => __("No", "permalink-manager"), "atts" => "data-auto-update=\"0\""),
|
743 |
+
1 => array("label" => __("Yes", "permalink-manager"), "atts" => "data-auto-update=\"1\"")
|
744 |
);
|
745 |
|
746 |
// Get URIs
|
761 |
}
|
762 |
|
763 |
// Decode default URI
|
764 |
+
$default_uri = urldecode($default_uri);
|
765 |
|
766 |
// Start HTML output
|
767 |
// 1. Button
|
796 |
|
797 |
// 5. Native slug
|
798 |
if(!empty($element->ID) && !empty($permalink_manager_options["general"]["show_native_slug_field"])) {
|
799 |
+
$native_slug_field = Permalink_Manager_Admin_Functions::generate_option_field("native_slug", array("extra_atts" => "data-default=\"{$native_slug}\" data-element-id=\"{$element_id}\"", "input_class" => "widefat native_slug", "value" => urldecode($native_slug)));
|
800 |
|
801 |
$html .= sprintf("<div class=\"native_slug_container\"><p><label for=\"native_slug\" class=\"strong\">%s %s</label></p><span>%s</span></div>",
|
802 |
__("Native slug", "permalink-manager"),
|
832 |
"<div class=\"default-permalink-row columns-container\"><span><strong>%s</strong> <a href=\"%s\">%s</a></span></div>",
|
833 |
__("Automatic redirect for native URI enabled:", "permalink-manager"),
|
834 |
$native_permalink,
|
835 |
+
urldecode($native_uri)
|
836 |
);
|
837 |
}
|
838 |
}
|
875 |
global $permalink_manager_options, $permalink_manager_redirects;
|
876 |
|
877 |
// Heading
|
878 |
+
$html = sprintf(
|
879 |
+
"<div class=\"permalink-manager redirects-row redirects-panel columns-container\"><div><a class=\"button\" href=\"#\" id=\"toggle-redirect-panel\">%s</a></span></div>",
|
|
|
|
|
880 |
__("Manage redirects", "permalink-manager")
|
881 |
);
|
882 |
|
883 |
$html .= "<div id=\"redirect-panel-inside\">";
|
884 |
+
|
885 |
+
// Table
|
886 |
if(Permalink_Manager_Admin_Functions::is_pro_active() && class_exists('Permalink_Manager_Pro_Addons')) {
|
887 |
$html .= Permalink_Manager_Pro_Addons::display_redirect_form($element_id);
|
888 |
} else {
|
889 |
$html .= self::pro_text(true);
|
890 |
}
|
|
|
891 |
|
892 |
+
$html .= "</div></div>";
|
893 |
|
894 |
return $html;
|
895 |
}
|
includes/core/permalink-manager-core-functions.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
|
3 |
/**
|
4 |
-
* Core
|
5 |
*/
|
6 |
class Permalink_Manager_Core_Functions extends Permalink_Manager_Class {
|
7 |
|
@@ -17,6 +17,10 @@ class Permalink_Manager_Core_Functions extends Permalink_Manager_Class {
|
|
17 |
add_filter( 'permalink_manager_filter_final_post_permalink', array($this, 'control_trailing_slashes'), 9);
|
18 |
add_filter( 'permalink_manager_filter_post_sample_uri', array($this, 'control_trailing_slashes'), 9);
|
19 |
|
|
|
|
|
|
|
|
|
20 |
/**
|
21 |
* Detect & canonical URL/redirect functions
|
22 |
*/
|
@@ -50,7 +54,7 @@ class Permalink_Manager_Core_Functions extends Permalink_Manager_Class {
|
|
50 |
* The most important Permalink Manager function
|
51 |
*/
|
52 |
public static function detect_post($query, $request_url = false, $return_object = false) {
|
53 |
-
global $wpdb, $wp, $wp_rewrite, $permalink_manager, $permalink_manager_uris, $wp_filter, $permalink_manager_options, $pm_query;
|
54 |
|
55 |
// Check if the array with custom URIs is set
|
56 |
//if(!(is_array($permalink_manager_uris)) || (empty($query) && empty($request_url))) return $query;
|
@@ -138,13 +142,10 @@ class Permalink_Manager_Core_Functions extends Permalink_Manager_Class {
|
|
138 |
$uri = strtolower(urldecode($uri));
|
139 |
|
140 |
foreach($all_uris as $raw_uri => $uri_id) {
|
141 |
-
$raw_uri = urldecode($raw_uri);
|
142 |
$all_uris[$raw_uri] = $uri_id;
|
143 |
}
|
144 |
|
145 |
-
// Convert array keys lowercase
|
146 |
-
$all_uris = array_change_key_case($all_uris, CASE_LOWER);
|
147 |
-
|
148 |
$element_id = isset($all_uris[$uri]) ? $all_uris[$uri] : $element_id;
|
149 |
}
|
150 |
|
@@ -259,11 +260,6 @@ class Permalink_Manager_Core_Functions extends Permalink_Manager_Class {
|
|
259 |
$query['p'] = $element_id;
|
260 |
$query['preview'] = true;
|
261 |
$query['post_type'] = $post_type;
|
262 |
-
} else if($post_to_load->post_status == 'draft') {
|
263 |
-
$query['pagename'] = '-';
|
264 |
-
$query['error'] = '404';
|
265 |
-
|
266 |
-
$element_id = 0;
|
267 |
} else {
|
268 |
$query = $old_query;
|
269 |
}
|
@@ -345,7 +341,17 @@ class Permalink_Manager_Core_Functions extends Permalink_Manager_Class {
|
|
345 |
}
|
346 |
|
347 |
/**
|
348 |
-
* 6.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
349 |
*/
|
350 |
if(!empty($element_id)) {
|
351 |
$pm_query['id'] = $element_id;
|
@@ -356,7 +362,7 @@ class Permalink_Manager_Core_Functions extends Permalink_Manager_Class {
|
|
356 |
}
|
357 |
|
358 |
/**
|
359 |
-
*
|
360 |
*/
|
361 |
if(!empty($taxonomy)) {
|
362 |
$content_type = "Taxonomy: {$term_taxonomy}";
|
@@ -379,7 +385,7 @@ class Permalink_Manager_Core_Functions extends Permalink_Manager_Class {
|
|
379 |
/**
|
380 |
* Trailing slash & remove BOM and double slashes
|
381 |
*/
|
382 |
-
|
383 |
global $permalink_manager_options;
|
384 |
|
385 |
// Ignore empty permalinks
|
@@ -433,7 +439,7 @@ class Permalink_Manager_Core_Functions extends Permalink_Manager_Class {
|
|
433 |
}
|
434 |
|
435 |
// 5. Block non-existent pages (Force 404 error)
|
436 |
-
if(
|
437 |
$wp_query->is_404 = true;
|
438 |
$wp_query->query = $wp_query->queried_object = $wp_query->queried_object_id = null;
|
439 |
$wp_query->set_404();
|
@@ -450,7 +456,18 @@ class Permalink_Manager_Core_Functions extends Permalink_Manager_Class {
|
|
450 |
* Redirects
|
451 |
*/
|
452 |
function new_uri_redirect_and_404() {
|
453 |
-
global $wp_query, $permalink_manager_uris, $permalink_manager_redirects, $permalink_manager_external_redirects, $permalink_manager_options, $wp, $pm_query;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
454 |
|
455 |
// Get the redirection mode & trailing slashes settings
|
456 |
$redirect_mode = (!empty($permalink_manager_options['general']['redirect'])) ? $permalink_manager_options['general']['redirect'] : false;
|
@@ -458,6 +475,10 @@ class Permalink_Manager_Core_Functions extends Permalink_Manager_Class {
|
|
458 |
$trailing_slashes_redirect_mode = (!empty($permalink_manager_options['general']['trailing_slashes_redirect'])) ? $permalink_manager_options['general']['trailing_slashes_redirect'] : 301;
|
459 |
$redirect_type = '-';
|
460 |
|
|
|
|
|
|
|
|
|
461 |
// Get home URL
|
462 |
$home_url = rtrim(get_option('home'), "/");
|
463 |
$home_dir = parse_url($home_url, PHP_URL_PATH);
|
@@ -465,183 +486,146 @@ class Permalink_Manager_Core_Functions extends Permalink_Manager_Class {
|
|
465 |
// Set up $correct_permalink variable
|
466 |
$correct_permalink = '';
|
467 |
|
468 |
-
// Get query string & URI
|
469 |
-
$query_string = $_SERVER['QUERY_STRING'];
|
470 |
-
$old_uri = $_SERVER['REQUEST_URI'];
|
471 |
-
|
472 |
// Fix for WP installed in directories (remove the directory name from the URI)
|
473 |
if(!empty($home_dir)) {
|
474 |
$home_dir_regex = preg_quote(trim($home_dir), "/");
|
475 |
$old_uri = preg_replace("/{$home_dir_regex}/", "", $old_uri, 1);
|
476 |
}
|
477 |
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
$wp_query->is_404 = false;
|
484 |
-
}
|
485 |
-
|
486 |
-
// Sometimes $wp_query indicates the wrong object if requested directly
|
487 |
-
$queried_object = get_queried_object();
|
488 |
-
|
489 |
-
/**
|
490 |
-
* 1A. External redirect
|
491 |
-
*/
|
492 |
-
if(!empty($pm_query['id']) && !empty($permalink_manager_external_redirects[$pm_query['id']])) {
|
493 |
-
$external_url = $permalink_manager_external_redirects[$pm_query['id']];
|
494 |
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
|
499 |
-
|
500 |
-
|
501 |
-
}
|
502 |
}
|
|
|
503 |
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
$endpoint_value = $pm_query['endpoint_value'];
|
510 |
-
|
511 |
-
// Make sure that URIs with non-ASCII characters are also detected + Check the URLs that end with number
|
512 |
-
$decoded_url = urldecode($uri);
|
513 |
-
$endpoint_url = "{$uri}/{$endpoint_value}";
|
514 |
|
515 |
-
|
516 |
-
|
517 |
-
if(!is_array($redirects)) { continue; }
|
518 |
|
519 |
-
|
|
|
|
|
520 |
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
}
|
530 |
}
|
531 |
}
|
532 |
-
|
533 |
-
$redirect_type = (!empty($correct_permalink)) ? 'custom_redirect' : $redirect_type;
|
534 |
}
|
535 |
|
536 |
-
|
537 |
-
|
538 |
|
539 |
-
|
540 |
-
|
541 |
-
*/
|
542 |
-
if(empty($wp_query->query_vars['do_not_redirect']) && $redirect_mode && !empty($queried_object) && empty($correct_permalink)) {
|
543 |
|
544 |
-
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
return '';
|
549 |
-
}
|
550 |
|
551 |
-
|
552 |
-
|
|
|
|
|
|
|
|
|
553 |
|
554 |
-
|
555 |
-
|
556 |
-
}
|
557 |
-
// Affect only terms with custom URI and old URIs
|
558 |
-
else if(!empty($queried_object->term_id) && isset($permalink_manager_uris["tax-{$queried_object->term_id}"]) && defined('PERMALINK_MANAGER_PRO')) {
|
559 |
-
// Check if taxonomy is allowed
|
560 |
-
if(Permalink_Manager_Helper_Functions::is_disabled($queried_object->taxonomy, "taxonomy")) { return ''; }
|
561 |
|
562 |
-
|
563 |
-
|
564 |
-
|
|
|
|
|
|
|
|
|
565 |
|
566 |
-
|
567 |
-
|
|
|
568 |
|
569 |
-
|
570 |
-
|
571 |
-
*/
|
572 |
-
if($trailing_slashes_mode && empty($_SERVER['QUERY_STRING']) && !empty($_SERVER['REQUEST_URI'])) {
|
573 |
-
// Check if $old_uri ends with slash or not
|
574 |
-
$ends_with_slash = (substr($old_uri, -1) == "/") ? true : false;
|
575 |
-
$trailing_slashes_mode = (preg_match("/.*\.([a-zA-Z]{3,4})\/?$/", $old_uri) && $trailing_slashes_mode == 10) ? 20 : $trailing_slashes_mode;
|
576 |
-
|
577 |
-
// Ignore empty URIs
|
578 |
-
if($old_uri != "/") {
|
579 |
-
// Remove the trailing slashes (and add them again if needed below)
|
580 |
-
$old_uri = trim($old_uri, "/");
|
581 |
-
$correct_permalink = (!empty($correct_permalink)) ? trim($correct_permalink, "/") : "";
|
582 |
-
|
583 |
-
// 2A. Force trailing slashes
|
584 |
-
if($trailing_slashes_mode == 10 && $ends_with_slash == false) {
|
585 |
-
$correct_permalink = (!empty($correct_permalink)) ? "{$correct_permalink}/" : "{$home_url}/{$old_uri}/";
|
586 |
-
}
|
587 |
-
// 2B. Remove trailing slashes
|
588 |
-
else if($trailing_slashes_mode == 20 && $ends_with_slash == true) {
|
589 |
-
$correct_permalink = (!empty($correct_permalink)) ? $correct_permalink : "{$home_url}/{$old_uri}";
|
590 |
-
$correct_permalink = trim($correct_permalink, "/");
|
591 |
-
}
|
592 |
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
597 |
}
|
598 |
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
* 3. Check if URL contains duplicated slashes
|
604 |
-
*/
|
605 |
-
if(!empty($old_uri) && ($old_uri != '/') && preg_match('/\/{2,}/', $old_uri)) {
|
606 |
-
$new_uri = ltrim(preg_replace('/([^:])([\/]+)/', '$1/', $old_uri), "/");
|
607 |
-
$correct_permalink = "{$home_url}/{$new_uri}";
|
608 |
}
|
609 |
|
610 |
-
|
611 |
-
|
612 |
-
*/
|
613 |
-
if(!empty($correct_permalink) && is_string($correct_permalink) && !empty($wp->request) && !empty($redirect_type) && $redirect_type !== 'slash_redirect') {
|
614 |
-
$current_uri = trim($wp->request, "/");
|
615 |
-
$redirect_uri = trim(parse_url($correct_permalink, PHP_URL_PATH), "/");
|
616 |
|
617 |
-
|
618 |
-
|
619 |
-
|
620 |
-
|
|
|
|
|
621 |
}
|
622 |
|
623 |
/**
|
624 |
-
*
|
625 |
*/
|
626 |
-
|
627 |
-
$
|
628 |
-
$
|
629 |
-
$home_url_has_ssl = (strpos($home_url, 'https') !== false) ? true : false;
|
630 |
-
$requested_url_has_ssl = is_ssl();
|
631 |
|
632 |
-
|
633 |
-
$correct_permalink = "{$home_url}/{$old_uri}";
|
634 |
-
$redirect_type = 'www_redirect';
|
635 |
-
}
|
636 |
}
|
637 |
|
638 |
/**
|
639 |
-
*
|
640 |
*/
|
641 |
$correct_permalink = apply_filters('permalink_manager_filter_redirect', $correct_permalink, $redirect_type, $queried_object);
|
642 |
|
643 |
/**
|
644 |
-
*
|
645 |
*/
|
646 |
if(!empty($correct_permalink) && is_string($correct_permalink) && !empty($redirect_mode)) {
|
647 |
// Allow redirect
|
@@ -650,10 +634,10 @@ class Permalink_Manager_Core_Functions extends Permalink_Manager_Class {
|
|
650 |
// Append query string
|
651 |
$correct_permalink = (!empty($query_string)) ? sprintf("%s?%s", strtok($correct_permalink, "?"), $query_string) : $correct_permalink;
|
652 |
|
653 |
-
//
|
654 |
-
$correct_permalink =
|
655 |
|
656 |
-
wp_safe_redirect($correct_permalink, $redirect_mode
|
657 |
exit();
|
658 |
}
|
659 |
}
|
@@ -711,4 +695,29 @@ class Permalink_Manager_Core_Functions extends Permalink_Manager_Class {
|
|
711 |
}
|
712 |
}
|
713 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
714 |
}
|
1 |
<?php
|
2 |
|
3 |
/**
|
4 |
+
* Core function
|
5 |
*/
|
6 |
class Permalink_Manager_Core_Functions extends Permalink_Manager_Class {
|
7 |
|
17 |
add_filter( 'permalink_manager_filter_final_post_permalink', array($this, 'control_trailing_slashes'), 9);
|
18 |
add_filter( 'permalink_manager_filter_post_sample_uri', array($this, 'control_trailing_slashes'), 9);
|
19 |
|
20 |
+
// Replace empty placeholder tags & remove BOM
|
21 |
+
add_filter( 'permalink_manager_filter_default_post_uri', array($this, 'replace_empty_placeholder_tags'), 10, 5 );
|
22 |
+
add_filter( 'permalink_manager_filter_default_term_uri', array($this, 'replace_empty_placeholder_tags'), 10, 5 );
|
23 |
+
|
24 |
/**
|
25 |
* Detect & canonical URL/redirect functions
|
26 |
*/
|
54 |
* The most important Permalink Manager function
|
55 |
*/
|
56 |
public static function detect_post($query, $request_url = false, $return_object = false) {
|
57 |
+
global $wpdb, $wp, $wp_rewrite, $permalink_manager, $permalink_manager_uris, $wp_filter, $permalink_manager_options, $pm_query, $pm_uri_parts;
|
58 |
|
59 |
// Check if the array with custom URIs is set
|
60 |
//if(!(is_array($permalink_manager_uris)) || (empty($query) && empty($request_url))) return $query;
|
142 |
$uri = strtolower(urldecode($uri));
|
143 |
|
144 |
foreach($all_uris as $raw_uri => $uri_id) {
|
145 |
+
$raw_uri = strtolower(urldecode($raw_uri));
|
146 |
$all_uris[$raw_uri] = $uri_id;
|
147 |
}
|
148 |
|
|
|
|
|
|
|
149 |
$element_id = isset($all_uris[$uri]) ? $all_uris[$uri] : $element_id;
|
150 |
}
|
151 |
|
260 |
$query['p'] = $element_id;
|
261 |
$query['preview'] = true;
|
262 |
$query['post_type'] = $post_type;
|
|
|
|
|
|
|
|
|
|
|
263 |
} else {
|
264 |
$query = $old_query;
|
265 |
}
|
341 |
}
|
342 |
|
343 |
/**
|
344 |
+
* 6. WWW prefix mismatch detect
|
345 |
+
*/
|
346 |
+
$home_url_has_www = (strpos($raw_home_url, 'www.') !== false) ? true : false;
|
347 |
+
$requested_url_has_www = (strpos($_SERVER['HTTP_HOST'], 'www.') !== false) ? true : false;
|
348 |
+
|
349 |
+
if($home_url_has_www != $requested_url_has_www) {
|
350 |
+
unset($query['do_not_redirect']);
|
351 |
+
}
|
352 |
+
|
353 |
+
/**
|
354 |
+
* 7. Set global with detected item id
|
355 |
*/
|
356 |
if(!empty($element_id)) {
|
357 |
$pm_query['id'] = $element_id;
|
362 |
}
|
363 |
|
364 |
/**
|
365 |
+
* 8. Debug data
|
366 |
*/
|
367 |
if(!empty($taxonomy)) {
|
368 |
$content_type = "Taxonomy: {$term_taxonomy}";
|
385 |
/**
|
386 |
* Trailing slash & remove BOM and double slashes
|
387 |
*/
|
388 |
+
function control_trailing_slashes($permalink) {
|
389 |
global $permalink_manager_options;
|
390 |
|
391 |
// Ignore empty permalinks
|
439 |
}
|
440 |
|
441 |
// 5. Block non-existent pages (Force 404 error)
|
442 |
+
if($is_404) {
|
443 |
$wp_query->is_404 = true;
|
444 |
$wp_query->query = $wp_query->queried_object = $wp_query->queried_object_id = null;
|
445 |
$wp_query->set_404();
|
456 |
* Redirects
|
457 |
*/
|
458 |
function new_uri_redirect_and_404() {
|
459 |
+
global $wp_query, $permalink_manager_uris, $permalink_manager_redirects, $permalink_manager_external_redirects, $permalink_manager_options, $wp, $pm_query, $pm_uri_parts;
|
460 |
+
|
461 |
+
// Do not redirect on author pages & front page
|
462 |
+
if(is_author() || is_front_page() || is_home() || is_feed()) { return false; }
|
463 |
+
|
464 |
+
// Unset 404 if custom URI is detected
|
465 |
+
if(isset($pm_query['id'])) {
|
466 |
+
$wp_query->is_404 = false;
|
467 |
+
}
|
468 |
+
|
469 |
+
// Sometimes $wp_query indicates the wrong object if requested directly
|
470 |
+
$queried_object = get_queried_object();
|
471 |
|
472 |
// Get the redirection mode & trailing slashes settings
|
473 |
$redirect_mode = (!empty($permalink_manager_options['general']['redirect'])) ? $permalink_manager_options['general']['redirect'] : 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 query string & URI
|
479 |
+
$query_string = $_SERVER['QUERY_STRING'];
|
480 |
+
$old_uri = $_SERVER['REQUEST_URI'];
|
481 |
+
|
482 |
// Get home URL
|
483 |
$home_url = rtrim(get_option('home'), "/");
|
484 |
$home_dir = parse_url($home_url, PHP_URL_PATH);
|
486 |
// Set up $correct_permalink variable
|
487 |
$correct_permalink = '';
|
488 |
|
|
|
|
|
|
|
|
|
489 |
// Fix for WP installed in directories (remove the directory name from the URI)
|
490 |
if(!empty($home_dir)) {
|
491 |
$home_dir_regex = preg_quote(trim($home_dir), "/");
|
492 |
$old_uri = preg_replace("/{$home_dir_regex}/", "", $old_uri, 1);
|
493 |
}
|
494 |
|
495 |
+
/**
|
496 |
+
* 1A. External redirect
|
497 |
+
*/
|
498 |
+
if(!empty($pm_query['id']) && !empty($permalink_manager_external_redirects[$pm_query['id']])) {
|
499 |
+
$external_url = $permalink_manager_external_redirects[$pm_query['id']];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
500 |
|
501 |
+
if(filter_var($external_url, FILTER_VALIDATE_URL)) {
|
502 |
+
// Allow redirect
|
503 |
+
$wp_query->query_vars['do_not_redirect'] = 0;
|
504 |
|
505 |
+
wp_redirect($external_url, 301);
|
506 |
+
exit();
|
|
|
507 |
}
|
508 |
+
}
|
509 |
|
510 |
+
/**
|
511 |
+
* 1B. Custom redirects
|
512 |
+
*/
|
513 |
+
if(empty($wp_query->query_vars['do_not_redirect']) && !empty($permalink_manager_redirects) && is_array($permalink_manager_redirects) && !empty($wp->request) && !empty($pm_query['uri'])) {
|
514 |
+
$uri = $pm_query['uri'];
|
|
|
|
|
|
|
|
|
|
|
515 |
|
516 |
+
// Make sure that URIs with non-ASCII characters are also detected
|
517 |
+
$decoded_url = urldecode($uri);
|
|
|
518 |
|
519 |
+
// Check if the URI is not assigned to any post/term's redirects
|
520 |
+
foreach($permalink_manager_redirects as $element => $redirects) {
|
521 |
+
if(is_array($redirects) && (in_array($uri, $redirects) || in_array($decoded_url, $redirects))) {
|
522 |
|
523 |
+
// Post is detected
|
524 |
+
if(is_numeric($element)) {
|
525 |
+
$correct_permalink = get_permalink($element);
|
526 |
+
}
|
527 |
+
// Term is detected
|
528 |
+
else {
|
529 |
+
$term_id = intval(preg_replace("/[^0-9]/", "", $element));
|
530 |
+
$correct_permalink = get_term_link($term_id);
|
|
|
531 |
}
|
532 |
}
|
|
|
|
|
533 |
}
|
534 |
|
535 |
+
$redirect_type = (!empty($correct_permalink)) ? 'custom_redirect' : $redirect_type;
|
536 |
+
}
|
537 |
|
538 |
+
// Ignore WP-Content links
|
539 |
+
if(!empty($_SERVER['REQUEST_URI']) && (strpos($_SERVER['REQUEST_URI'], '/wp-content') !== false)) { return false; }
|
|
|
|
|
540 |
|
541 |
+
/**
|
542 |
+
* 1C. Enhance native redirect
|
543 |
+
*/
|
544 |
+
if(empty($wp_query->query_vars['do_not_redirect']) && $redirect_mode && !empty($queried_object) && empty($correct_permalink)) {
|
|
|
|
|
545 |
|
546 |
+
// Affect only posts with custom URI and old URIs
|
547 |
+
if(!empty($queried_object->ID) && isset($permalink_manager_uris[$queried_object->ID]) && empty($wp_query->query['preview'])) {
|
548 |
+
// Ignore posts with specific statuses
|
549 |
+
if(!(empty($queried_object->post_status)) && in_array($queried_object->post_status, array('draft', 'pending', 'auto-draft', 'future'))) {
|
550 |
+
return '';
|
551 |
+
}
|
552 |
|
553 |
+
// Check if post type is allowed
|
554 |
+
if(Permalink_Manager_Helper_Functions::is_disabled($queried_object->post_type, 'post_type')) { return ''; }
|
|
|
|
|
|
|
|
|
|
|
555 |
|
556 |
+
// Get the real URL
|
557 |
+
$correct_permalink = get_permalink($queried_object->ID);
|
558 |
+
}
|
559 |
+
// Affect only terms with custom URI and old URIs
|
560 |
+
else if(!empty($queried_object->term_id) && isset($permalink_manager_uris["tax-{$queried_object->term_id}"]) && defined('PERMALINK_MANAGER_PRO')) {
|
561 |
+
// Check if taxonomy is allowed
|
562 |
+
if(Permalink_Manager_Helper_Functions::is_disabled($queried_object->taxonomy, "taxonomy")) { return ''; }
|
563 |
|
564 |
+
// Get the real URL
|
565 |
+
$correct_permalink = get_term_link($queried_object->term_id, $queried_object->taxonomy);
|
566 |
+
}
|
567 |
|
568 |
+
$redirect_type = (!empty($correct_permalink)) ? 'native_redirect' : $redirect_type;
|
569 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
570 |
|
571 |
+
/**
|
572 |
+
* 2. Check trailing slashes (ignore links with query parameters)
|
573 |
+
*/
|
574 |
+
if($trailing_slashes_mode && empty($_SERVER['QUERY_STRING']) && !empty($_SERVER['REQUEST_URI'])) {
|
575 |
+
// Check if $old_uri ends with slash or not
|
576 |
+
$ends_with_slash = (substr($old_uri, -1) == "/") ? true : false;
|
577 |
+
$trailing_slashes_mode = (preg_match("/.*\.([a-zA-Z]{3,4})\/?$/", $old_uri) && $trailing_slashes_mode == 10) ? 20 : $trailing_slashes_mode;
|
578 |
+
|
579 |
+
// Ignore empty URIs
|
580 |
+
if($old_uri != "/") {
|
581 |
+
// Remove the trailing slashes (and add them again if needed below)
|
582 |
+
$old_uri = trim($old_uri, "/");
|
583 |
+
$correct_permalink = (!empty($correct_permalink)) ? trim($correct_permalink, "/") : "";
|
584 |
+
|
585 |
+
// 2A. Force trailing slashes
|
586 |
+
if($trailing_slashes_mode == 10 && $ends_with_slash == false) {
|
587 |
+
$correct_permalink = (!empty($correct_permalink)) ? "{$correct_permalink}/" : "{$home_url}/{$old_uri}/";
|
588 |
+
}
|
589 |
+
// 2B. Remove trailing slashes
|
590 |
+
else if($trailing_slashes_mode == 20 && $ends_with_slash == true) {
|
591 |
+
$correct_permalink = (!empty($correct_permalink)) ? $correct_permalink : "{$home_url}/{$old_uri}";
|
592 |
+
$correct_permalink = trim($correct_permalink, "/");
|
593 |
}
|
594 |
|
595 |
+
// Use redirect mode set for trailing slash redirect
|
596 |
+
if(($trailing_slashes_mode == 20 && $ends_with_slash == true) || ($trailing_slashes_mode == 10 && $ends_with_slash == false)) {
|
597 |
+
$redirect_mode = $trailing_slashes_redirect_mode;
|
598 |
+
}
|
|
|
|
|
|
|
|
|
|
|
599 |
}
|
600 |
|
601 |
+
$redirect_type = (!empty($correct_permalink)) ? 'slash_redirect' : '-';
|
602 |
+
}
|
|
|
|
|
|
|
|
|
603 |
|
604 |
+
/**
|
605 |
+
* 3. Check if URL contains duplicated slashes
|
606 |
+
*/
|
607 |
+
if(!empty($old_uri) && ($old_uri != '/') && preg_match('/\/{2,}/', $old_uri)) {
|
608 |
+
$new_uri = ltrim(preg_replace('/([^:])([\/]+)/', '$1/', $old_uri), "/");
|
609 |
+
$correct_permalink = "{$home_url}/{$new_uri}";
|
610 |
}
|
611 |
|
612 |
/**
|
613 |
+
* 4. Prevent redirect loop
|
614 |
*/
|
615 |
+
if(!empty($correct_permalink) && is_string($correct_permalink) && !empty($wp->request) && !empty($redirect_type) && $redirect_type != 'slash_redirect') {
|
616 |
+
$current_uri = trim($wp->request, "/");
|
617 |
+
$redirect_uri = trim(parse_url($correct_permalink, PHP_URL_PATH), "/");
|
|
|
|
|
618 |
|
619 |
+
$correct_permalink = ($redirect_uri == $current_uri) ? null : $correct_permalink;
|
|
|
|
|
|
|
620 |
}
|
621 |
|
622 |
/**
|
623 |
+
* 5. Debug redirect
|
624 |
*/
|
625 |
$correct_permalink = apply_filters('permalink_manager_filter_redirect', $correct_permalink, $redirect_type, $queried_object);
|
626 |
|
627 |
/**
|
628 |
+
* 6. Ignore default URIs (or do nothing if redirects are disabled)
|
629 |
*/
|
630 |
if(!empty($correct_permalink) && is_string($correct_permalink) && !empty($redirect_mode)) {
|
631 |
// Allow redirect
|
634 |
// Append query string
|
635 |
$correct_permalink = (!empty($query_string)) ? sprintf("%s?%s", strtok($correct_permalink, "?"), $query_string) : $correct_permalink;
|
636 |
|
637 |
+
// Remove double slash
|
638 |
+
$correct_permalink = preg_replace('~(?<!https:|http:)[/\\\\]+~', "/", trim($correct_permalink));
|
639 |
|
640 |
+
wp_safe_redirect($correct_permalink, $redirect_mode);
|
641 |
exit();
|
642 |
}
|
643 |
}
|
695 |
}
|
696 |
}
|
697 |
|
698 |
+
/**
|
699 |
+
* Replace empty placeholder tags & remove BOM
|
700 |
+
*/
|
701 |
+
public static function replace_empty_placeholder_tags($default_uri, $native_slug = "", $element = "", $slug = "", $native_uri = "") {
|
702 |
+
// Do not affect native URIs
|
703 |
+
if($native_uri == true) { return $default_uri; }
|
704 |
+
|
705 |
+
// Remove the BOM
|
706 |
+
$default_uri = str_replace(array("\xEF\xBB\xBF", "%ef%bb%bf"), '', $default_uri);
|
707 |
+
|
708 |
+
// Encode the URI before placeholders are removed
|
709 |
+
$chunks = explode('/', $default_uri);
|
710 |
+
foreach ($chunks as &$chunk) {
|
711 |
+
if(preg_match("/^(%.+?%)$/", $chunk) == false) {
|
712 |
+
$chunk = urldecode($chunk);
|
713 |
+
}
|
714 |
+
}
|
715 |
+
$default_uri = implode("/", $chunks);
|
716 |
+
|
717 |
+
$empty_tag_replacement = apply_filters('permalink_manager_empty_tag_replacement', null, $element);
|
718 |
+
$default_uri = ($empty_tag_replacement || is_null($empty_tag_replacement)) ? str_replace("//", "/", preg_replace("/%(.+?)%/", $empty_tag_replacement, $default_uri)) : $default_uri;
|
719 |
+
|
720 |
+
return trim($default_uri, "/");
|
721 |
+
}
|
722 |
+
|
723 |
}
|
includes/core/permalink-manager-helper-functions.php
CHANGED
@@ -10,13 +10,9 @@ class Permalink_Manager_Helper_Functions extends Permalink_Manager_Class {
|
|
10 |
}
|
11 |
|
12 |
public function init() {
|
13 |
-
// Replace empty placeholder tags & remove BOM
|
14 |
-
add_filter( 'permalink_manager_filter_default_post_uri', array($this, 'replace_empty_placeholder_tags'), 10, 5);
|
15 |
-
add_filter( 'permalink_manager_filter_default_term_uri', array($this, 'replace_empty_placeholder_tags'), 10, 5);
|
16 |
-
|
17 |
// Clear the final default URIs
|
18 |
-
add_filter( 'permalink_manager_filter_default_term_uri', array(
|
19 |
-
add_filter( 'permalink_manager_filter_default_post_uri', array(
|
20 |
}
|
21 |
|
22 |
/**
|
@@ -44,20 +40,15 @@ class Permalink_Manager_Helper_Functions extends Permalink_Manager_Class {
|
|
44 |
|
45 |
$primary_term_enabled = apply_filters('permalink_manager_primary_term', true);
|
46 |
|
47 |
-
if(
|
48 |
-
|
49 |
-
if(class_exists('WPSEO_Primary_Term')) {
|
50 |
$primary_term = new WPSEO_Primary_Term($taxonomy, $post_id);
|
51 |
$primary_term = get_term($primary_term->get_primary_term());
|
52 |
-
} else if(function_exists('the_seo_framework')) {
|
53 |
-
$primary_term = the_seo_framework()->get_primary_term($post_id, $taxonomy);
|
54 |
-
}
|
55 |
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
return;
|
60 |
}
|
|
|
61 |
}
|
62 |
|
63 |
/**
|
@@ -451,62 +442,40 @@ class Permalink_Manager_Helper_Functions extends Permalink_Manager_Class {
|
|
451 |
|
452 |
// $clean = iconv('UTF-8', 'ASCII//TRANSLIT', $clean);
|
453 |
$percent_sign = ($keep_percent_sign) ? "\%" : "";
|
454 |
-
$clean = preg_replace("/[^\p{Thai}\p{Xwd}\p{Hebrew}a-zA-Z0-9{$percent_sign}\/_
|
455 |
$clean = ($force_lowercase) ? strtolower(trim($clean, '-')) : trim($clean, '-');
|
456 |
|
457 |
// Remove special characters
|
458 |
if($sanitize_slugs !== false) {
|
459 |
$clean = preg_replace("/[\s_|+-]+/", "-", $clean);
|
460 |
-
$clean = preg_replace("/[,]+/", "", $clean);
|
461 |
$clean = preg_replace('/([\.]+)(?![a-z]{3,4}$)/i', '', $clean);
|
462 |
$clean = preg_replace('/([-\s+]\/[-\s+])/', '-', $clean);
|
463 |
} else {
|
464 |
$clean = preg_replace("/[\s]+/", "-", $clean);
|
465 |
}
|
466 |
|
467 |
-
// Remove trailing slashes
|
468 |
-
$clean = str_replace(array('-/', '/-', '//'), '/', $clean);
|
469 |
-
|
470 |
return $clean;
|
471 |
}
|
472 |
|
473 |
/**
|
474 |
-
*
|
475 |
-
*/
|
476 |
-
public static function replace_empty_placeholder_tags($default_uri, $native_slug = "", $element = "", $slug = "", $native_uri = "") {
|
477 |
-
// Do not affect native URIs
|
478 |
-
if($native_uri == true) { return $default_uri; }
|
479 |
-
|
480 |
-
// Remove the BOM
|
481 |
-
$default_uri = str_replace(array("\xEF\xBB\xBF", "%ef%bb%bf"), '', $default_uri);
|
482 |
-
|
483 |
-
// Encode the URI before placeholders are removed
|
484 |
-
$chunks = explode('/', $default_uri);
|
485 |
-
foreach ($chunks as &$chunk) {
|
486 |
-
if(preg_match("/^(%.+?%)$/", $chunk) == false) {
|
487 |
-
$chunk = rawurldecode($chunk);
|
488 |
-
}
|
489 |
-
}
|
490 |
-
$default_uri = implode("/", $chunks);
|
491 |
-
|
492 |
-
$empty_tag_replacement = apply_filters('permalink_manager_empty_tag_replacement', null, $element);
|
493 |
-
$default_uri = ($empty_tag_replacement || is_null($empty_tag_replacement)) ? str_replace("//", "/", preg_replace("/%(.+?)%/", $empty_tag_replacement, $default_uri)) : $default_uri;
|
494 |
-
|
495 |
-
return trim($default_uri, "/");
|
496 |
-
}
|
497 |
-
|
498 |
-
/**
|
499 |
-
* Clear/Sanitize the URI
|
500 |
*/
|
501 |
public static function clear_single_uri($uri) {
|
502 |
-
|
|
|
|
|
|
|
|
|
|
|
503 |
}
|
504 |
|
505 |
/**
|
506 |
* Remove all slashes
|
507 |
*/
|
508 |
public static function remove_slashes($uri) {
|
509 |
-
|
|
|
|
|
510 |
}
|
511 |
|
512 |
/**
|
@@ -519,6 +488,10 @@ class Permalink_Manager_Helper_Functions extends Permalink_Manager_Class {
|
|
519 |
$force_custom_slugs = apply_filters('permalink_manager_force_custom_slugs', $force_custom_slugs, $slug, $object);
|
520 |
|
521 |
if($force_custom_slugs) {
|
|
|
|
|
|
|
|
|
522 |
$title = (!empty($object->name)) ? $object->name : $object->post_title;
|
523 |
$title = self::remove_slashes($title);
|
524 |
|
10 |
}
|
11 |
|
12 |
public function init() {
|
|
|
|
|
|
|
|
|
13 |
// Clear the final default URIs
|
14 |
+
add_filter( 'permalink_manager_filter_default_term_uri', array('Permalink_Manager_Helper_Functions', 'clear_single_uri'), 20);
|
15 |
+
add_filter( 'permalink_manager_filter_default_post_uri', array('Permalink_Manager_Helper_Functions', 'clear_single_uri'), 20);
|
16 |
}
|
17 |
|
18 |
/**
|
40 |
|
41 |
$primary_term_enabled = apply_filters('permalink_manager_primary_term', true);
|
42 |
|
43 |
+
if($primary_term_enabled && class_exists('WPSEO_Primary_Term')) {
|
|
|
|
|
44 |
$primary_term = new WPSEO_Primary_Term($taxonomy, $post_id);
|
45 |
$primary_term = get_term($primary_term->get_primary_term());
|
|
|
|
|
|
|
46 |
|
47 |
+
if(!is_wp_error($primary_term)) {
|
48 |
+
return ($slug_only) ? $primary_term->slug : $primary_term;
|
49 |
+
}
|
|
|
50 |
}
|
51 |
+
return '';
|
52 |
}
|
53 |
|
54 |
/**
|
442 |
|
443 |
// $clean = iconv('UTF-8', 'ASCII//TRANSLIT', $clean);
|
444 |
$percent_sign = ($keep_percent_sign) ? "\%" : "";
|
445 |
+
$clean = preg_replace("/[^\p{Thai}\p{Xwd}\p{Hebrew}a-zA-Z0-9{$percent_sign}\/_\.|+ -]/u", '', $clean);
|
446 |
$clean = ($force_lowercase) ? strtolower(trim($clean, '-')) : trim($clean, '-');
|
447 |
|
448 |
// Remove special characters
|
449 |
if($sanitize_slugs !== false) {
|
450 |
$clean = preg_replace("/[\s_|+-]+/", "-", $clean);
|
|
|
451 |
$clean = preg_replace('/([\.]+)(?![a-z]{3,4}$)/i', '', $clean);
|
452 |
$clean = preg_replace('/([-\s+]\/[-\s+])/', '-', $clean);
|
453 |
} else {
|
454 |
$clean = preg_replace("/[\s]+/", "-", $clean);
|
455 |
}
|
456 |
|
|
|
|
|
|
|
457 |
return $clean;
|
458 |
}
|
459 |
|
460 |
/**
|
461 |
+
* Clear the URI
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
462 |
*/
|
463 |
public static function clear_single_uri($uri) {
|
464 |
+
$uri = preg_replace("/[\s_|+-]+/", "-", $uri);
|
465 |
+
$uri = preg_replace('/([-\s+]\/[-\s+])/', '-', $uri);
|
466 |
+
$uri = str_replace(array('-/', '/-', '//'), '/', $uri);
|
467 |
+
$uri = trim($uri, "/");
|
468 |
+
|
469 |
+
return $uri;
|
470 |
}
|
471 |
|
472 |
/**
|
473 |
* Remove all slashes
|
474 |
*/
|
475 |
public static function remove_slashes($uri) {
|
476 |
+
$uri = preg_replace("/[\/]+/", "", $uri);
|
477 |
+
|
478 |
+
return $uri;
|
479 |
}
|
480 |
|
481 |
/**
|
488 |
$force_custom_slugs = apply_filters('permalink_manager_force_custom_slugs', $force_custom_slugs, $slug, $object);
|
489 |
|
490 |
if($force_custom_slugs) {
|
491 |
+
// Decode URI-encoded characters
|
492 |
+
//$slug = urldecode($slug);
|
493 |
+
//$title = urldecode($title);
|
494 |
+
|
495 |
$title = (!empty($object->name)) ? $object->name : $object->post_title;
|
496 |
$title = self::remove_slashes($title);
|
497 |
|
includes/core/permalink-manager-third-parties.php
CHANGED
@@ -174,10 +174,6 @@ class Permalink_Manager_Third_Parties extends Permalink_Manager_Class {
|
|
174 |
else if(!empty($query_vars['WP_Route'])) {
|
175 |
$wp_query->query_vars['do_not_redirect'] = 1;
|
176 |
}
|
177 |
-
// WooCommerce Wishlist
|
178 |
-
else if(!empty($query_vars['wishlist-action'])) {
|
179 |
-
$wp_query->query_vars['do_not_redirect'] = 1;
|
180 |
-
}
|
181 |
}
|
182 |
}
|
183 |
|
@@ -189,8 +185,7 @@ class Permalink_Manager_Third_Parties extends Permalink_Manager_Class {
|
|
189 |
|
190 |
// Fallback
|
191 |
if(is_string($element) && strpos($element, 'tax-') !== false) {
|
192 |
-
$
|
193 |
-
$element = get_term($element_id);
|
194 |
} else if(is_numeric($element)) {
|
195 |
$element = get_post($element);
|
196 |
}
|
@@ -289,7 +284,6 @@ class Permalink_Manager_Third_Parties extends Permalink_Manager_Class {
|
|
289 |
$element = get_term($item_id);
|
290 |
if(!empty($element) && !is_wp_error($element)) {
|
291 |
$element_id = $element->term_taxonomy_id;
|
292 |
-
$element_type = $element->taxonomy;
|
293 |
} else {
|
294 |
return false;
|
295 |
}
|
@@ -297,8 +291,8 @@ class Permalink_Manager_Third_Parties extends Permalink_Manager_Class {
|
|
297 |
$element = get_post($item_id);
|
298 |
|
299 |
if(!empty($element->post_type)) {
|
300 |
-
$element_id = $item_id;
|
301 |
$element_type = $element->post_type;
|
|
|
302 |
}
|
303 |
}
|
304 |
|
@@ -308,7 +302,7 @@ class Permalink_Manager_Third_Parties extends Permalink_Manager_Class {
|
|
308 |
$language_code = self::get_language_code($element);
|
309 |
|
310 |
if(!empty($uri_parts['lang']) && ($uri_parts['lang'] != $language_code)) {
|
311 |
-
$wpml_item_id = apply_filters('wpml_object_id', $element_id
|
312 |
$item_id = (is_numeric($wpml_item_id)) ? $wpml_item_id : $item_id;
|
313 |
}
|
314 |
|
@@ -661,13 +655,11 @@ class Permalink_Manager_Third_Parties extends Permalink_Manager_Class {
|
|
661 |
|
662 |
if(!empty($object)) {
|
663 |
$product_id = $object->get_id();
|
|
|
664 |
|
665 |
-
|
666 |
-
if(empty($permalink_manager_uris[$product_id]) && $object->get_type() !== 'variation') {
|
667 |
-
$permalink_manager_uris[$product_id] = Permalink_Manager_URI_Functions_Post::get_default_post_uri($product_id, false, true);
|
668 |
|
669 |
-
|
670 |
-
}
|
671 |
}
|
672 |
}
|
673 |
|
@@ -689,7 +681,7 @@ class Permalink_Manager_Third_Parties extends Permalink_Manager_Class {
|
|
689 |
$home_url = WPSEO_Utils::home_url();
|
690 |
$home_protocol = parse_url($home_url, PHP_URL_SCHEME);
|
691 |
|
692 |
-
$permalink = preg_replace("
|
693 |
}
|
694 |
|
695 |
return $permalink;
|
@@ -697,97 +689,100 @@ class Permalink_Manager_Third_Parties extends Permalink_Manager_Class {
|
|
697 |
|
698 |
function yoast_fix_breadcrumbs($links) {
|
699 |
// Get post type permastructure settings
|
700 |
-
global $permalink_manager_uris, $permalink_manager_options, $post, $wpdb, $wp;
|
701 |
|
702 |
-
// Check if
|
703 |
if(empty($permalink_manager_options['general']['yoast_breadcrumbs']) || empty($permalink_manager_uris)) { return $links; }
|
704 |
|
705 |
-
// Get
|
706 |
-
$
|
707 |
-
|
708 |
-
|
709 |
-
|
710 |
-
$
|
711 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
712 |
|
713 |
-
|
714 |
-
|
715 |
-
$
|
716 |
-
|
717 |
-
$custom_uri = trim(preg_replace("/([^\/]+)$/", '', $wp->request), "/");
|
718 |
-
}
|
719 |
|
720 |
-
|
721 |
-
|
722 |
-
$breadcrumbs = array();
|
723 |
-
$snowball = '';
|
724 |
-
$available_taxonomies = Permalink_Manager_Helper_Functions::get_taxonomies_array();
|
725 |
-
$available_post_types = Permalink_Manager_Helper_Functions::get_post_types_array();
|
726 |
|
727 |
-
|
728 |
-
|
|
|
729 |
|
730 |
-
|
731 |
-
|
732 |
-
if(empty($slug)) { continue; }
|
733 |
|
734 |
-
|
735 |
|
736 |
-
|
737 |
-
|
738 |
-
|
739 |
-
|
740 |
|
741 |
-
|
742 |
-
|
743 |
-
|
744 |
-
|
745 |
-
|
746 |
}
|
747 |
-
}
|
748 |
-
|
749 |
-
// 1B. Try to get term
|
750 |
-
if(empty($element) && !empty($available_taxonomies)) {
|
751 |
-
$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)));
|
752 |
-
|
753 |
-
$element = $wpdb->get_row($sql);
|
754 |
-
}
|
755 |
|
756 |
-
|
757 |
-
|
758 |
-
|
759 |
|
760 |
-
|
761 |
-
|
762 |
|
763 |
-
|
764 |
-
|
765 |
-
|
766 |
|
767 |
-
|
768 |
-
|
769 |
-
'url' => get_term_link((int) $element->term_id, $element->taxonomy),
|
770 |
-
);
|
771 |
-
}
|
772 |
-
// 2B. When the post/page is found, we can add it to the breadcrumbs
|
773 |
-
else if(!empty($element->ID)) {
|
774 |
-
$title = get_post_meta($element->ID, '_yoast_wpseo_bctitle', true);
|
775 |
-
$title = (!empty($title)) ? $title : $element->post_title;
|
776 |
|
777 |
-
$
|
778 |
-
'
|
779 |
-
|
780 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
781 |
}
|
782 |
-
}
|
783 |
|
784 |
-
|
785 |
-
|
786 |
-
|
787 |
-
|
788 |
-
|
789 |
|
790 |
-
|
|
|
791 |
}
|
792 |
|
793 |
return array_filter($links);
|
174 |
else if(!empty($query_vars['WP_Route'])) {
|
175 |
$wp_query->query_vars['do_not_redirect'] = 1;
|
176 |
}
|
|
|
|
|
|
|
|
|
177 |
}
|
178 |
}
|
179 |
|
185 |
|
186 |
// Fallback
|
187 |
if(is_string($element) && strpos($element, 'tax-') !== false) {
|
188 |
+
$element = get_term($element);
|
|
|
189 |
} else if(is_numeric($element)) {
|
190 |
$element = get_post($element);
|
191 |
}
|
284 |
$element = get_term($item_id);
|
285 |
if(!empty($element) && !is_wp_error($element)) {
|
286 |
$element_id = $element->term_taxonomy_id;
|
|
|
287 |
} else {
|
288 |
return false;
|
289 |
}
|
291 |
$element = get_post($item_id);
|
292 |
|
293 |
if(!empty($element->post_type)) {
|
|
|
294 |
$element_type = $element->post_type;
|
295 |
+
$element_id = $item_id;
|
296 |
}
|
297 |
}
|
298 |
|
302 |
$language_code = self::get_language_code($element);
|
303 |
|
304 |
if(!empty($uri_parts['lang']) && ($uri_parts['lang'] != $language_code)) {
|
305 |
+
$wpml_item_id = apply_filters('wpml_object_id', $element_id);
|
306 |
$item_id = (is_numeric($wpml_item_id)) ? $wpml_item_id : $item_id;
|
307 |
}
|
308 |
|
655 |
|
656 |
if(!empty($object)) {
|
657 |
$product_id = $object->get_id();
|
658 |
+
$product_uri = Permalink_Manager_URI_Functions_Post::get_default_post_uri($product_id, false, true);
|
659 |
|
660 |
+
$permalink_manager_uris[$product_id] = $product_uri;
|
|
|
|
|
661 |
|
662 |
+
update_option('permalink-manager-uris', $permalink_manager_uris);
|
|
|
663 |
}
|
664 |
}
|
665 |
|
681 |
$home_url = WPSEO_Utils::home_url();
|
682 |
$home_protocol = parse_url($home_url, PHP_URL_SCHEME);
|
683 |
|
684 |
+
$permalink = preg_replace("/http(s)?/", $home_protocol, $permalink);
|
685 |
}
|
686 |
|
687 |
return $permalink;
|
689 |
|
690 |
function yoast_fix_breadcrumbs($links) {
|
691 |
// Get post type permastructure settings
|
692 |
+
global $permalink_manager_permastructs, $permalink_manager_uris, $permalink_manager_options, $post, $wpdb, $wp;
|
693 |
|
694 |
+
// Check if filter should be activated
|
695 |
if(empty($permalink_manager_options['general']['yoast_breadcrumbs']) || empty($permalink_manager_uris)) { return $links; }
|
696 |
|
697 |
+
// Get post type
|
698 |
+
$post_type = (!empty($post->post_type)) ? $post->post_type : '';
|
699 |
+
|
700 |
+
if(!empty($post_type) && !empty($permalink_manager_permastructs) && !empty($permalink_manager_permastructs['post_types'][$post_type])) {
|
701 |
+
$queried_element = get_queried_object();
|
702 |
+
if(!empty($queried_element->ID)) {
|
703 |
+
$element_id = $queried_element->ID;
|
704 |
+
} else if(!empty($queried_element->term_id)) {
|
705 |
+
$element_id = "tax-{$queried_element->term_id}";
|
706 |
+
} /*else {
|
707 |
+
return $links;
|
708 |
+
}*/
|
709 |
+
|
710 |
+
if(!empty($element_id) && !empty($permalink_manager_uris[$element_id])) {
|
711 |
+
$custom_uri = preg_replace("/([^\/]+)$/", '', $permalink_manager_uris[$element_id]);
|
712 |
+
} else {
|
713 |
+
$custom_uri = trim(preg_replace("/([^\/]+)$/", '', $wp->request), "/");
|
714 |
+
//return $links;
|
715 |
+
}
|
716 |
|
717 |
+
$all_uris = array_flip($permalink_manager_uris);
|
718 |
+
$custom_uri_parts = explode('/', trim($custom_uri));
|
719 |
+
$breadcrumbs = array();
|
720 |
+
$snowball = '';
|
|
|
|
|
721 |
|
722 |
+
// Get Yoast meta
|
723 |
+
$yoast_meta_terms = get_option('wpseo_taxonomy_meta');
|
|
|
|
|
|
|
|
|
724 |
|
725 |
+
// Get internal breadcrumb elements
|
726 |
+
foreach($custom_uri_parts as $slug) {
|
727 |
+
if(empty($slug)) { continue; }
|
728 |
|
729 |
+
$available_taxonomies = Permalink_Manager_Helper_Functions::get_taxonomies_array();
|
730 |
+
$available_post_types = Permalink_Manager_Helper_Functions::get_post_types_array();
|
|
|
731 |
|
732 |
+
$snowball = (empty($snowball)) ? $slug : "{$snowball}/{$slug}";
|
733 |
|
734 |
+
// A. Try to match any custom URI
|
735 |
+
if($snowball) {
|
736 |
+
$uri = trim($snowball, "/");
|
737 |
+
$element = (!empty($all_uris[$uri])) ? $all_uris[$uri] : false;
|
738 |
|
739 |
+
if(!empty($element) && strpos($element, 'tax-') !== false) {
|
740 |
+
$element = get_term($element);
|
741 |
+
} else if(is_numeric($element)) {
|
742 |
+
$element = get_post($element);
|
743 |
+
}
|
744 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
745 |
|
746 |
+
// B. Try to get term
|
747 |
+
if(empty($element) && !empty($available_taxonomies)) {
|
748 |
+
$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)));
|
749 |
|
750 |
+
$element = $wpdb->get_row($sql);
|
751 |
+
}
|
752 |
|
753 |
+
// C. Try to get page/post
|
754 |
+
if(empty($element) && !empty($available_post_types)) {
|
755 |
+
$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)));
|
756 |
|
757 |
+
$element = $wpdb->get_row($sql);
|
758 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
759 |
|
760 |
+
if(!empty($element->term_id)) {
|
761 |
+
$title = (!empty($yoast_meta_terms[$element->taxonomy][$element->term_id]['wpseo_bctitle'])) ? $yoast_meta_terms[$element->taxonomy][$element->term_id]['wpseo_bctitle'] : $element->name;
|
762 |
+
|
763 |
+
$breadcrumbs[] = array(
|
764 |
+
'text' => $title,
|
765 |
+
'url' => get_term_link((int) $element->term_id, $element->taxonomy),
|
766 |
+
);
|
767 |
+
} else if(!empty($element->ID)) {
|
768 |
+
$title = get_post_meta($element->ID, '_yoast_wpseo_bctitle', true);
|
769 |
+
$title = (!empty($title)) ? $title : $element->post_title;
|
770 |
+
|
771 |
+
$breadcrumbs[] = array(
|
772 |
+
'text' => $title,
|
773 |
+
'url' => get_permalink($element->ID),
|
774 |
+
);
|
775 |
+
}
|
776 |
}
|
|
|
777 |
|
778 |
+
// Get new links
|
779 |
+
if(!empty($links) && is_array($links)) {
|
780 |
+
$first_element = reset($links);
|
781 |
+
$last_element = end($links);
|
782 |
+
$breadcrumbs = (!empty($breadcrumbs)) ? $breadcrumbs : array();
|
783 |
|
784 |
+
$links = array_merge(array($first_element), $breadcrumbs, array($last_element));
|
785 |
+
}
|
786 |
}
|
787 |
|
788 |
return array_filter($links);
|
includes/core/permalink-manager-uri-functions-post.php
CHANGED
@@ -23,11 +23,9 @@ class Permalink_Manager_URI_Functions_Post extends Permalink_Manager_Class {
|
|
23 |
* URI Editor
|
24 |
*/
|
25 |
add_filter( 'get_sample_permalink_html', array($this, 'edit_uri_box'), 99, 5 );
|
26 |
-
|
27 |
add_action( 'save_post', array($this, 'update_post_uri'), 99, 1);
|
28 |
add_action( 'edit_attachment', array($this, 'update_post_uri'), 99, 1 );
|
29 |
add_action( 'wp_insert_post', array($this, 'new_post_uri'), 99, 1 );
|
30 |
-
add_action( 'add_attachment', array($this, 'new_post_uri'), 99, 1 );
|
31 |
add_action( 'wp_trash_post', array($this, 'remove_post_uri'), 100, 1 );
|
32 |
|
33 |
add_action( 'quick_edit_custom_box', array($this, 'quick_edit_column_form'), 99, 3);
|
@@ -58,9 +56,6 @@ class Permalink_Manager_URI_Functions_Post extends Permalink_Manager_Class {
|
|
58 |
// Do not filter in Elementor
|
59 |
if(!empty($_GET['action']) && $_GET['action'] == 'elementor') { return $permalink; }
|
60 |
|
61 |
-
// Do not filter in WPML String Editor
|
62 |
-
if(!empty($_REQUEST['icl_ajx_action']) && $_REQUEST['icl_ajx_action'] == 'icl_st_save_translation') { return $permalink; }
|
63 |
-
|
64 |
$post = (is_integer($post)) ? get_post($post) : $post;
|
65 |
|
66 |
// Start with homepage URL
|
@@ -85,14 +80,14 @@ class Permalink_Manager_URI_Functions_Post extends Permalink_Manager_Class {
|
|
85 |
if(isset($permalink_manager_uris[$post->ID])) {
|
86 |
// Encode URI?
|
87 |
if(!empty($permalink_manager_options['general']['decode_uris'])) {
|
88 |
-
$permalink = "{$home_url}/" .
|
89 |
} else {
|
90 |
$permalink = "{$home_url}/" . Permalink_Manager_Helper_Functions::encode_uri("{$permalink_manager_uris[$post->ID]}");
|
91 |
}
|
92 |
} else if($post->post_type == 'attachment' && $post->post_parent > 0 && $post->post_parent != $post->ID && !empty($permalink_manager_uris[$post->post_parent])) {
|
93 |
$permalink = "{$home_url}/{$permalink_manager_uris[$post->post_parent]}/attachment/{$post->post_name}";
|
94 |
} else if(!empty($permalink_manager_options['general']['decode_uris'])) {
|
95 |
-
$permalink = "{$home_url}/" .
|
96 |
}
|
97 |
|
98 |
// 5. Allow to filter (do not filter in Customizer)
|
@@ -384,12 +379,6 @@ class Permalink_Manager_URI_Functions_Post extends Permalink_Manager_Class {
|
|
384 |
$where .= ")";
|
385 |
}
|
386 |
|
387 |
-
// Get excluded items
|
388 |
-
$exclude_posts = $wpdb->get_col("SELECT post_ID FROM {$wpdb->postmeta} AS pm LEFT JOIN {$wpdb->posts} AS p ON (pm.post_ID = p.ID) WHERE pm.meta_key = 'auto_update_uri' AND pm.meta_value = '-2' AND post_type IN ('{$post_types}')");
|
389 |
-
if(!empty($exclude_posts)) {
|
390 |
-
$where .= sprintf("AND ID NOT IN ('%s')", implode("', '", $exclude_posts));
|
391 |
-
}
|
392 |
-
|
393 |
// Support for attachments
|
394 |
$attachment_support = (in_array('attachment', $post_types_array)) ? " OR (post_type = 'attachment')" : "";
|
395 |
|
@@ -478,6 +467,9 @@ class Permalink_Manager_URI_Functions_Post extends Permalink_Manager_Class {
|
|
478 |
// Now if the array is not empty use IDs from each subarray as a key
|
479 |
if($posts_to_update && empty($errors)) {
|
480 |
foreach ($posts_to_update as $row) {
|
|
|
|
|
|
|
481 |
// Get default & native URL
|
482 |
$native_uri = self::get_default_post_uri($row['ID'], true);
|
483 |
$default_uri = self::get_default_post_uri($row['ID']);
|
@@ -543,6 +535,9 @@ class Permalink_Manager_URI_Functions_Post extends Permalink_Manager_Class {
|
|
543 |
|
544 |
if (!empty($new_uris)) {
|
545 |
foreach($new_uris as $id => $new_uri) {
|
|
|
|
|
|
|
546 |
// Prepare variables
|
547 |
$this_post = get_post($id);
|
548 |
$updated = '';
|
@@ -618,7 +613,7 @@ class Permalink_Manager_URI_Functions_Post extends Permalink_Manager_Class {
|
|
618 |
}
|
619 |
|
620 |
// Decode URI & allow to filter it
|
621 |
-
$sample_permalink_uri = apply_filters('permalink_manager_filter_post_sample_uri',
|
622 |
|
623 |
// Prepare the sample & default permalink
|
624 |
$sample_permalink = sprintf("%s/<span class=\"editable\">%s</span>", $home_url, str_replace("//", "/", $sample_permalink_uri));
|
@@ -660,7 +655,7 @@ class Permalink_Manager_URI_Functions_Post extends Permalink_Manager_Class {
|
|
660 |
$auto_update_val = get_post_meta($post_id, "auto_update_uri", true);
|
661 |
$auto_update_uri = (!empty($auto_update_val)) ? $auto_update_val : $permalink_manager_options["general"]["auto_update_uris"];
|
662 |
|
663 |
-
$uri = (!empty($permalink_manager_uris[$post_id])) ?
|
664 |
printf('<span class="permalink-manager-col-uri" data-auto_update="%s">%s</span>', intval($auto_update_uri), $uri);
|
665 |
}
|
666 |
}
|
@@ -773,6 +768,9 @@ class Permalink_Manager_URI_Functions_Post extends Permalink_Manager_Class {
|
|
773 |
// Use default URI if URI is cleared by user OR URI should be automatically updated
|
774 |
$new_uri = (($_POST['custom_uri'] == '') || $auto_update_uri == 1) ? $default_uri : Permalink_Manager_Helper_Functions::sanitize_title($_POST['custom_uri'], true);
|
775 |
|
|
|
|
|
|
|
776 |
// Save or remove "Auto-update URI" settings
|
777 |
if(!empty($auto_update_uri_current)) {
|
778 |
update_post_meta($post_id, "auto_update_uri", $auto_update_uri_current);
|
23 |
* URI Editor
|
24 |
*/
|
25 |
add_filter( 'get_sample_permalink_html', array($this, 'edit_uri_box'), 99, 5 );
|
|
|
26 |
add_action( 'save_post', array($this, 'update_post_uri'), 99, 1);
|
27 |
add_action( 'edit_attachment', array($this, 'update_post_uri'), 99, 1 );
|
28 |
add_action( 'wp_insert_post', array($this, 'new_post_uri'), 99, 1 );
|
|
|
29 |
add_action( 'wp_trash_post', array($this, 'remove_post_uri'), 100, 1 );
|
30 |
|
31 |
add_action( 'quick_edit_custom_box', array($this, 'quick_edit_column_form'), 99, 3);
|
56 |
// Do not filter in Elementor
|
57 |
if(!empty($_GET['action']) && $_GET['action'] == 'elementor') { return $permalink; }
|
58 |
|
|
|
|
|
|
|
59 |
$post = (is_integer($post)) ? get_post($post) : $post;
|
60 |
|
61 |
// Start with homepage URL
|
80 |
if(isset($permalink_manager_uris[$post->ID])) {
|
81 |
// Encode URI?
|
82 |
if(!empty($permalink_manager_options['general']['decode_uris'])) {
|
83 |
+
$permalink = "{$home_url}/" . urldecode("/{$permalink_manager_uris[$post->ID]}");
|
84 |
} else {
|
85 |
$permalink = "{$home_url}/" . Permalink_Manager_Helper_Functions::encode_uri("{$permalink_manager_uris[$post->ID]}");
|
86 |
}
|
87 |
} else if($post->post_type == 'attachment' && $post->post_parent > 0 && $post->post_parent != $post->ID && !empty($permalink_manager_uris[$post->post_parent])) {
|
88 |
$permalink = "{$home_url}/{$permalink_manager_uris[$post->post_parent]}/attachment/{$post->post_name}";
|
89 |
} else if(!empty($permalink_manager_options['general']['decode_uris'])) {
|
90 |
+
$permalink = "{$home_url}/" . urldecode("/{$permalink}");
|
91 |
}
|
92 |
|
93 |
// 5. Allow to filter (do not filter in Customizer)
|
379 |
$where .= ")";
|
380 |
}
|
381 |
|
|
|
|
|
|
|
|
|
|
|
|
|
382 |
// Support for attachments
|
383 |
$attachment_support = (in_array('attachment', $post_types_array)) ? " OR (post_type = 'attachment')" : "";
|
384 |
|
467 |
// Now if the array is not empty use IDs from each subarray as a key
|
468 |
if($posts_to_update && empty($errors)) {
|
469 |
foreach ($posts_to_update as $row) {
|
470 |
+
// Prevent server timeout
|
471 |
+
set_time_limit(0);
|
472 |
+
|
473 |
// Get default & native URL
|
474 |
$native_uri = self::get_default_post_uri($row['ID'], true);
|
475 |
$default_uri = self::get_default_post_uri($row['ID']);
|
535 |
|
536 |
if (!empty($new_uris)) {
|
537 |
foreach($new_uris as $id => $new_uri) {
|
538 |
+
// Prevent server timeout
|
539 |
+
set_time_limit(0);
|
540 |
+
|
541 |
// Prepare variables
|
542 |
$this_post = get_post($id);
|
543 |
$updated = '';
|
613 |
}
|
614 |
|
615 |
// Decode URI & allow to filter it
|
616 |
+
$sample_permalink_uri = apply_filters('permalink_manager_filter_post_sample_uri', urldecode($sample_permalink_uri), $post);
|
617 |
|
618 |
// Prepare the sample & default permalink
|
619 |
$sample_permalink = sprintf("%s/<span class=\"editable\">%s</span>", $home_url, str_replace("//", "/", $sample_permalink_uri));
|
655 |
$auto_update_val = get_post_meta($post_id, "auto_update_uri", true);
|
656 |
$auto_update_uri = (!empty($auto_update_val)) ? $auto_update_val : $permalink_manager_options["general"]["auto_update_uris"];
|
657 |
|
658 |
+
$uri = (!empty($permalink_manager_uris[$post_id])) ? urldecode($permalink_manager_uris[$post_id]) : self::get_post_uri($post_id, true);
|
659 |
printf('<span class="permalink-manager-col-uri" data-auto_update="%s">%s</span>', intval($auto_update_uri), $uri);
|
660 |
}
|
661 |
}
|
768 |
// Use default URI if URI is cleared by user OR URI should be automatically updated
|
769 |
$new_uri = (($_POST['custom_uri'] == '') || $auto_update_uri == 1) ? $default_uri : Permalink_Manager_Helper_Functions::sanitize_title($_POST['custom_uri'], true);
|
770 |
|
771 |
+
// Remove the empty placeholder tags
|
772 |
+
$new_uri = Permalink_Manager_Core_Functions::replace_empty_placeholder_tags($new_uri);
|
773 |
+
|
774 |
// Save or remove "Auto-update URI" settings
|
775 |
if(!empty($auto_update_uri_current)) {
|
776 |
update_post_meta($post_id, "auto_update_uri", $auto_update_uri_current);
|
includes/views/permalink-manager-settings.php
CHANGED
@@ -45,18 +45,6 @@ class Permalink_Manager_Settings extends Permalink_Manager_Class {
|
|
45 |
'label' => __('Show "Native slug" field', 'permalink-manager'),
|
46 |
'input_class' => '',
|
47 |
'description' => __('If enabled, it would be possible to edit the native slug via URI Editor on single post/term edit page.', 'permalink-manager')
|
48 |
-
),
|
49 |
-
'pagination_redirect' => array(
|
50 |
-
'type' => 'single_checkbox',
|
51 |
-
'label' => __('Force 404 on non-existing pagination pages', 'permalink-manager'),
|
52 |
-
'input_class' => '',
|
53 |
-
'description' => __('If enabled, the non-existing pagination pages (for single posts) will return 404 ("Not Found") error.<br /><strong>Please disable it, if you encounter any problems with pagination pages or use custom pagination system.</strong>', 'permalink-manager')
|
54 |
-
),
|
55 |
-
'sslwww_redirect' => array(
|
56 |
-
'type' => 'single_checkbox',
|
57 |
-
'label' => __('Force HTTPS in URLs', 'permalink-manager'),
|
58 |
-
'input_class' => '',
|
59 |
-
'description' => __('<strong>Please disable it, if you encounter any redirect loop issues.</strong>', 'permalink-manager')
|
60 |
)
|
61 |
)
|
62 |
),
|
@@ -92,7 +80,13 @@ class Permalink_Manager_Settings extends Permalink_Manager_Class {
|
|
92 |
'input_class' => 'settings-select',
|
93 |
'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'),),
|
94 |
'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')
|
95 |
-
)
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
)
|
97 |
),
|
98 |
'advanced' => array(
|
@@ -140,15 +134,9 @@ class Permalink_Manager_Settings extends Permalink_Manager_Class {
|
|
140 |
),
|
141 |
'partial_disable' => array(
|
142 |
'type' => 'checkbox',
|
143 |
-
'label' => __('
|
144 |
'choices' => $content_types,
|
145 |
-
'description' => __('
|
146 |
-
),
|
147 |
-
'edit_uris_cap' => array(
|
148 |
-
'type' => 'select',
|
149 |
-
'label' => __('URI Editor role capability', 'permalink-manager'),
|
150 |
-
'choices' => array('edit_theme_options' => __('Administrator (edit_theme_options)', 'permalink-manager'), 'publish_pages' => __('Editor (publish_pages)', 'permalink-manager'), 'publish_posts' => __('Author (publish_posts)', 'permalink-manager'), 'edit_posts' => __('Contributor (edit_posts)', 'permalink-manager')),
|
151 |
-
'description' => sprintf(__('Only the users who have selected capability will be able to access URI Editor.<br />The list of capabilities <a href="%s" target="_blank">can be found here</a>.', 'permalink-manager'), 'https://wordpress.org/support/article/roles-and-capabilities/#capability-vs-role-table')
|
152 |
),
|
153 |
)
|
154 |
)
|
45 |
'label' => __('Show "Native slug" field', 'permalink-manager'),
|
46 |
'input_class' => '',
|
47 |
'description' => __('If enabled, it would be possible to edit the native slug via URI Editor on single post/term edit page.', 'permalink-manager')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
)
|
49 |
)
|
50 |
),
|
80 |
'input_class' => 'settings-select',
|
81 |
'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'),),
|
82 |
'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')
|
83 |
+
),
|
84 |
+
'pagination_redirect' => array(
|
85 |
+
'type' => 'single_checkbox',
|
86 |
+
'label' => __('Force 404 on non-existing pagination pages', 'permalink-manager'),
|
87 |
+
'input_class' => '',
|
88 |
+
'description' => __('If enabled, the non-existing pagination pages (for single posts) will return 404 ("Not Found") error.<br /><strong>Please disable it, if you encounter any problems with pagination pages or use custom pagination system.</strong>', 'permalink-manager')
|
89 |
+
),
|
90 |
)
|
91 |
),
|
92 |
'advanced' => array(
|
134 |
),
|
135 |
'partial_disable' => array(
|
136 |
'type' => 'checkbox',
|
137 |
+
'label' => __('Disable Permalink Manager functionalities', 'permalink-manager'),
|
138 |
'choices' => $content_types,
|
139 |
+
'description' => __('Select the post types & taxonomies where the functionalities of Permalink Manager should be completely disabled.', 'permalink-manager')
|
|
|
|
|
|
|
|
|
|
|
|
|
140 |
),
|
141 |
)
|
142 |
)
|
includes/views/permalink-manager-uri-editor-post.php
CHANGED
@@ -172,7 +172,7 @@ class Permalink_Manager_URI_Editor_Post extends WP_List_Table {
|
|
172 |
$html .= "<option value=\"{$month_raw}\" {$selected}>{$month_human_name}</option>";
|
173 |
}
|
174 |
$html .= "</select>";
|
175 |
-
$html .=
|
176 |
$html .= "</div>";
|
177 |
}
|
178 |
}
|
@@ -233,14 +233,13 @@ class Permalink_Manager_URI_Editor_Post extends WP_List_Table {
|
|
233 |
// Grab posts from database
|
234 |
$sql_parts['start'] = "SELECT * FROM {$wpdb->posts} ";
|
235 |
if($search_query) {
|
236 |
-
$sql_parts['where'] = "WHERE
|
237 |
|
238 |
// Search in array with custom URIs
|
239 |
$found = Permalink_Manager_Helper_Functions::search_uri($search_query, 'posts');
|
240 |
if($found) {
|
241 |
$sql_parts['where'] .= sprintf("OR ID IN ('%s')", implode(',', (array) $found));
|
242 |
}
|
243 |
-
$sql_parts['where'] .= " ) AND ((post_status IN ($this->displayed_post_statuses) AND post_type IN ($this->displayed_post_types)) {$attachment_support}) {$extra_filters} ";
|
244 |
} else {
|
245 |
$sql_parts['where'] = "WHERE ((post_status IN ($this->displayed_post_statuses) AND post_type IN ($this->displayed_post_types)) {$attachment_support}) {$extra_filters} ";
|
246 |
}
|
172 |
$html .= "<option value=\"{$month_raw}\" {$selected}>{$month_human_name}</option>";
|
173 |
}
|
174 |
$html .= "</select>";
|
175 |
+
$html .= sprintf("<input id=\"months-filter-button\" class=\"button\" value=\"%s\" type=\"submit\">", __("Filter", "permalink-manager"));
|
176 |
$html .= "</div>";
|
177 |
}
|
178 |
}
|
233 |
// Grab posts from database
|
234 |
$sql_parts['start'] = "SELECT * FROM {$wpdb->posts} ";
|
235 |
if($search_query) {
|
236 |
+
$sql_parts['where'] = "WHERE post_name LIKE ('%{$search_query}%') ";
|
237 |
|
238 |
// Search in array with custom URIs
|
239 |
$found = Permalink_Manager_Helper_Functions::search_uri($search_query, 'posts');
|
240 |
if($found) {
|
241 |
$sql_parts['where'] .= sprintf("OR ID IN ('%s')", implode(',', (array) $found));
|
242 |
}
|
|
|
243 |
} else {
|
244 |
$sql_parts['where'] = "WHERE ((post_status IN ($this->displayed_post_statuses) AND post_type IN ($this->displayed_post_types)) {$attachment_support}) {$extra_filters} ";
|
245 |
}
|
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:
|
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:
|
18 |
#, php-format
|
19 |
msgid ""
|
20 |
"Get access to extra features: full taxonomy and WooCommerce support, "
|
@@ -23,642 +23,750 @@ msgid ""
|
|
23 |
"and save %s using \"%s\" coupon code!</strong> Valid until %s!"
|
24 |
msgstr ""
|
25 |
|
26 |
-
#: includes/
|
27 |
-
msgid "
|
28 |
msgstr ""
|
29 |
|
30 |
-
#: includes/
|
31 |
-
msgid "
|
32 |
msgstr ""
|
33 |
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
#: includes/core/permalink-manager-admin-functions.php:119
|
39 |
-
#: includes/core/permalink-manager-admin-functions.php:719
|
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/
|
47 |
-
|
48 |
-
|
49 |
-
|
|
|
50 |
msgstr ""
|
51 |
|
52 |
-
#: includes/
|
53 |
-
|
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/
|
60 |
-
msgid "
|
|
|
|
|
|
|
61 |
msgstr ""
|
62 |
|
63 |
-
#: includes/
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
msgid "Current URI"
|
68 |
msgstr ""
|
69 |
|
70 |
-
#: includes/
|
71 |
-
msgid "
|
72 |
msgstr ""
|
73 |
|
74 |
-
#: includes/
|
75 |
-
|
76 |
-
|
|
|
77 |
msgstr ""
|
78 |
|
79 |
-
#: includes/
|
80 |
-
msgid "
|
|
|
|
|
|
|
|
|
81 |
msgstr ""
|
82 |
|
83 |
-
#: includes/
|
84 |
-
msgid "
|
85 |
msgstr ""
|
86 |
|
87 |
-
#: includes/
|
88 |
-
msgid "
|
|
|
|
|
89 |
msgstr ""
|
90 |
|
91 |
-
#: includes/
|
92 |
-
msgid "
|
|
|
|
|
93 |
msgstr ""
|
94 |
|
95 |
-
#: includes/
|
96 |
-
msgid "
|
97 |
msgstr ""
|
98 |
|
99 |
-
#: includes/
|
100 |
msgid ""
|
101 |
-
"
|
102 |
-
"
|
103 |
-
"
|
104 |
-
"applied."
|
105 |
msgstr ""
|
106 |
|
107 |
-
#: includes/
|
108 |
-
msgid "
|
109 |
msgstr ""
|
110 |
|
111 |
-
#: includes/
|
112 |
-
msgid "
|
|
|
|
|
113 |
msgstr ""
|
114 |
|
115 |
-
#: includes/
|
116 |
-
msgid "
|
117 |
msgstr ""
|
118 |
|
119 |
-
#: includes/
|
120 |
-
msgid "
|
|
|
|
|
|
|
121 |
msgstr ""
|
122 |
|
123 |
-
#: includes/
|
124 |
-
msgid "
|
125 |
msgstr ""
|
126 |
|
127 |
-
#: includes/
|
128 |
-
|
|
|
129 |
msgstr ""
|
130 |
|
131 |
-
#: includes/
|
132 |
-
msgid "
|
133 |
msgstr ""
|
134 |
|
135 |
-
#: includes/
|
136 |
-
msgid "
|
137 |
msgstr ""
|
138 |
|
139 |
-
#: includes/
|
140 |
-
|
141 |
-
msgid "Title"
|
142 |
msgstr ""
|
143 |
|
144 |
-
#: includes/
|
145 |
-
|
146 |
-
msgid "Old Slug"
|
147 |
msgstr ""
|
148 |
|
149 |
-
#: includes/
|
150 |
-
|
151 |
-
msgid "New Slug"
|
152 |
msgstr ""
|
153 |
|
154 |
-
#: includes/
|
155 |
-
#: includes/
|
156 |
-
msgid "
|
157 |
msgstr ""
|
158 |
|
159 |
-
#: includes/
|
160 |
-
|
161 |
-
msgid "New URI"
|
162 |
msgstr ""
|
163 |
|
164 |
-
#: includes/
|
165 |
-
|
|
|
166 |
msgstr ""
|
167 |
|
168 |
-
#: includes/
|
169 |
-
msgid "
|
170 |
msgstr ""
|
171 |
|
172 |
-
#: includes/
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
msgstr
|
177 |
-
msgstr[1] ""
|
178 |
|
179 |
-
#: includes/
|
180 |
-
|
181 |
-
|
|
|
182 |
msgstr ""
|
183 |
|
184 |
-
#: includes/
|
185 |
-
#: includes/
|
186 |
-
msgid "
|
187 |
msgstr ""
|
188 |
|
189 |
-
#: includes/
|
190 |
-
#: includes/
|
191 |
-
msgid "
|
192 |
msgstr ""
|
193 |
|
194 |
-
#: includes/
|
195 |
-
|
196 |
-
msgid "No"
|
197 |
msgstr ""
|
198 |
|
199 |
-
#: includes/
|
200 |
-
|
201 |
-
msgid "Use global settings [%s]"
|
202 |
msgstr ""
|
203 |
|
204 |
-
#: includes/
|
205 |
-
msgid "
|
206 |
msgstr ""
|
207 |
|
208 |
-
#: includes/
|
209 |
-
msgid "
|
210 |
msgstr ""
|
211 |
|
212 |
-
#: includes/
|
213 |
-
msgid ""
|
214 |
-
"If custom URI is not defined, a default URI will be set (see below). The "
|
215 |
-
"custom URI can be edited only if 'Auto-update the URI' feature is not "
|
216 |
-
"enabled."
|
217 |
msgstr ""
|
218 |
|
219 |
-
#: includes/
|
220 |
-
msgid "
|
221 |
msgstr ""
|
222 |
|
223 |
-
#: includes/
|
224 |
-
msgid ""
|
225 |
-
"The native slug is by default automatically used in native permalinks (when "
|
226 |
-
"Permalink Manager is disabled)."
|
227 |
msgstr ""
|
228 |
|
229 |
-
#: includes/
|
230 |
-
msgid "
|
231 |
msgstr ""
|
232 |
|
233 |
-
#: includes/
|
234 |
-
msgid ""
|
235 |
-
"If enabled, the 'Current URI' field will be automatically changed to "
|
236 |
-
"'Default URI' (displayed below) after the post is saved or updated."
|
237 |
msgstr ""
|
238 |
|
239 |
-
#: includes/
|
240 |
-
msgid "
|
241 |
msgstr ""
|
242 |
|
243 |
-
#: includes/
|
244 |
-
msgid "
|
245 |
msgstr ""
|
246 |
|
247 |
-
#: includes/
|
248 |
-
msgid "
|
249 |
msgstr ""
|
250 |
|
251 |
-
#: includes/
|
252 |
-
|
253 |
-
msgid ""
|
254 |
-
"<span><strong>Need more functionalities and dedicated support?</strong> Buy "
|
255 |
-
"Permalink Manager Pro and apply <a href=\"https://permalinkmanager.pro/buy-"
|
256 |
-
"permalink-manager-pro/\">PMLITE coupon code</a> to get 10% off.</a></span>"
|
257 |
msgstr ""
|
258 |
|
259 |
-
#: includes/
|
260 |
-
msgid "
|
261 |
msgstr ""
|
262 |
|
263 |
-
#: includes/
|
264 |
-
msgid "
|
265 |
msgstr ""
|
266 |
|
267 |
-
#: includes/
|
268 |
-
msgid "
|
269 |
msgstr ""
|
270 |
|
271 |
-
#: includes/
|
272 |
-
|
273 |
-
msgid ""
|
274 |
-
"This functionality is available only in <a href=\"%s\" target=\"_blank\">"
|
275 |
-
"Permalink Manager Pro</a>."
|
276 |
msgstr ""
|
277 |
|
278 |
-
#: includes/
|
279 |
-
#: includes/
|
280 |
-
|
281 |
-
msgid ""
|
282 |
-
"Please paste the licence key to access all Permalink Manager Pro updates & "
|
283 |
-
"features <a href=\"%s\" target=\"_blank\">on this page</a>."
|
284 |
msgstr ""
|
285 |
|
286 |
-
#: includes/
|
287 |
msgid ""
|
288 |
-
"
|
289 |
-
"
|
290 |
msgstr ""
|
291 |
|
292 |
-
#: includes/
|
293 |
-
msgid "
|
294 |
msgstr ""
|
295 |
|
296 |
-
#: includes/
|
297 |
-
|
298 |
-
msgid ""
|
299 |
-
"Your Permalink Manager Pro licence key expired! To restore access to plugin "
|
300 |
-
"updates & technical support please go to <a href=\"%s\" target=\"_blank\">"
|
301 |
-
"this page</a>."
|
302 |
msgstr ""
|
303 |
|
304 |
-
#: includes/
|
305 |
-
msgid "
|
306 |
msgstr ""
|
307 |
|
308 |
-
#: includes/
|
309 |
-
|
310 |
-
msgid ""
|
311 |
-
"Your licence key is valid until %s.<br />To prolong it please go to <a "
|
312 |
-
"href=\"%s\" target=\"_blank\">this page</a> for more information."
|
313 |
msgstr ""
|
314 |
|
315 |
-
#: includes/
|
316 |
-
msgid "
|
317 |
msgstr ""
|
318 |
|
319 |
-
#: includes/
|
320 |
-
msgid "
|
321 |
msgstr ""
|
322 |
|
323 |
-
#: includes/
|
324 |
-
|
|
|
325 |
msgstr ""
|
326 |
|
327 |
-
#: includes/
|
328 |
-
msgid "
|
329 |
msgstr ""
|
330 |
|
331 |
-
#: includes/
|
332 |
-
msgid "
|
333 |
msgstr ""
|
334 |
|
335 |
-
#: includes/
|
336 |
-
msgid "
|
337 |
msgstr ""
|
338 |
|
339 |
-
#: includes/
|
340 |
-
msgid "
|
341 |
msgstr ""
|
342 |
|
343 |
-
#: includes/
|
344 |
-
msgid "
|
345 |
msgstr ""
|
346 |
|
347 |
-
#: includes/
|
348 |
-
|
|
|
349 |
msgstr ""
|
350 |
|
351 |
-
#: includes/
|
352 |
-
|
|
|
353 |
msgstr ""
|
354 |
|
355 |
-
#: includes/
|
356 |
-
msgid "
|
357 |
msgstr ""
|
358 |
|
359 |
-
#: includes/
|
360 |
-
|
|
|
361 |
msgstr ""
|
362 |
|
363 |
-
#: includes/
|
364 |
-
|
|
|
|
|
365 |
msgstr ""
|
366 |
|
367 |
-
#: includes/
|
368 |
-
|
|
|
|
|
369 |
msgstr ""
|
370 |
|
371 |
-
#: includes/
|
372 |
-
|
|
|
373 |
msgstr ""
|
374 |
|
375 |
-
#: includes/
|
376 |
-
|
|
|
377 |
msgstr ""
|
378 |
|
379 |
-
#: includes/
|
380 |
-
|
|
|
381 |
msgstr ""
|
382 |
|
383 |
-
#: includes/
|
384 |
-
|
|
|
385 |
msgstr ""
|
386 |
|
387 |
-
#: includes/
|
388 |
-
|
|
|
|
|
|
|
389 |
msgstr ""
|
390 |
|
391 |
-
#: includes/
|
392 |
-
|
|
|
|
|
393 |
msgstr ""
|
394 |
|
395 |
-
#: includes/
|
396 |
-
msgid "
|
397 |
msgstr ""
|
398 |
|
399 |
-
#: includes/
|
400 |
-
msgid "
|
401 |
msgstr ""
|
402 |
|
403 |
-
#: includes/
|
404 |
-
msgid "
|
405 |
msgstr ""
|
406 |
|
407 |
-
#: includes/
|
408 |
-
msgid ""
|
409 |
-
"The URIs are case-insensitive, eg. <strong>BLACKFRIDAY</strong> and <strong>"
|
410 |
-
"blackfriday</strong> are equivalent."
|
411 |
msgstr ""
|
412 |
|
413 |
-
#: includes/
|
414 |
-
msgid "
|
415 |
msgstr ""
|
416 |
|
417 |
-
#: includes/
|
418 |
-
msgid "
|
419 |
msgstr ""
|
420 |
|
421 |
-
#: includes/
|
422 |
-
|
423 |
-
msgid "%d Custom URIs and %d Custom Redirects were removed!"
|
424 |
msgstr ""
|
425 |
|
426 |
-
#: includes/
|
427 |
-
msgid "
|
428 |
msgstr ""
|
429 |
|
430 |
-
#: includes/
|
431 |
-
|
432 |
-
msgid "URI \"%s\" was removed successfully!"
|
433 |
msgstr ""
|
434 |
|
435 |
-
#: includes/
|
436 |
-
msgid "
|
|
|
|
|
437 |
msgstr ""
|
438 |
|
439 |
-
#: includes/
|
440 |
-
msgid "
|
441 |
msgstr ""
|
442 |
|
443 |
-
#: includes/
|
444 |
-
msgid "
|
445 |
msgstr ""
|
446 |
|
447 |
-
#: includes/
|
448 |
-
msgid "
|
|
|
449 |
msgstr ""
|
450 |
|
451 |
-
#: includes/views/permalink-manager-
|
452 |
-
msgid "
|
453 |
msgstr ""
|
454 |
|
455 |
-
#: includes/views/permalink-manager-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
msgstr ""
|
460 |
|
461 |
-
#: includes/views/permalink-manager-
|
462 |
-
|
463 |
-
#: includes/views/permalink-manager-tools.php:240
|
464 |
-
msgid "Taxonomies"
|
465 |
msgstr ""
|
466 |
|
467 |
-
#: includes/views/permalink-manager-
|
468 |
-
msgid "
|
469 |
msgstr ""
|
470 |
|
471 |
-
#: includes/views/permalink-manager-
|
472 |
-
|
473 |
-
#: includes/views/permalink-manager-pro-addons.php:222
|
474 |
-
msgid "Instructions"
|
475 |
msgstr ""
|
476 |
|
477 |
-
#: includes/views/permalink-manager-
|
478 |
-
|
|
|
|
|
|
|
479 |
msgid ""
|
480 |
-
"
|
481 |
-
"
|
482 |
-
"
|
483 |
-
"href=\"%s\">here</a>."
|
484 |
msgstr ""
|
485 |
|
486 |
-
#: includes/views/permalink-manager-
|
487 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
488 |
msgstr ""
|
489 |
|
490 |
-
#: includes/views/permalink-manager-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
491 |
#, php-format
|
492 |
msgid ""
|
493 |
-
"
|
494 |
-
"
|
495 |
-
"
|
496 |
msgstr ""
|
497 |
|
498 |
-
#: includes/views/permalink-manager-
|
499 |
-
msgid "
|
500 |
msgstr ""
|
501 |
|
502 |
-
#: includes/views/permalink-manager-
|
503 |
-
msgid "
|
|
|
|
|
|
|
504 |
msgstr ""
|
505 |
|
506 |
-
#: includes/views/permalink-manager-
|
507 |
-
|
508 |
-
msgid "Full URI & Permalink"
|
509 |
msgstr ""
|
510 |
|
511 |
-
#: includes/views/permalink-manager-
|
512 |
-
msgid "
|
513 |
msgstr ""
|
514 |
|
515 |
-
#: includes/views/permalink-manager-
|
516 |
-
|
517 |
-
msgid "Slug"
|
518 |
msgstr ""
|
519 |
|
520 |
-
#: includes/views/permalink-manager-
|
521 |
-
msgid "
|
522 |
msgstr ""
|
523 |
|
524 |
-
#: includes/views/permalink-manager-
|
525 |
-
|
526 |
-
|
527 |
-
|
|
|
528 |
msgstr ""
|
529 |
|
530 |
-
#: includes/views/permalink-manager-
|
531 |
-
|
532 |
-
#: includes/views/permalink-manager-uri-editor-tax.php:101
|
533 |
-
msgid "View"
|
534 |
msgstr ""
|
535 |
|
536 |
-
#: includes/views/permalink-manager-
|
537 |
-
|
538 |
-
|
|
|
539 |
msgstr ""
|
540 |
|
541 |
-
#: includes/views/permalink-manager-
|
542 |
-
|
543 |
-
msgid "Save all the URIs above"
|
544 |
msgstr ""
|
545 |
|
546 |
-
#: includes/views/permalink-manager-
|
547 |
-
|
548 |
-
msgid "Search"
|
549 |
msgstr ""
|
550 |
|
551 |
-
#: includes/views/permalink-manager-
|
552 |
-
|
|
|
|
|
|
|
553 |
msgstr ""
|
554 |
|
555 |
-
#: includes/views/permalink-manager-
|
556 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
557 |
msgstr ""
|
558 |
|
559 |
#: includes/views/permalink-manager-pro-addons.php:99
|
560 |
msgid "Support"
|
561 |
msgstr ""
|
562 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
563 |
#: includes/views/permalink-manager-pro-addons.php:126
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
564 |
msgid "Licence"
|
565 |
msgstr ""
|
566 |
|
567 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
568 |
msgid "Licence key"
|
569 |
msgstr ""
|
570 |
|
571 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
572 |
msgid ""
|
573 |
"The licence key allows you to access all the plugin updates & priority "
|
574 |
"support."
|
575 |
msgstr ""
|
576 |
|
577 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
578 |
-
msgid "Check the expiration date."
|
579 |
-
msgstr ""
|
580 |
-
|
581 |
-
#: includes/views/permalink-manager-pro-addons.php:158
|
582 |
msgid "-- Use predefined words list --"
|
583 |
msgstr ""
|
584 |
|
585 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
586 |
msgid "Remove all words"
|
587 |
msgstr ""
|
588 |
|
589 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
590 |
msgid "Add the words from the list"
|
591 |
msgstr ""
|
592 |
|
593 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
594 |
msgid "Enable \"stop words\""
|
595 |
msgstr ""
|
596 |
|
597 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
598 |
msgid "\"Stop words\" list"
|
599 |
msgstr ""
|
600 |
|
601 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
602 |
msgid "The words should be comma-separated."
|
603 |
msgstr ""
|
604 |
|
605 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
|
|
|
|
|
|
|
|
|
|
606 |
msgid ""
|
607 |
"If enabled, all selected \"stop words\" will be automatically removed from "
|
608 |
"default URIs."
|
609 |
msgstr ""
|
610 |
|
611 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
612 |
msgid ""
|
613 |
"Each of the words can be removed and any new words can be added to the list. "
|
614 |
"You can also use a predefined list (available in 21 languages)."
|
615 |
msgstr ""
|
616 |
|
617 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
618 |
msgid "Save"
|
619 |
msgstr ""
|
620 |
|
621 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
622 |
-
#: includes/views/permalink-manager-tools.php:34
|
623 |
-
msgid "Custom Permalinks"
|
624 |
-
msgstr ""
|
625 |
-
|
626 |
-
#: includes/views/permalink-manager-pro-addons.php:214
|
627 |
msgid "Deactivate after import"
|
628 |
msgstr ""
|
629 |
|
630 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
631 |
msgid ""
|
632 |
"If selected, \"Custom Permalinks\" plugin will be deactivated after its "
|
633 |
"custom URIs are imported."
|
634 |
msgstr ""
|
635 |
|
636 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
637 |
msgid ""
|
638 |
"Please note that \"Custom Permalinks\" (if activated) may break the behavior "
|
639 |
"of this plugin."
|
640 |
msgstr ""
|
641 |
|
642 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
643 |
msgid ""
|
644 |
"Therefore, it is recommended to disable \"Custom Permalink\" and import old "
|
645 |
"permalinks before using Permalink Manager Pro."
|
646 |
msgstr ""
|
647 |
|
648 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
649 |
#, php-format
|
650 |
msgid "Import %d URIs"
|
651 |
msgstr ""
|
652 |
|
653 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
654 |
msgid "No custom URIs to import"
|
655 |
msgstr ""
|
656 |
|
657 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
658 |
msgid "Technical support"
|
659 |
msgstr ""
|
660 |
|
661 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
662 |
#, php-format
|
663 |
msgid ""
|
664 |
"To find the answers on frequently asked questions and information about how "
|
@@ -666,529 +774,399 @@ msgid ""
|
|
666 |
"Base</strong> using <a target=\"_blank\" href=\"%s\">this link</a>."
|
667 |
msgstr ""
|
668 |
|
669 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
670 |
msgid ""
|
671 |
"If you still did not find the answer to your question, please send us your "
|
672 |
"question or a detailed description of your problem/issue to <a href=\"mailto:"
|
673 |
"support@permalinkmanager.pro\">support@permalinkmanager.pro</a>."
|
674 |
msgstr ""
|
675 |
|
676 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
677 |
msgid ""
|
678 |
"To reduce the response time, please attach your licence key and if possible "
|
679 |
"also: URL address of your website and screenshots explaining the issue."
|
680 |
msgstr ""
|
681 |
|
682 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
683 |
msgid "Suggestions/feedback"
|
684 |
msgstr ""
|
685 |
|
686 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
687 |
msgid ""
|
688 |
"If you would like to suggest a new functionality or leave us feedback, we "
|
689 |
"are open to all new ideas and would be grateful for all your comments!"
|
690 |
msgstr ""
|
691 |
|
692 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
693 |
msgid ""
|
694 |
" Please send your remarks to <a href=\"mailto:contact@permalinkmanager.pro\">"
|
695 |
"contact@permalinkmanager.pro</a>."
|
696 |
msgstr ""
|
697 |
|
698 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
699 |
msgid "Extra redirects (aliases)"
|
700 |
msgstr ""
|
701 |
|
702 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
703 |
msgid ""
|
704 |
"All URIs specified below will redirect the visitors to the custom URI "
|
705 |
"defined above in \"Current URI\" field."
|
706 |
msgstr ""
|
707 |
|
708 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
709 |
msgid "sample/custom-uri"
|
710 |
msgstr ""
|
711 |
|
712 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
713 |
-
msgid "Add new redirect"
|
714 |
-
msgstr ""
|
715 |
-
|
716 |
-
#: includes/views/permalink-manager-pro-addons.php:298
|
717 |
#, php-format
|
718 |
msgid ""
|
719 |
"<strong>Please use URIs only!</strong><br />For instance, to set-up a "
|
720 |
"redirect for <code>%s/old-uri</code> please use <code>old-uri</code>."
|
721 |
msgstr ""
|
722 |
|
723 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
|
|
|
|
|
|
|
|
724 |
msgid "Redirect this page to external URL"
|
725 |
msgstr ""
|
726 |
|
727 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
728 |
msgid ""
|
729 |
"If not empty, the visitors trying to access this page will be redirected to "
|
730 |
"the URL specified below."
|
731 |
msgstr ""
|
732 |
|
733 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
734 |
msgid "http://another-website.com/final-target-url"
|
735 |
msgstr ""
|
736 |
|
737 |
-
#: includes/views/permalink-manager-pro-addons.php:
|
738 |
msgid ""
|
739 |
"<strong>Please use full URLs!</strong><br />For instance, <code>http:"
|
740 |
"//another-website.com/final-target-url</code>."
|
741 |
msgstr ""
|
742 |
|
743 |
-
#: includes/
|
744 |
-
msgid "
|
745 |
-
msgstr ""
|
746 |
-
|
747 |
-
#: includes/views/permalink-manager-uri-editor.php:83
|
748 |
-
msgid "Apply"
|
749 |
-
msgstr ""
|
750 |
-
|
751 |
-
#: includes/views/permalink-manager-uri-editor.php:89
|
752 |
-
msgid "Per page"
|
753 |
-
msgstr ""
|
754 |
-
|
755 |
-
#: includes/views/permalink-manager-uri-editor.php:94
|
756 |
-
msgid "Post statuses"
|
757 |
-
msgstr ""
|
758 |
-
|
759 |
-
#: includes/views/permalink-manager-uri-editor-tax.php:51
|
760 |
-
msgid "Term title"
|
761 |
-
msgstr ""
|
762 |
-
|
763 |
-
#: includes/views/permalink-manager-uri-editor-tax.php:53
|
764 |
-
msgid "Count"
|
765 |
-
msgstr ""
|
766 |
-
|
767 |
-
#: includes/views/permalink-manager-settings.php:33
|
768 |
-
msgid "General settings"
|
769 |
-
msgstr ""
|
770 |
-
|
771 |
-
#: includes/views/permalink-manager-settings.php:39
|
772 |
-
msgid "Auto-update permalinks"
|
773 |
-
msgstr ""
|
774 |
-
|
775 |
-
#: includes/views/permalink-manager-settings.php:41
|
776 |
-
msgid ""
|
777 |
-
"If enabled, the custom permalinks will be automatically updated every time "
|
778 |
-
"the post is saved or updated."
|
779 |
-
msgstr ""
|
780 |
-
|
781 |
-
#: includes/views/permalink-manager-settings.php:45
|
782 |
-
msgid "Show \"Native slug\" field"
|
783 |
-
msgstr ""
|
784 |
-
|
785 |
-
#: includes/views/permalink-manager-settings.php:47
|
786 |
-
msgid ""
|
787 |
-
"If enabled, it would be possible to edit the native slug via URI Editor on "
|
788 |
-
"single post/term edit page."
|
789 |
-
msgstr ""
|
790 |
-
|
791 |
-
#: includes/views/permalink-manager-settings.php:51
|
792 |
-
msgid "Force 404 on non-existing pagination pages"
|
793 |
-
msgstr ""
|
794 |
-
|
795 |
-
#: includes/views/permalink-manager-settings.php:53
|
796 |
-
msgid ""
|
797 |
-
"If enabled, the non-existing pagination pages (for single posts) will return "
|
798 |
-
"404 (\"Not Found\") error.<br /><strong>Please disable it, if you encounter "
|
799 |
-
"any problems with pagination pages or use custom pagination system.</strong>"
|
800 |
-
msgstr ""
|
801 |
-
|
802 |
-
#: includes/views/permalink-manager-settings.php:57
|
803 |
-
msgid "Force HTTPS in URLs"
|
804 |
msgstr ""
|
805 |
|
806 |
-
#: includes/
|
807 |
-
msgid ""
|
808 |
-
"<strong>Please disable it, if you encounter any redirect loop issues."
|
809 |
-
"</strong>"
|
810 |
msgstr ""
|
811 |
|
812 |
-
#: includes/
|
813 |
-
msgid "
|
814 |
msgstr ""
|
815 |
|
816 |
-
#: includes/
|
817 |
-
msgid "
|
818 |
msgstr ""
|
819 |
|
820 |
-
#: includes/
|
821 |
-
msgid ""
|
822 |
-
"This function allows Wordpress to correct the URLs used by the visitors."
|
823 |
msgstr ""
|
824 |
|
825 |
-
#: includes/
|
826 |
-
msgid "
|
827 |
msgstr ""
|
828 |
|
829 |
-
#: includes/
|
830 |
-
msgid ""
|
831 |
-
"If enabled, the redirects will be automatially created for old custom "
|
832 |
-
"permalinks, after posts or terms URLs are changed."
|
833 |
msgstr ""
|
834 |
|
835 |
-
#: includes/
|
836 |
-
msgid "
|
837 |
msgstr ""
|
838 |
|
839 |
-
#: includes/
|
840 |
-
msgid "
|
841 |
msgstr ""
|
842 |
|
843 |
-
#: includes/
|
844 |
-
msgid "
|
845 |
msgstr ""
|
846 |
|
847 |
-
#: includes/
|
848 |
-
msgid "
|
849 |
msgstr ""
|
850 |
|
851 |
-
#: includes/
|
852 |
-
msgid ""
|
853 |
-
"If enabled - the visitors will be redirected from native permalinks to your "
|
854 |
-
"custom permalinks."
|
855 |
msgstr ""
|
856 |
|
857 |
-
#: includes/
|
858 |
-
msgid "
|
859 |
msgstr ""
|
860 |
|
861 |
-
#: includes/
|
862 |
-
msgid "
|
863 |
msgstr ""
|
864 |
|
865 |
-
#: includes/
|
866 |
-
msgid "
|
867 |
msgstr ""
|
868 |
|
869 |
-
#: includes/
|
870 |
-
msgid "
|
871 |
msgstr ""
|
872 |
|
873 |
-
#: includes/
|
874 |
-
msgid "
|
875 |
msgstr ""
|
876 |
|
877 |
-
#: includes/
|
878 |
-
msgid "
|
879 |
msgstr ""
|
880 |
|
881 |
-
#: includes/
|
882 |
-
msgid ""
|
883 |
-
"This option can be used to alter the native settings and control if trailing "
|
884 |
-
"slash should be added or removed from the end of posts & terms permalinks."
|
885 |
msgstr ""
|
886 |
|
887 |
-
#: includes/
|
888 |
-
msgid "
|
889 |
msgstr ""
|
890 |
|
891 |
-
#: includes/
|
892 |
-
msgid "
|
893 |
msgstr ""
|
894 |
|
895 |
-
#: includes/
|
896 |
#, php-format
|
897 |
msgid ""
|
898 |
-
"
|
899 |
-
"
|
900 |
-
"href=\"%s\">to this page</a>."
|
901 |
-
msgstr ""
|
902 |
-
|
903 |
-
#: includes/views/permalink-manager-settings.php:111
|
904 |
-
msgid "Fix language mismatch"
|
905 |
-
msgstr ""
|
906 |
-
|
907 |
-
#: includes/views/permalink-manager-settings.php:113
|
908 |
-
msgid ""
|
909 |
-
"If enabled, the plugin will load the adjacent translation of post when the "
|
910 |
-
"custom permalink is detected, but the language code in the URL does not "
|
911 |
-
"match the language code assigned to the post/term."
|
912 |
-
msgstr ""
|
913 |
-
|
914 |
-
#: includes/views/permalink-manager-settings.php:117
|
915 |
-
msgid "Disable support for WP All Import"
|
916 |
-
msgstr ""
|
917 |
-
|
918 |
-
#: includes/views/permalink-manager-settings.php:119
|
919 |
-
msgid ""
|
920 |
-
"If checked, the custom URIs will not be assigned to the posts imported by Wp "
|
921 |
-
"All Import Pro plugin."
|
922 |
-
msgstr ""
|
923 |
-
|
924 |
-
#: includes/views/permalink-manager-settings.php:123
|
925 |
-
msgid "Yoast SEO breadcrumbs"
|
926 |
msgstr ""
|
927 |
|
928 |
-
#: includes/
|
|
|
929 |
msgid ""
|
930 |
-
"
|
931 |
-
"
|
932 |
msgstr ""
|
933 |
|
934 |
-
#: includes/
|
935 |
-
msgid "
|
936 |
-
msgstr ""
|
937 |
-
|
938 |
-
#: includes/views/permalink-manager-settings.php:131
|
939 |
-
msgid "No, use native slugs"
|
940 |
msgstr ""
|
941 |
|
942 |
-
#: includes/
|
943 |
-
msgid "
|
944 |
msgstr ""
|
945 |
|
946 |
-
#: includes/
|
947 |
msgid ""
|
948 |
-
"
|
949 |
-
"
|
950 |
-
"post or term title is used more than once."
|
951 |
-
msgstr ""
|
952 |
-
|
953 |
-
#: includes/views/permalink-manager-settings.php:136
|
954 |
-
msgid "Strip special characters from slugs"
|
955 |
msgstr ""
|
956 |
|
957 |
-
#: includes/
|
958 |
-
msgid "
|
959 |
msgstr ""
|
960 |
|
961 |
-
#: includes/
|
962 |
-
msgid "
|
963 |
msgstr ""
|
964 |
|
965 |
-
#: includes/
|
966 |
-
msgid ""
|
967 |
-
"If enabled only alphanumeric characters, underscores and dashes will be "
|
968 |
-
"allowed for post/term slugs."
|
969 |
msgstr ""
|
970 |
|
971 |
-
#: includes/
|
972 |
-
msgid "
|
973 |
msgstr ""
|
974 |
|
975 |
-
#: includes/
|
976 |
-
msgid ""
|
977 |
-
"Permalink Manager will ignore and not filter the custom permalinks of all "
|
978 |
-
"selected above post types & taxonomies."
|
979 |
msgstr ""
|
980 |
|
981 |
-
#: includes/
|
982 |
-
|
|
|
|
|
|
|
983 |
msgstr ""
|
984 |
|
985 |
-
#: includes/
|
986 |
-
|
987 |
-
|
|
|
|
|
|
|
988 |
|
989 |
-
#: includes/
|
990 |
-
|
|
|
991 |
msgstr ""
|
992 |
|
993 |
-
#: includes/
|
994 |
-
msgid "
|
995 |
msgstr ""
|
996 |
|
997 |
-
#: includes/
|
998 |
-
msgid "
|
999 |
msgstr ""
|
1000 |
|
1001 |
-
#: includes/
|
1002 |
#, php-format
|
1003 |
-
msgid ""
|
1004 |
-
"Only the users who have selected capability will be able to access URI "
|
1005 |
-
"Editor.<br />The list of capabilities <a href=\"%s\" target=\"_blank\">can "
|
1006 |
-
"be found here</a>."
|
1007 |
-
msgstr ""
|
1008 |
-
|
1009 |
-
#: includes/views/permalink-manager-settings.php:157
|
1010 |
-
msgid "Save settings"
|
1011 |
msgstr ""
|
1012 |
|
1013 |
-
#: includes/
|
1014 |
-
msgid "
|
1015 |
msgstr ""
|
1016 |
|
1017 |
-
#: includes/
|
1018 |
-
|
|
|
1019 |
msgstr ""
|
1020 |
|
1021 |
-
#: includes/
|
1022 |
-
msgid "
|
1023 |
msgstr ""
|
1024 |
|
1025 |
-
#: includes/
|
1026 |
-
msgid "
|
1027 |
msgstr ""
|
1028 |
|
1029 |
-
#: includes/
|
1030 |
-
msgid "
|
1031 |
msgstr ""
|
1032 |
|
1033 |
-
#: includes/
|
1034 |
-
msgid ""
|
1035 |
-
"<strong>A MySQL backup is highly recommended before using \"<em>Native "
|
1036 |
-
"slugs</em>\" mode!</strong>"
|
1037 |
msgstr ""
|
1038 |
|
1039 |
-
|
1040 |
-
|
|
|
|
|
|
|
|
|
|
|
1041 |
msgstr ""
|
1042 |
|
1043 |
-
#: includes/
|
1044 |
-
msgid "
|
1045 |
msgstr ""
|
1046 |
|
1047 |
-
#: includes/
|
1048 |
-
msgid "
|
1049 |
msgstr ""
|
1050 |
|
1051 |
-
#: includes/
|
1052 |
-
msgid "
|
1053 |
msgstr ""
|
1054 |
|
1055 |
-
#: includes/
|
1056 |
-
msgid "
|
1057 |
msgstr ""
|
1058 |
|
1059 |
-
#: includes/
|
1060 |
-
|
1061 |
-
msgid "Remove broken URI"
|
1062 |
msgstr ""
|
1063 |
|
1064 |
-
#: includes/
|
1065 |
-
|
|
|
|
|
|
|
1066 |
msgstr ""
|
1067 |
|
1068 |
-
#: includes/
|
1069 |
-
|
|
|
1070 |
msgstr ""
|
1071 |
|
1072 |
-
#: includes/
|
1073 |
-
|
|
|
1074 |
msgstr ""
|
1075 |
|
1076 |
-
#: includes/
|
1077 |
-
|
|
|
1078 |
msgstr ""
|
1079 |
|
1080 |
-
#: includes/
|
1081 |
-
|
|
|
1082 |
msgstr ""
|
1083 |
|
1084 |
-
#: includes/
|
1085 |
-
#: includes/
|
1086 |
-
msgid "
|
1087 |
msgstr ""
|
1088 |
|
1089 |
-
#: includes/
|
1090 |
-
msgid "
|
1091 |
msgstr ""
|
1092 |
|
1093 |
-
#: includes/
|
1094 |
-
msgid "
|
1095 |
msgstr ""
|
1096 |
|
1097 |
-
#: includes/
|
1098 |
-
#: includes/
|
1099 |
-
msgid "
|
1100 |
msgstr ""
|
1101 |
|
1102 |
-
#: includes/
|
1103 |
-
#: includes/
|
1104 |
-
msgid "
|
1105 |
msgstr ""
|
1106 |
|
1107 |
-
#: includes/
|
1108 |
-
|
1109 |
-
msgid "
|
1110 |
msgstr ""
|
1111 |
|
1112 |
-
#: includes/
|
1113 |
-
|
1114 |
-
msgid "Select post statuses"
|
1115 |
msgstr ""
|
1116 |
|
1117 |
-
#: includes/
|
1118 |
-
|
1119 |
-
msgid "Select IDs"
|
1120 |
msgstr ""
|
1121 |
|
1122 |
-
#: includes/
|
1123 |
-
#: includes/views/permalink-manager-tools.php:277
|
1124 |
msgid ""
|
1125 |
-
"
|
1126 |
-
"
|
1127 |
-
msgstr ""
|
1128 |
-
|
1129 |
-
#: includes/views/permalink-manager-tools.php:206
|
1130 |
-
#: includes/views/permalink-manager-tools.php:283
|
1131 |
-
msgid "Important notices"
|
1132 |
-
msgstr ""
|
1133 |
-
|
1134 |
-
#: includes/views/permalink-manager-tools.php:209
|
1135 |
-
msgid "Find and replace"
|
1136 |
-
msgstr ""
|
1137 |
-
|
1138 |
-
#: includes/views/permalink-manager-tools.php:226
|
1139 |
-
msgid "Regenerate custom permalinks"
|
1140 |
-
msgstr ""
|
1141 |
-
|
1142 |
-
#: includes/views/permalink-manager-tools.php:227
|
1143 |
-
msgid "Regenerate native slugs"
|
1144 |
-
msgstr ""
|
1145 |
-
|
1146 |
-
#: includes/views/permalink-manager-tools.php:228
|
1147 |
-
msgid "Use original URLs as custom permalinks"
|
1148 |
-
msgstr ""
|
1149 |
-
|
1150 |
-
#: includes/views/permalink-manager-tools.php:286
|
1151 |
-
msgid "Regenerate"
|
1152 |
-
msgstr ""
|
1153 |
-
|
1154 |
-
#: includes/views/permalink-manager-debug.php:14
|
1155 |
-
msgid "Debug"
|
1156 |
-
msgstr ""
|
1157 |
-
|
1158 |
-
#: includes/views/permalink-manager-debug.php:26
|
1159 |
-
msgid "Debug data"
|
1160 |
msgstr ""
|
1161 |
|
1162 |
-
#: includes/
|
1163 |
-
msgid "
|
1164 |
msgstr ""
|
1165 |
|
1166 |
-
#: includes/
|
1167 |
-
msgid "
|
|
|
|
|
1168 |
msgstr ""
|
1169 |
|
1170 |
-
#: includes/
|
1171 |
-
msgid "
|
1172 |
msgstr ""
|
1173 |
|
1174 |
-
#: includes/
|
1175 |
-
msgid "
|
1176 |
msgstr ""
|
1177 |
|
1178 |
-
#: includes/
|
1179 |
-
msgid "
|
1180 |
msgstr ""
|
1181 |
|
1182 |
-
#: includes/
|
1183 |
-
msgid "
|
1184 |
msgstr ""
|
1185 |
|
1186 |
-
#: includes/
|
1187 |
-
msgid "
|
1188 |
msgstr ""
|
1189 |
|
1190 |
-
#: includes/
|
1191 |
-
msgid "
|
1192 |
msgstr ""
|
1193 |
|
1194 |
#. Name of the plugin
|
3 |
msgstr ""
|
4 |
"Project-Id-Version: PACKAGE VERSION\n"
|
5 |
"Report-Msgid-Bugs-To: \n"
|
6 |
+
"POT-Creation-Date: 2018-06-13 10:15+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:185
|
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/views/permalink-manager-upgrade.php:16
|
27 |
+
msgid "Extra features"
|
28 |
msgstr ""
|
29 |
|
30 |
+
#: includes/views/permalink-manager-upgrade.php:24
|
31 |
+
msgid "Permalink Manager Pro extra features"
|
32 |
msgstr ""
|
33 |
|
34 |
+
#: includes/views/permalink-manager-upgrade.php:26
|
35 |
+
msgid ""
|
36 |
+
"Take full control of your permalinks! Permalink Manager Pro contains a bunch "
|
37 |
+
"of useful extra functionalities!"
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
msgstr ""
|
39 |
|
40 |
+
#: includes/views/permalink-manager-upgrade.php:27
|
41 |
+
msgid ""
|
42 |
+
"Not certain if Permalink Manager Pro will fix your permalink problem?<br />"
|
43 |
+
"Contact us at <a href=\"mailto:contact@permalinkmanager.pro\">"
|
44 |
+
"contact@permalinkmanager.pro</a>!"
|
45 |
msgstr ""
|
46 |
|
47 |
+
#: includes/views/permalink-manager-upgrade.php:31
|
48 |
+
msgid "Full Taxonomy Support"
|
|
|
|
|
|
|
49 |
msgstr ""
|
50 |
|
51 |
+
#: includes/views/permalink-manager-upgrade.php:32
|
52 |
+
msgid ""
|
53 |
+
"With Permalink Manager Pro you can easily alter the default taxonomies’ "
|
54 |
+
"permastructures & edit the full permalink in all the categories, tags and "
|
55 |
+
"custom taxonomies terms!"
|
56 |
msgstr ""
|
57 |
|
58 |
+
#: includes/views/permalink-manager-upgrade.php:33
|
59 |
+
msgid ""
|
60 |
+
"You can also bulk edit the taxonomies permalinks (eg. reset the native terms "
|
61 |
+
"slugs) with included tools - “Find & replace” or “Regnerate/reset”"
|
|
|
62 |
msgstr ""
|
63 |
|
64 |
+
#: includes/views/permalink-manager-upgrade.php:36
|
65 |
+
msgid "Full WooCommerce Support"
|
66 |
msgstr ""
|
67 |
|
68 |
+
#: includes/views/permalink-manager-upgrade.php:37
|
69 |
+
msgid ""
|
70 |
+
"Adjust your shop, product category, tags or single product permalinks and "
|
71 |
+
"set your e-commerce URLs any way you want!"
|
72 |
msgstr ""
|
73 |
|
74 |
+
#: includes/views/permalink-manager-upgrade.php:38
|
75 |
+
msgid ""
|
76 |
+
"Remove <em>product-category</em>, <em>product-tag</em> and <em>product</em> "
|
77 |
+
"or replace them with another permalink tags. Furthermore, the plugin allows "
|
78 |
+
"to set completely custom permalinks for each product & product "
|
79 |
+
"taxonomies individually."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: includes/views/permalink-manager-upgrade.php:41
|
83 |
+
msgid "Custom fields inside permalinks"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: includes/views/permalink-manager-upgrade.php:42
|
87 |
+
msgid ""
|
88 |
+
"Automatically embed your custom fields values inside the permalinks, by "
|
89 |
+
"adding the custom field tags to the permastructures."
|
90 |
msgstr ""
|
91 |
|
92 |
+
#: includes/views/permalink-manager-upgrade.php:43
|
93 |
+
msgid ""
|
94 |
+
"This functionality is compatible with meta keys set with Advanced Custom "
|
95 |
+
"Fields plugin."
|
96 |
msgstr ""
|
97 |
|
98 |
+
#: includes/views/permalink-manager-upgrade.php:46
|
99 |
+
msgid "Extra Redirects"
|
100 |
msgstr ""
|
101 |
|
102 |
+
#: includes/views/permalink-manager-upgrade.php:47
|
103 |
msgid ""
|
104 |
+
"Set-up extra redirects and/or aliases for each post or term. Permalink "
|
105 |
+
"Manager would also automatically create redirects for previously used custom "
|
106 |
+
"permalinks."
|
|
|
107 |
msgstr ""
|
108 |
|
109 |
+
#: includes/views/permalink-manager-upgrade.php:50
|
110 |
+
msgid "Import permalinks from \"Custom Permalinks\""
|
111 |
msgstr ""
|
112 |
|
113 |
+
#: includes/views/permalink-manager-upgrade.php:51
|
114 |
+
msgid ""
|
115 |
+
"Additionally, Permalink Manager Pro allows to import the custom URIs defined "
|
116 |
+
"previously with \"Custom Permalinks\" plugin. "
|
117 |
msgstr ""
|
118 |
|
119 |
+
#: includes/views/permalink-manager-upgrade.php:54
|
120 |
+
msgid "Remove \"stop words\" from permalinks"
|
121 |
msgstr ""
|
122 |
|
123 |
+
#: includes/views/permalink-manager-upgrade.php:55
|
124 |
+
msgid ""
|
125 |
+
"Set your own list of stop words or use a predefined one available in 21 "
|
126 |
+
"languages. If enabled, all the words will be automatically removed from the "
|
127 |
+
"default permalinks."
|
128 |
msgstr ""
|
129 |
|
130 |
+
#: includes/views/permalink-manager-upgrade.php:59
|
131 |
+
msgid "More info about Permalink Manager Pro"
|
132 |
msgstr ""
|
133 |
|
134 |
+
#: includes/views/permalink-manager-upgrade.php:59
|
135 |
+
#: includes/core/permalink-manager-admin-functions.php:121
|
136 |
+
msgid "Buy Permalink Manager Pro"
|
137 |
msgstr ""
|
138 |
|
139 |
+
#: includes/views/permalink-manager-uri-editor.php:28
|
140 |
+
msgid "URI editor"
|
141 |
msgstr ""
|
142 |
|
143 |
+
#: includes/views/permalink-manager-uri-editor.php:83
|
144 |
+
msgid "Apply"
|
145 |
msgstr ""
|
146 |
|
147 |
+
#: includes/views/permalink-manager-uri-editor.php:89
|
148 |
+
msgid "Per page"
|
|
|
149 |
msgstr ""
|
150 |
|
151 |
+
#: includes/views/permalink-manager-uri-editor.php:94
|
152 |
+
msgid "Post statuses"
|
|
|
153 |
msgstr ""
|
154 |
|
155 |
+
#: includes/views/permalink-manager-uri-editor-post.php:54
|
156 |
+
msgid "Post title"
|
|
|
157 |
msgstr ""
|
158 |
|
159 |
+
#: includes/views/permalink-manager-uri-editor-post.php:55
|
160 |
+
#: includes/views/permalink-manager-uri-editor-tax.php:51
|
161 |
+
msgid "Full URI & Permalink"
|
162 |
msgstr ""
|
163 |
|
164 |
+
#: includes/views/permalink-manager-uri-editor-post.php:88
|
165 |
+
msgid "Inherit (Attachment)"
|
|
|
166 |
msgstr ""
|
167 |
|
168 |
+
#: includes/views/permalink-manager-uri-editor-post.php:105
|
169 |
+
#: includes/views/permalink-manager-uri-editor-tax.php:94
|
170 |
+
msgid "Slug"
|
171 |
msgstr ""
|
172 |
|
173 |
+
#: includes/views/permalink-manager-uri-editor-post.php:106
|
174 |
+
msgid "Post status"
|
175 |
msgstr ""
|
176 |
|
177 |
+
#: includes/views/permalink-manager-uri-editor-post.php:111
|
178 |
+
#: includes/views/permalink-manager-uri-editor-tax.php:99
|
179 |
+
#: includes/views/permalink-manager-uri-editor-tax.php:99
|
180 |
+
msgid "Edit"
|
181 |
+
msgstr ""
|
|
|
182 |
|
183 |
+
#: includes/views/permalink-manager-uri-editor-post.php:112
|
184 |
+
#: includes/views/permalink-manager-uri-editor-tax.php:100
|
185 |
+
#: includes/views/permalink-manager-uri-editor-tax.php:100
|
186 |
+
msgid "View"
|
187 |
msgstr ""
|
188 |
|
189 |
+
#: includes/views/permalink-manager-uri-editor-post.php:140
|
190 |
+
#: includes/views/permalink-manager-uri-editor-tax.php:137
|
191 |
+
msgid "Update all the URIs below"
|
192 |
msgstr ""
|
193 |
|
194 |
+
#: includes/views/permalink-manager-uri-editor-post.php:141
|
195 |
+
#: includes/views/permalink-manager-uri-editor-tax.php:138
|
196 |
+
msgid "Update all the URIs above"
|
197 |
msgstr ""
|
198 |
|
199 |
+
#: includes/views/permalink-manager-uri-editor-post.php:159
|
200 |
+
msgid "All dates"
|
|
|
201 |
msgstr ""
|
202 |
|
203 |
+
#: includes/views/permalink-manager-uri-editor-post.php:168
|
204 |
+
msgid "Filter"
|
|
|
205 |
msgstr ""
|
206 |
|
207 |
+
#: includes/views/permalink-manager-debug.php:14
|
208 |
+
msgid "Debug"
|
209 |
msgstr ""
|
210 |
|
211 |
+
#: includes/views/permalink-manager-debug.php:26
|
212 |
+
msgid "Debug data"
|
213 |
msgstr ""
|
214 |
|
215 |
+
#: includes/views/permalink-manager-debug.php:30
|
216 |
+
msgid "List of the URIs generated by this plugin."
|
|
|
|
|
|
|
217 |
msgstr ""
|
218 |
|
219 |
+
#: includes/views/permalink-manager-debug.php:31
|
220 |
+
msgid "Array with URIs"
|
221 |
msgstr ""
|
222 |
|
223 |
+
#: includes/views/permalink-manager-debug.php:37
|
224 |
+
msgid "List of custom redirects set-up by this plugin."
|
|
|
|
|
225 |
msgstr ""
|
226 |
|
227 |
+
#: includes/views/permalink-manager-debug.php:38
|
228 |
+
msgid "Array with redirects"
|
229 |
msgstr ""
|
230 |
|
231 |
+
#: includes/views/permalink-manager-debug.php:44
|
232 |
+
msgid "List of the permastructures."
|
|
|
|
|
233 |
msgstr ""
|
234 |
|
235 |
+
#: includes/views/permalink-manager-debug.php:45
|
236 |
+
msgid "Array with permastructures"
|
237 |
msgstr ""
|
238 |
|
239 |
+
#: includes/views/permalink-manager-debug.php:51
|
240 |
+
msgid "Currently used plugin settings."
|
241 |
msgstr ""
|
242 |
|
243 |
+
#: includes/views/permalink-manager-debug.php:52
|
244 |
+
msgid "Array with settings used in this plugin."
|
245 |
msgstr ""
|
246 |
|
247 |
+
#: includes/views/permalink-manager-tools.php:15
|
248 |
+
msgid "Tools"
|
|
|
|
|
|
|
|
|
249 |
msgstr ""
|
250 |
|
251 |
+
#: includes/views/permalink-manager-tools.php:18
|
252 |
+
msgid "Permalink Duplicates"
|
253 |
msgstr ""
|
254 |
|
255 |
+
#: includes/views/permalink-manager-tools.php:22
|
256 |
+
msgid "Find & Replace"
|
257 |
msgstr ""
|
258 |
|
259 |
+
#: includes/views/permalink-manager-tools.php:26
|
260 |
+
msgid "Regenerate/Reset"
|
261 |
msgstr ""
|
262 |
|
263 |
+
#: includes/views/permalink-manager-tools.php:30
|
264 |
+
msgid "Stop Words"
|
|
|
|
|
|
|
265 |
msgstr ""
|
266 |
|
267 |
+
#: includes/views/permalink-manager-tools.php:34
|
268 |
+
#: includes/views/permalink-manager-pro-addons.php:219
|
269 |
+
msgid "Custom Permalinks"
|
|
|
|
|
|
|
270 |
msgstr ""
|
271 |
|
272 |
+
#: includes/views/permalink-manager-tools.php:44
|
273 |
msgid ""
|
274 |
+
"<strong>A MySQL backup is highly recommended before using \"<em>Native "
|
275 |
+
"slugs</em>\" mode!</strong>"
|
276 |
msgstr ""
|
277 |
|
278 |
+
#: includes/views/permalink-manager-tools.php:54
|
279 |
+
msgid "List of duplicated permalinks"
|
280 |
msgstr ""
|
281 |
|
282 |
+
#: includes/views/permalink-manager-tools.php:55
|
283 |
+
msgid "Remove all broken URIs"
|
|
|
|
|
|
|
|
|
284 |
msgstr ""
|
285 |
|
286 |
+
#: includes/views/permalink-manager-tools.php:70
|
287 |
+
msgid "Extra Redirect"
|
288 |
msgstr ""
|
289 |
|
290 |
+
#: includes/views/permalink-manager-tools.php:70
|
291 |
+
#: includes/core/permalink-manager-uri-functions-tax.php:476
|
292 |
+
msgid "Custom URI"
|
|
|
|
|
293 |
msgstr ""
|
294 |
|
295 |
+
#: includes/views/permalink-manager-tools.php:81
|
296 |
+
msgid "Edit term"
|
297 |
msgstr ""
|
298 |
|
299 |
+
#: includes/views/permalink-manager-tools.php:84
|
300 |
+
msgid "(Removed term)"
|
301 |
msgstr ""
|
302 |
|
303 |
+
#: includes/views/permalink-manager-tools.php:85
|
304 |
+
#: includes/views/permalink-manager-tools.php:98
|
305 |
+
msgid "Remove broken URI"
|
306 |
msgstr ""
|
307 |
|
308 |
+
#: includes/views/permalink-manager-tools.php:94
|
309 |
+
msgid "Edit post"
|
310 |
msgstr ""
|
311 |
|
312 |
+
#: includes/views/permalink-manager-tools.php:97
|
313 |
+
msgid "(Removed post)"
|
314 |
msgstr ""
|
315 |
|
316 |
+
#: includes/views/permalink-manager-tools.php:120
|
317 |
+
msgid "Congratulations! No duplicated URIs or Redirects found!"
|
318 |
msgstr ""
|
319 |
|
320 |
+
#: includes/views/permalink-manager-tools.php:134
|
321 |
+
msgid "Find ..."
|
322 |
msgstr ""
|
323 |
|
324 |
+
#: includes/views/permalink-manager-tools.php:140
|
325 |
+
msgid "Replace with ..."
|
326 |
msgstr ""
|
327 |
|
328 |
+
#: includes/views/permalink-manager-tools.php:146
|
329 |
+
#: includes/views/permalink-manager-tools.php:216
|
330 |
+
msgid "Mode"
|
331 |
msgstr ""
|
332 |
|
333 |
+
#: includes/views/permalink-manager-tools.php:149
|
334 |
+
#: includes/views/permalink-manager-tools.php:219
|
335 |
+
msgid "Custom URIs"
|
336 |
msgstr ""
|
337 |
|
338 |
+
#: includes/views/permalink-manager-tools.php:149
|
339 |
+
msgid "Native slugs"
|
340 |
msgstr ""
|
341 |
|
342 |
+
#: includes/views/permalink-manager-tools.php:152
|
343 |
+
#: includes/views/permalink-manager-tools.php:222
|
344 |
+
msgid "Select content type"
|
345 |
msgstr ""
|
346 |
|
347 |
+
#: includes/views/permalink-manager-tools.php:158
|
348 |
+
#: includes/views/permalink-manager-tools.php:228
|
349 |
+
#: includes/views/permalink-manager-permastructs.php:38
|
350 |
+
msgid "Post types"
|
351 |
msgstr ""
|
352 |
|
353 |
+
#: includes/views/permalink-manager-tools.php:158
|
354 |
+
#: includes/views/permalink-manager-tools.php:228
|
355 |
+
#: includes/views/permalink-manager-permastructs.php:44
|
356 |
+
msgid "Taxonomies"
|
357 |
msgstr ""
|
358 |
|
359 |
+
#: includes/views/permalink-manager-tools.php:161
|
360 |
+
#: includes/views/permalink-manager-tools.php:231
|
361 |
+
msgid "Select post types"
|
362 |
msgstr ""
|
363 |
|
364 |
+
#: includes/views/permalink-manager-tools.php:170
|
365 |
+
#: includes/views/permalink-manager-tools.php:240
|
366 |
+
msgid "Select taxonomies"
|
367 |
msgstr ""
|
368 |
|
369 |
+
#: includes/views/permalink-manager-tools.php:181
|
370 |
+
#: includes/views/permalink-manager-tools.php:251
|
371 |
+
msgid "Select post statuses"
|
372 |
msgstr ""
|
373 |
|
374 |
+
#: includes/views/permalink-manager-tools.php:190
|
375 |
+
#: includes/views/permalink-manager-tools.php:260
|
376 |
+
msgid "Select IDs"
|
377 |
msgstr ""
|
378 |
|
379 |
+
#: includes/views/permalink-manager-tools.php:194
|
380 |
+
#: includes/views/permalink-manager-tools.php:264
|
381 |
+
msgid ""
|
382 |
+
"To narrow the above filters you can type the post IDs (or ranges) here. Eg. "
|
383 |
+
"<strong>1-8, 10, 25</strong>."
|
384 |
msgstr ""
|
385 |
|
386 |
+
#: includes/views/permalink-manager-tools.php:200
|
387 |
+
#: includes/views/permalink-manager-tools.php:270
|
388 |
+
#: includes/views/permalink-manager-permastructs.php:99
|
389 |
+
msgid "Important notices"
|
390 |
msgstr ""
|
391 |
|
392 |
+
#: includes/views/permalink-manager-tools.php:203
|
393 |
+
msgid "Find and replace"
|
394 |
msgstr ""
|
395 |
|
396 |
+
#: includes/views/permalink-manager-tools.php:219
|
397 |
+
msgid "Restore native slugs"
|
398 |
msgstr ""
|
399 |
|
400 |
+
#: includes/views/permalink-manager-tools.php:219
|
401 |
+
msgid "Restore native permalinks"
|
402 |
msgstr ""
|
403 |
|
404 |
+
#: includes/views/permalink-manager-tools.php:273
|
405 |
+
msgid "Regenerate"
|
|
|
|
|
406 |
msgstr ""
|
407 |
|
408 |
+
#: includes/views/permalink-manager-uri-editor-tax.php:50
|
409 |
+
msgid "Term title"
|
410 |
msgstr ""
|
411 |
|
412 |
+
#: includes/views/permalink-manager-uri-editor-tax.php:52
|
413 |
+
msgid "Count"
|
414 |
msgstr ""
|
415 |
|
416 |
+
#: includes/views/permalink-manager-settings.php:14
|
417 |
+
msgid "Settings"
|
|
|
418 |
msgstr ""
|
419 |
|
420 |
+
#: includes/views/permalink-manager-settings.php:33
|
421 |
+
msgid "General settings"
|
422 |
msgstr ""
|
423 |
|
424 |
+
#: includes/views/permalink-manager-settings.php:39
|
425 |
+
msgid "Auto-update permalinks"
|
|
|
426 |
msgstr ""
|
427 |
|
428 |
+
#: includes/views/permalink-manager-settings.php:41
|
429 |
+
msgid ""
|
430 |
+
"If enabled, the custom permalinks will be automatically updated every time "
|
431 |
+
"the post is saved or updated."
|
432 |
msgstr ""
|
433 |
|
434 |
+
#: includes/views/permalink-manager-settings.php:46
|
435 |
+
msgid "SEO functions"
|
436 |
msgstr ""
|
437 |
|
438 |
+
#: includes/views/permalink-manager-settings.php:52
|
439 |
+
msgid "Canonical redirect"
|
440 |
msgstr ""
|
441 |
|
442 |
+
#: includes/views/permalink-manager-settings.php:54
|
443 |
+
msgid ""
|
444 |
+
"This function allows Wordpress to correct the URLs used by the visitors."
|
445 |
msgstr ""
|
446 |
|
447 |
+
#: includes/views/permalink-manager-settings.php:58
|
448 |
+
msgid "Auto-create \"Extra Redirects\" for old permalinks"
|
449 |
msgstr ""
|
450 |
|
451 |
+
#: includes/views/permalink-manager-settings.php:62
|
452 |
+
msgid ""
|
453 |
+
"If enabled, the redirects will be automatially created for old custom "
|
454 |
+
"permalinks, after posts or terms are updated."
|
455 |
msgstr ""
|
456 |
|
457 |
+
#: includes/views/permalink-manager-settings.php:66
|
458 |
+
msgid "Redirect"
|
|
|
|
|
459 |
msgstr ""
|
460 |
|
461 |
+
#: includes/views/permalink-manager-settings.php:68
|
462 |
+
msgid "Disable"
|
463 |
msgstr ""
|
464 |
|
465 |
+
#: includes/views/permalink-manager-settings.php:68
|
466 |
+
msgid "Enable \"301 redirect\""
|
|
|
|
|
467 |
msgstr ""
|
468 |
|
469 |
+
#: includes/views/permalink-manager-settings.php:68
|
470 |
+
msgid "Enable \"302 redirect\""
|
471 |
+
msgstr ""
|
472 |
+
|
473 |
+
#: includes/views/permalink-manager-settings.php:69
|
474 |
msgid ""
|
475 |
+
"If enabled - the visitors will be redirected from native permalinks to your "
|
476 |
+
"custom permalinks.<br /><strong>Only native permalinks & extra redirects "
|
477 |
+
"will be redirected to new custom permalinks</strong>."
|
|
|
478 |
msgstr ""
|
479 |
|
480 |
+
#: includes/views/permalink-manager-settings.php:73
|
481 |
+
msgid "Trailing slashes"
|
482 |
+
msgstr ""
|
483 |
+
|
484 |
+
#: includes/views/permalink-manager-settings.php:75
|
485 |
+
msgid "Use default settings"
|
486 |
+
msgstr ""
|
487 |
+
|
488 |
+
#: includes/views/permalink-manager-settings.php:75
|
489 |
+
msgid "Add trailing slashes"
|
490 |
+
msgstr ""
|
491 |
+
|
492 |
+
#: includes/views/permalink-manager-settings.php:75
|
493 |
+
msgid "Add trailing slashes (+ auto-redirect links without them)"
|
494 |
+
msgstr ""
|
495 |
+
|
496 |
+
#: includes/views/permalink-manager-settings.php:75
|
497 |
+
msgid "Remove trailing slashes"
|
498 |
+
msgstr ""
|
499 |
+
|
500 |
+
#: includes/views/permalink-manager-settings.php:75
|
501 |
+
msgid "Remove trailing slashes (+ auto-redirect links with them)"
|
502 |
+
msgstr ""
|
503 |
+
|
504 |
+
#: includes/views/permalink-manager-settings.php:76
|
505 |
+
msgid ""
|
506 |
+
"This option can be used to alter the native settings and control if trailing "
|
507 |
+
"slash should be added or removed from the end of posts & terms permalinks."
|
508 |
msgstr ""
|
509 |
|
510 |
+
#: includes/views/permalink-manager-settings.php:80
|
511 |
+
msgid "Force 404 on non-existing pagination pages"
|
512 |
+
msgstr ""
|
513 |
+
|
514 |
+
#: includes/views/permalink-manager-settings.php:82
|
515 |
+
msgid ""
|
516 |
+
"If enabled, the non-existing pagination pages (for single posts) will return "
|
517 |
+
"404 (\"Not Found\") error.<br /><strong>Please disable it, if you encounter "
|
518 |
+
"any problems with pagination pages or use custom pagination system.</strong>"
|
519 |
+
msgstr ""
|
520 |
+
|
521 |
+
#: includes/views/permalink-manager-settings.php:87
|
522 |
+
msgid "Advanced settings"
|
523 |
+
msgstr ""
|
524 |
+
|
525 |
+
#: includes/views/permalink-manager-settings.php:93
|
526 |
+
msgid "Automatically remove broken URIs"
|
527 |
+
msgstr ""
|
528 |
+
|
529 |
+
#: includes/views/permalink-manager-settings.php:95
|
530 |
#, php-format
|
531 |
msgid ""
|
532 |
+
"If enabled, the custom URIs assigned to removed posts & terms will be "
|
533 |
+
"automatically removed.<br />To manually remove the duplicates please go <a "
|
534 |
+
"href=\"%s\">to this page</a>."
|
535 |
msgstr ""
|
536 |
|
537 |
+
#: includes/views/permalink-manager-settings.php:99
|
538 |
+
msgid "Fix language mismatch"
|
539 |
msgstr ""
|
540 |
|
541 |
+
#: includes/views/permalink-manager-settings.php:101
|
542 |
+
msgid ""
|
543 |
+
"If enabled, the plugin will load the adjacent translation of post when the "
|
544 |
+
"custom permalink is detected, but the language code in the URL does not "
|
545 |
+
"match the language code assigned to the post/term."
|
546 |
msgstr ""
|
547 |
|
548 |
+
#: includes/views/permalink-manager-settings.php:105
|
549 |
+
msgid "Force custom slugs"
|
|
|
550 |
msgstr ""
|
551 |
|
552 |
+
#: includes/views/permalink-manager-settings.php:107
|
553 |
+
msgid "No, use native slugs"
|
554 |
msgstr ""
|
555 |
|
556 |
+
#: includes/views/permalink-manager-settings.php:107
|
557 |
+
msgid "Yes, use post/term titles"
|
|
|
558 |
msgstr ""
|
559 |
|
560 |
+
#: includes/views/permalink-manager-settings.php:107
|
561 |
+
msgid "Yes, use post/term titles + do not strip special characters: .|-+"
|
562 |
msgstr ""
|
563 |
|
564 |
+
#: includes/views/permalink-manager-settings.php:108
|
565 |
+
msgid ""
|
566 |
+
"If enabled, the slugs in the default custom permalinks will be recreated "
|
567 |
+
"from the post titles.<br />This may cause permalinks duplicates when the "
|
568 |
+
"post or term title is used more than once."
|
569 |
msgstr ""
|
570 |
|
571 |
+
#: includes/views/permalink-manager-settings.php:112
|
572 |
+
msgid "Disable Permalink Manager functionalities"
|
|
|
|
|
573 |
msgstr ""
|
574 |
|
575 |
+
#: includes/views/permalink-manager-settings.php:114
|
576 |
+
msgid ""
|
577 |
+
"Select the post types & taxonomies where the functionalities of Permalink "
|
578 |
+
"Manager should be completely disabled."
|
579 |
msgstr ""
|
580 |
|
581 |
+
#: includes/views/permalink-manager-settings.php:120
|
582 |
+
msgid "Save settings"
|
|
|
583 |
msgstr ""
|
584 |
|
585 |
+
#: includes/views/permalink-manager-permastructs.php:15
|
586 |
+
msgid "Permastructures"
|
|
|
587 |
msgstr ""
|
588 |
|
589 |
+
#: includes/views/permalink-manager-permastructs.php:29
|
590 |
+
#, php-format
|
591 |
+
msgid ""
|
592 |
+
"All allowed <a href=\"%s\" target=\"_blank\">structure tags</a> are listed "
|
593 |
+
"below."
|
594 |
msgstr ""
|
595 |
|
596 |
+
#: includes/views/permalink-manager-permastructs.php:31
|
597 |
+
msgid ""
|
598 |
+
"Please note that some of them can be used only for particular post types "
|
599 |
+
"permastructures."
|
600 |
+
msgstr ""
|
601 |
+
|
602 |
+
#: includes/views/permalink-manager-permastructs.php:32
|
603 |
+
msgid ""
|
604 |
+
"<h5>Custom fields inside permastructures <small>(Permalink Manager Pro only)"
|
605 |
+
"</small></h5>"
|
606 |
+
msgstr ""
|
607 |
+
|
608 |
+
#: includes/views/permalink-manager-permastructs.php:33
|
609 |
+
msgid ""
|
610 |
+
"To use the custom fields inside the permalink, please use following tag "
|
611 |
+
"<code>%__custom_field_key%</code> and replace \"<em>custom_field_key</em>\" "
|
612 |
+
"with the full name of your custom field key."
|
613 |
+
msgstr ""
|
614 |
+
|
615 |
+
#: includes/views/permalink-manager-permastructs.php:54
|
616 |
+
msgid "WooCommerce"
|
617 |
+
msgstr ""
|
618 |
+
|
619 |
+
#: includes/views/permalink-manager-permastructs.php:88
|
620 |
+
msgid "Default permastructure"
|
621 |
+
msgstr ""
|
622 |
+
|
623 |
+
#: includes/views/permalink-manager-permastructs.php:89
|
624 |
+
msgid "Restore to Default Permastructure"
|
625 |
+
msgstr ""
|
626 |
+
|
627 |
+
#: includes/views/permalink-manager-permastructs.php:100
|
628 |
+
msgid ""
|
629 |
+
"This tool <strong>automatically appends the slug to the end of "
|
630 |
+
"permastructure</strong>, so there is no need to use them within the fields. "
|
631 |
+
"To prevent the overlapping URLs problem please keep the permastructures "
|
632 |
+
"unique."
|
633 |
+
msgstr ""
|
634 |
+
|
635 |
+
#: includes/views/permalink-manager-permastructs.php:101
|
636 |
+
#, php-format
|
637 |
+
msgid ""
|
638 |
+
"The current permastructures settings will be applied <strong>only to the new "
|
639 |
+
"posts & terms</strong>. To apply the <strong>new permastructures to old "
|
640 |
+
"posts & terms</strong>, please use \"Regenerate/reset\" tool available <a "
|
641 |
+
"href=\"%s\">here</a>."
|
642 |
+
msgstr ""
|
643 |
+
|
644 |
+
#: includes/views/permalink-manager-permastructs.php:103
|
645 |
+
msgid "Save permastructures"
|
646 |
msgstr ""
|
647 |
|
648 |
#: includes/views/permalink-manager-pro-addons.php:99
|
649 |
msgid "Support"
|
650 |
msgstr ""
|
651 |
|
652 |
+
#: includes/views/permalink-manager-pro-addons.php:122
|
653 |
+
#, php-format
|
654 |
+
msgid ""
|
655 |
+
"Your licence key expired! For more information please go to <a href=\"%s\" "
|
656 |
+
"target=\"_blank\">this page</a>."
|
657 |
+
msgstr ""
|
658 |
+
|
659 |
+
#: includes/views/permalink-manager-pro-addons.php:124
|
660 |
+
msgid "You own a lifetime licence key."
|
661 |
+
msgstr ""
|
662 |
+
|
663 |
#: includes/views/permalink-manager-pro-addons.php:126
|
664 |
+
#, php-format
|
665 |
+
msgid ""
|
666 |
+
"Your licence key is valid until %s. To prolong it please go to <a "
|
667 |
+
"href=\"%s\" target=\"_blank\">this page</a> for more information."
|
668 |
+
msgstr ""
|
669 |
+
|
670 |
+
#: includes/views/permalink-manager-pro-addons.php:128
|
671 |
+
msgid ""
|
672 |
+
"Please paste the licence key to access all Permalink Manager Pro updates!"
|
673 |
+
msgstr ""
|
674 |
+
|
675 |
+
#: includes/views/permalink-manager-pro-addons.php:133
|
676 |
msgid "Licence"
|
677 |
msgstr ""
|
678 |
|
679 |
+
#: includes/views/permalink-manager-pro-addons.php:138
|
680 |
msgid "Licence key"
|
681 |
msgstr ""
|
682 |
|
683 |
+
#: includes/views/permalink-manager-pro-addons.php:139
|
684 |
msgid ""
|
685 |
"The licence key allows you to access all the plugin updates & priority "
|
686 |
"support."
|
687 |
msgstr ""
|
688 |
|
689 |
+
#: includes/views/permalink-manager-pro-addons.php:164
|
|
|
|
|
|
|
|
|
690 |
msgid "-- Use predefined words list --"
|
691 |
msgstr ""
|
692 |
|
693 |
+
#: includes/views/permalink-manager-pro-addons.php:167
|
694 |
msgid "Remove all words"
|
695 |
msgstr ""
|
696 |
|
697 |
+
#: includes/views/permalink-manager-pro-addons.php:169
|
698 |
msgid "Add the words from the list"
|
699 |
msgstr ""
|
700 |
|
701 |
+
#: includes/views/permalink-manager-pro-addons.php:177
|
702 |
msgid "Enable \"stop words\""
|
703 |
msgstr ""
|
704 |
|
705 |
+
#: includes/views/permalink-manager-pro-addons.php:183
|
706 |
msgid "\"Stop words\" list"
|
707 |
msgstr ""
|
708 |
|
709 |
+
#: includes/views/permalink-manager-pro-addons.php:187
|
710 |
msgid "The words should be comma-separated."
|
711 |
msgstr ""
|
712 |
|
713 |
+
#: includes/views/permalink-manager-pro-addons.php:195
|
714 |
+
#: includes/views/permalink-manager-pro-addons.php:228
|
715 |
+
msgid "Instructions"
|
716 |
+
msgstr ""
|
717 |
+
|
718 |
+
#: includes/views/permalink-manager-pro-addons.php:196
|
719 |
msgid ""
|
720 |
"If enabled, all selected \"stop words\" will be automatically removed from "
|
721 |
"default URIs."
|
722 |
msgstr ""
|
723 |
|
724 |
+
#: includes/views/permalink-manager-pro-addons.php:197
|
725 |
msgid ""
|
726 |
"Each of the words can be removed and any new words can be added to the list. "
|
727 |
"You can also use a predefined list (available in 21 languages)."
|
728 |
msgstr ""
|
729 |
|
730 |
+
#: includes/views/permalink-manager-pro-addons.php:199
|
731 |
msgid "Save"
|
732 |
msgstr ""
|
733 |
|
734 |
+
#: includes/views/permalink-manager-pro-addons.php:220
|
|
|
|
|
|
|
|
|
|
|
735 |
msgid "Deactivate after import"
|
736 |
msgstr ""
|
737 |
|
738 |
+
#: includes/views/permalink-manager-pro-addons.php:223
|
739 |
msgid ""
|
740 |
"If selected, \"Custom Permalinks\" plugin will be deactivated after its "
|
741 |
"custom URIs are imported."
|
742 |
msgstr ""
|
743 |
|
744 |
+
#: includes/views/permalink-manager-pro-addons.php:229
|
745 |
msgid ""
|
746 |
"Please note that \"Custom Permalinks\" (if activated) may break the behavior "
|
747 |
"of this plugin."
|
748 |
msgstr ""
|
749 |
|
750 |
+
#: includes/views/permalink-manager-pro-addons.php:230
|
751 |
msgid ""
|
752 |
"Therefore, it is recommended to disable \"Custom Permalink\" and import old "
|
753 |
"permalinks before using Permalink Manager Pro."
|
754 |
msgstr ""
|
755 |
|
756 |
+
#: includes/views/permalink-manager-pro-addons.php:235
|
757 |
#, php-format
|
758 |
msgid "Import %d URIs"
|
759 |
msgstr ""
|
760 |
|
761 |
+
#: includes/views/permalink-manager-pro-addons.php:240
|
762 |
msgid "No custom URIs to import"
|
763 |
msgstr ""
|
764 |
|
765 |
+
#: includes/views/permalink-manager-pro-addons.php:253
|
766 |
msgid "Technical support"
|
767 |
msgstr ""
|
768 |
|
769 |
+
#: includes/views/permalink-manager-pro-addons.php:254
|
770 |
#, php-format
|
771 |
msgid ""
|
772 |
"To find the answers on frequently asked questions and information about how "
|
774 |
"Base</strong> using <a target=\"_blank\" href=\"%s\">this link</a>."
|
775 |
msgstr ""
|
776 |
|
777 |
+
#: includes/views/permalink-manager-pro-addons.php:255
|
778 |
msgid ""
|
779 |
"If you still did not find the answer to your question, please send us your "
|
780 |
"question or a detailed description of your problem/issue to <a href=\"mailto:"
|
781 |
"support@permalinkmanager.pro\">support@permalinkmanager.pro</a>."
|
782 |
msgstr ""
|
783 |
|
784 |
+
#: includes/views/permalink-manager-pro-addons.php:256
|
785 |
msgid ""
|
786 |
"To reduce the response time, please attach your licence key and if possible "
|
787 |
"also: URL address of your website and screenshots explaining the issue."
|
788 |
msgstr ""
|
789 |
|
790 |
+
#: includes/views/permalink-manager-pro-addons.php:258
|
791 |
msgid "Suggestions/feedback"
|
792 |
msgstr ""
|
793 |
|
794 |
+
#: includes/views/permalink-manager-pro-addons.php:259
|
795 |
msgid ""
|
796 |
"If you would like to suggest a new functionality or leave us feedback, we "
|
797 |
"are open to all new ideas and would be grateful for all your comments!"
|
798 |
msgstr ""
|
799 |
|
800 |
+
#: includes/views/permalink-manager-pro-addons.php:260
|
801 |
msgid ""
|
802 |
" Please send your remarks to <a href=\"mailto:contact@permalinkmanager.pro\">"
|
803 |
"contact@permalinkmanager.pro</a>."
|
804 |
msgstr ""
|
805 |
|
806 |
+
#: includes/views/permalink-manager-pro-addons.php:275
|
807 |
msgid "Extra redirects (aliases)"
|
808 |
msgstr ""
|
809 |
|
810 |
+
#: includes/views/permalink-manager-pro-addons.php:276
|
811 |
msgid ""
|
812 |
"All URIs specified below will redirect the visitors to the custom URI "
|
813 |
"defined above in \"Current URI\" field."
|
814 |
msgstr ""
|
815 |
|
816 |
+
#: includes/views/permalink-manager-pro-addons.php:282
|
817 |
msgid "sample/custom-uri"
|
818 |
msgstr ""
|
819 |
|
820 |
+
#: includes/views/permalink-manager-pro-addons.php:299
|
|
|
|
|
|
|
|
|
821 |
#, php-format
|
822 |
msgid ""
|
823 |
"<strong>Please use URIs only!</strong><br />For instance, to set-up a "
|
824 |
"redirect for <code>%s/old-uri</code> please use <code>old-uri</code>."
|
825 |
msgstr ""
|
826 |
|
827 |
+
#: includes/views/permalink-manager-pro-addons.php:304
|
828 |
+
msgid "Add new redirect"
|
829 |
+
msgstr ""
|
830 |
+
|
831 |
+
#: includes/views/permalink-manager-pro-addons.php:313
|
832 |
msgid "Redirect this page to external URL"
|
833 |
msgstr ""
|
834 |
|
835 |
+
#: includes/views/permalink-manager-pro-addons.php:314
|
836 |
msgid ""
|
837 |
"If not empty, the visitors trying to access this page will be redirected to "
|
838 |
"the URL specified below."
|
839 |
msgstr ""
|
840 |
|
841 |
+
#: includes/views/permalink-manager-pro-addons.php:318
|
842 |
msgid "http://another-website.com/final-target-url"
|
843 |
msgstr ""
|
844 |
|
845 |
+
#: includes/views/permalink-manager-pro-addons.php:322
|
846 |
msgid ""
|
847 |
"<strong>Please use full URLs!</strong><br />For instance, <code>http:"
|
848 |
"//another-website.com/final-target-url</code>."
|
849 |
msgstr ""
|
850 |
|
851 |
+
#: includes/core/permalink-manager-pro-functions.php:77
|
852 |
+
msgid "Arabic"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
853 |
msgstr ""
|
854 |
|
855 |
+
#: includes/core/permalink-manager-pro-functions.php:78
|
856 |
+
msgid "Chinese"
|
|
|
|
|
857 |
msgstr ""
|
858 |
|
859 |
+
#: includes/core/permalink-manager-pro-functions.php:79
|
860 |
+
msgid "Danish"
|
861 |
msgstr ""
|
862 |
|
863 |
+
#: includes/core/permalink-manager-pro-functions.php:80
|
864 |
+
msgid "Dutch"
|
865 |
msgstr ""
|
866 |
|
867 |
+
#: includes/core/permalink-manager-pro-functions.php:81
|
868 |
+
msgid "English"
|
|
|
869 |
msgstr ""
|
870 |
|
871 |
+
#: includes/core/permalink-manager-pro-functions.php:82
|
872 |
+
msgid "Finnish"
|
873 |
msgstr ""
|
874 |
|
875 |
+
#: includes/core/permalink-manager-pro-functions.php:83
|
876 |
+
msgid "French"
|
|
|
|
|
877 |
msgstr ""
|
878 |
|
879 |
+
#: includes/core/permalink-manager-pro-functions.php:84
|
880 |
+
msgid "German"
|
881 |
msgstr ""
|
882 |
|
883 |
+
#: includes/core/permalink-manager-pro-functions.php:85
|
884 |
+
msgid "Hebrew"
|
885 |
msgstr ""
|
886 |
|
887 |
+
#: includes/core/permalink-manager-pro-functions.php:86
|
888 |
+
msgid "Hindi"
|
889 |
msgstr ""
|
890 |
|
891 |
+
#: includes/core/permalink-manager-pro-functions.php:87
|
892 |
+
msgid "Italian"
|
893 |
msgstr ""
|
894 |
|
895 |
+
#: includes/core/permalink-manager-pro-functions.php:88
|
896 |
+
msgid "Japanese"
|
|
|
|
|
897 |
msgstr ""
|
898 |
|
899 |
+
#: includes/core/permalink-manager-pro-functions.php:89
|
900 |
+
msgid "Korean"
|
901 |
msgstr ""
|
902 |
|
903 |
+
#: includes/core/permalink-manager-pro-functions.php:90
|
904 |
+
msgid "Norwegian"
|
905 |
msgstr ""
|
906 |
|
907 |
+
#: includes/core/permalink-manager-pro-functions.php:91
|
908 |
+
msgid "Persian"
|
909 |
msgstr ""
|
910 |
|
911 |
+
#: includes/core/permalink-manager-pro-functions.php:92
|
912 |
+
msgid "Polish"
|
913 |
msgstr ""
|
914 |
|
915 |
+
#: includes/core/permalink-manager-pro-functions.php:93
|
916 |
+
msgid "Portuguese"
|
917 |
msgstr ""
|
918 |
|
919 |
+
#: includes/core/permalink-manager-pro-functions.php:94
|
920 |
+
msgid "Russian"
|
921 |
msgstr ""
|
922 |
|
923 |
+
#: includes/core/permalink-manager-pro-functions.php:95
|
924 |
+
msgid "Spanish"
|
|
|
|
|
925 |
msgstr ""
|
926 |
|
927 |
+
#: includes/core/permalink-manager-pro-functions.php:96
|
928 |
+
msgid "Swedish"
|
929 |
msgstr ""
|
930 |
|
931 |
+
#: includes/core/permalink-manager-pro-functions.php:97
|
932 |
+
msgid "Turkish"
|
933 |
msgstr ""
|
934 |
|
935 |
+
#: includes/core/permalink-manager-pro-functions.php:147
|
936 |
#, php-format
|
937 |
msgid ""
|
938 |
+
"Your Permalink Manager Pro licence key expired! For more information please "
|
939 |
+
"go to <a href=\"%s\" target=\"_blank\">this page</a>."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
940 |
msgstr ""
|
941 |
|
942 |
+
#: includes/core/permalink-manager-pro-functions.php:149
|
943 |
+
#, php-format
|
944 |
msgid ""
|
945 |
+
"Please paste the licence key <a href=\"%s\">here</a> to access all Permalink "
|
946 |
+
"Manager Pro updates!"
|
947 |
msgstr ""
|
948 |
|
949 |
+
#: includes/core/permalink-manager-pro-functions.php:325
|
950 |
+
msgid "Coupon Link"
|
|
|
|
|
|
|
|
|
951 |
msgstr ""
|
952 |
|
953 |
+
#: includes/core/permalink-manager-pro-functions.php:346
|
954 |
+
msgid "Coupon URI"
|
955 |
msgstr ""
|
956 |
|
957 |
+
#: includes/core/permalink-manager-pro-functions.php:347
|
958 |
msgid ""
|
959 |
+
"The URIs are case-insensitive, eg. <strong>BLACKFRIDAY</strong> and <strong>"
|
960 |
+
"blackfriday</strong> are equivalent."
|
|
|
|
|
|
|
|
|
|
|
961 |
msgstr ""
|
962 |
|
963 |
+
#: includes/core/permalink-manager-pro-functions.php:358
|
964 |
+
msgid "Coupon Full URL"
|
965 |
msgstr ""
|
966 |
|
967 |
+
#: includes/core/permalink-manager-third-parties.php:250
|
968 |
+
msgid "Language"
|
969 |
msgstr ""
|
970 |
|
971 |
+
#: includes/core/permalink-manager-third-parties.php:357
|
972 |
+
msgid "\"Custom Permalinks\" URIs were imported!"
|
|
|
|
|
973 |
msgstr ""
|
974 |
|
975 |
+
#: includes/core/permalink-manager-third-parties.php:360
|
976 |
+
msgid "No \"Custom Permalinks\" URIs were imported!"
|
977 |
msgstr ""
|
978 |
|
979 |
+
#: includes/core/permalink-manager-uri-functions-tax.php:477
|
980 |
+
msgid "Clear/leave the field empty to use the default permalink."
|
|
|
|
|
981 |
msgstr ""
|
982 |
|
983 |
+
#: includes/core/permalink-manager-uri-functions-tax.php:513
|
984 |
+
#: includes/core/permalink-manager-uri-functions-post.php:626
|
985 |
+
#: includes/core/permalink-manager-admin-functions.php:561
|
986 |
+
#: includes/core/permalink-manager-admin-functions.php:622
|
987 |
+
msgid "Current URI"
|
988 |
msgstr ""
|
989 |
|
990 |
+
#: includes/core/permalink-manager-actions.php:54
|
991 |
+
#, php-format
|
992 |
+
msgid "<strong>%d</strong> slug was updated!"
|
993 |
+
msgid_plural "<strong>%d</strong> slugs were updated!"
|
994 |
+
msgstr[0] ""
|
995 |
+
msgstr[1] ""
|
996 |
|
997 |
+
#: includes/core/permalink-manager-actions.php:55
|
998 |
+
#, php-format
|
999 |
+
msgid "<a %s>Click here</a> to go to the list of updated slugs"
|
1000 |
msgstr ""
|
1001 |
|
1002 |
+
#: includes/core/permalink-manager-actions.php:60
|
1003 |
+
msgid "<strong>No slugs</strong> were updated!"
|
1004 |
msgstr ""
|
1005 |
|
1006 |
+
#: includes/core/permalink-manager-actions.php:94
|
1007 |
+
msgid "The settings are saved!"
|
1008 |
msgstr ""
|
1009 |
|
1010 |
+
#: includes/core/permalink-manager-actions.php:191
|
1011 |
#, php-format
|
1012 |
+
msgid "%d Custom URIs and %d Custom Redirects were removed!"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1013 |
msgstr ""
|
1014 |
|
1015 |
+
#: includes/core/permalink-manager-actions.php:193
|
1016 |
+
msgid "No Custom URIs or Custom Redirects were removed!"
|
1017 |
msgstr ""
|
1018 |
|
1019 |
+
#: includes/core/permalink-manager-actions.php:299
|
1020 |
+
#, php-format
|
1021 |
+
msgid "URI \"%s\" was removed successfully!"
|
1022 |
msgstr ""
|
1023 |
|
1024 |
+
#: includes/core/permalink-manager-actions.php:308
|
1025 |
+
msgid "Broken redirects were removed successfully!"
|
1026 |
msgstr ""
|
1027 |
|
1028 |
+
#: includes/core/permalink-manager-actions.php:313
|
1029 |
+
msgid "URI and/or custom redirects does not exist or were already removed!"
|
1030 |
msgstr ""
|
1031 |
|
1032 |
+
#: includes/core/permalink-manager-actions.php:327
|
1033 |
+
msgid "The redirect was removed successfully!"
|
1034 |
msgstr ""
|
1035 |
|
1036 |
+
#: includes/core/permalink-manager-actions.php:376
|
1037 |
+
msgid "Sitemaps were updated!"
|
|
|
|
|
1038 |
msgstr ""
|
1039 |
|
1040 |
+
#. Name of the plugin
|
1041 |
+
#: includes/core/permalink-manager-admin-functions.php:83
|
1042 |
+
#: includes/core/permalink-manager-admin-functions.php:557
|
1043 |
+
#: includes/core/permalink-manager-admin-functions.php:602
|
1044 |
+
#: includes/core/permalink-manager-admin-functions.php:607
|
1045 |
+
#: includes/core/permalink-manager-admin-functions.php:608
|
1046 |
+
msgid "Permalink Manager"
|
1047 |
msgstr ""
|
1048 |
|
1049 |
+
#: includes/core/permalink-manager-admin-functions.php:119
|
1050 |
+
msgid "URI Editor"
|
1051 |
msgstr ""
|
1052 |
|
1053 |
+
#: includes/core/permalink-manager-admin-functions.php:198
|
1054 |
+
msgid "Select all"
|
1055 |
msgstr ""
|
1056 |
|
1057 |
+
#: includes/core/permalink-manager-admin-functions.php:199
|
1058 |
+
msgid "Unselect all"
|
1059 |
msgstr ""
|
1060 |
|
1061 |
+
#: includes/core/permalink-manager-admin-functions.php:407
|
1062 |
+
msgid "Donate"
|
1063 |
msgstr ""
|
1064 |
|
1065 |
+
#: includes/core/permalink-manager-admin-functions.php:408
|
1066 |
+
msgid "by Maciej Bis"
|
|
|
1067 |
msgstr ""
|
1068 |
|
1069 |
+
#: includes/core/permalink-manager-admin-functions.php:487
|
1070 |
+
#, php-format
|
1071 |
+
msgid ""
|
1072 |
+
"This functionality is available only in <a href=\"%s\" target=\"_blank\">"
|
1073 |
+
"Permalink Manager Pro</a>."
|
1074 |
msgstr ""
|
1075 |
|
1076 |
+
#: includes/core/permalink-manager-admin-functions.php:508
|
1077 |
+
#: includes/core/permalink-manager-admin-functions.php:534
|
1078 |
+
msgid "Title"
|
1079 |
msgstr ""
|
1080 |
|
1081 |
+
#: includes/core/permalink-manager-admin-functions.php:509
|
1082 |
+
#: includes/core/permalink-manager-admin-functions.php:535
|
1083 |
+
msgid "Old URI"
|
1084 |
msgstr ""
|
1085 |
|
1086 |
+
#: includes/core/permalink-manager-admin-functions.php:510
|
1087 |
+
#: includes/core/permalink-manager-admin-functions.php:536
|
1088 |
+
msgid "New URI"
|
1089 |
msgstr ""
|
1090 |
|
1091 |
+
#: includes/core/permalink-manager-admin-functions.php:511
|
1092 |
+
#: includes/core/permalink-manager-admin-functions.php:537
|
1093 |
+
msgid "Old Slug"
|
1094 |
msgstr ""
|
1095 |
|
1096 |
+
#: includes/core/permalink-manager-admin-functions.php:512
|
1097 |
+
#: includes/core/permalink-manager-admin-functions.php:538
|
1098 |
+
msgid "New Slug"
|
1099 |
msgstr ""
|
1100 |
|
1101 |
+
#: includes/core/permalink-manager-admin-functions.php:534
|
1102 |
+
msgid "Show more details"
|
1103 |
msgstr ""
|
1104 |
|
1105 |
+
#: includes/core/permalink-manager-admin-functions.php:543
|
1106 |
+
msgid "List of updated items"
|
1107 |
msgstr ""
|
1108 |
|
1109 |
+
#: includes/core/permalink-manager-admin-functions.php:587
|
1110 |
+
#: includes/core/permalink-manager-admin-functions.php:591
|
1111 |
+
msgid "Yes"
|
1112 |
msgstr ""
|
1113 |
|
1114 |
+
#: includes/core/permalink-manager-admin-functions.php:587
|
1115 |
+
#: includes/core/permalink-manager-admin-functions.php:590
|
1116 |
+
msgid "No"
|
1117 |
msgstr ""
|
1118 |
|
1119 |
+
#: includes/core/permalink-manager-admin-functions.php:589
|
1120 |
+
#, php-format
|
1121 |
+
msgid "Use global settings [%s]"
|
1122 |
msgstr ""
|
1123 |
|
1124 |
+
#: includes/core/permalink-manager-admin-functions.php:607
|
1125 |
+
msgid "Close: "
|
|
|
1126 |
msgstr ""
|
1127 |
|
1128 |
+
#: includes/core/permalink-manager-admin-functions.php:616
|
1129 |
+
msgid "The custom URI cannot be edited on frontpage."
|
|
|
1130 |
msgstr ""
|
1131 |
|
1132 |
+
#: includes/core/permalink-manager-admin-functions.php:623
|
|
|
1133 |
msgid ""
|
1134 |
+
"The custom URI can be edited only if 'Auto-update the URI' feature is not "
|
1135 |
+
"enabled."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1136 |
msgstr ""
|
1137 |
|
1138 |
+
#: includes/core/permalink-manager-admin-functions.php:632
|
1139 |
+
msgid "Auto-update the URI"
|
1140 |
msgstr ""
|
1141 |
|
1142 |
+
#: includes/core/permalink-manager-admin-functions.php:633
|
1143 |
+
msgid ""
|
1144 |
+
"If enabled, the 'Current URI' field will be automatically changed to "
|
1145 |
+
"'Default URI' (displayed below) after the post is saved or updated."
|
1146 |
msgstr ""
|
1147 |
|
1148 |
+
#: includes/core/permalink-manager-admin-functions.php:641
|
1149 |
+
msgid "Default URI"
|
1150 |
msgstr ""
|
1151 |
|
1152 |
+
#: includes/core/permalink-manager-admin-functions.php:642
|
1153 |
+
msgid "Restore to Default URI"
|
1154 |
msgstr ""
|
1155 |
|
1156 |
+
#: includes/core/permalink-manager-admin-functions.php:652
|
1157 |
+
msgid "Automatic redirect for native URI enabled:"
|
1158 |
msgstr ""
|
1159 |
|
1160 |
+
#: includes/core/permalink-manager-admin-functions.php:681
|
1161 |
+
msgid "Manage redirects"
|
1162 |
msgstr ""
|
1163 |
|
1164 |
+
#: includes/core/permalink-manager-admin-functions.php:682
|
1165 |
+
msgid "[click to open]"
|
1166 |
msgstr ""
|
1167 |
|
1168 |
+
#: includes/core/permalink-manager-admin-functions.php:762
|
1169 |
+
msgid "URI is already in use, please select another one!"
|
1170 |
msgstr ""
|
1171 |
|
1172 |
#. Name of the plugin
|
out/permalink-manager-admin.js
CHANGED
@@ -23,43 +23,19 @@ jQuery(document).ready(function() {
|
|
23 |
});
|
24 |
|
25 |
/**
|
26 |
-
* Filter by dates
|
27 |
*/
|
28 |
-
jQuery('#permalink-manager #months-filter-button
|
29 |
-
var
|
30 |
var filter_value = jQuery("#months-filter-select").val();
|
|
|
31 |
|
32 |
-
|
33 |
-
|
34 |
-
// Date filter
|
35 |
-
if(filter_url.indexOf('month=') > 1) {
|
36 |
-
filter_url = filter_url.replace(/month=([^&]+)/gm, 'month=' + filter_value);
|
37 |
-
} else if(filter_value != '') {
|
38 |
-
filter_url = filter_url + '&month=' + filter_value;
|
39 |
-
}
|
40 |
-
|
41 |
-
// Search query
|
42 |
-
if(filter_url.indexOf('s=') > 1) {
|
43 |
-
filter_url = filter_url.replace(/s=([^&]+)/gm, 's=' + search_value);
|
44 |
-
} else if(search_value != '') {
|
45 |
-
filter_url = filter_url + '&s=' + search_value;
|
46 |
}
|
47 |
-
|
48 |
-
window.location.href = filter_url;
|
49 |
-
|
50 |
-
e.preventDefault();
|
51 |
return false;
|
52 |
});
|
53 |
|
54 |
-
jQuery('#permalink-manager #uri_editor form input[name="s"]').on('keydown keypress keyup', function(e){
|
55 |
-
if(e.keyCode == 13) {
|
56 |
-
jQuery('#permalink-manager #search-submit').trigger('click');
|
57 |
-
|
58 |
-
e.preventDefault();
|
59 |
-
return false;
|
60 |
-
}
|
61 |
-
});
|
62 |
-
|
63 |
/**
|
64 |
* Filter by content types in "Tools"
|
65 |
*/
|
23 |
});
|
24 |
|
25 |
/**
|
26 |
+
* Filter by dates in "Permalink editor"
|
27 |
*/
|
28 |
+
jQuery('#permalink-manager #months-filter-button').on('click', function() {
|
29 |
+
var filter_name = jQuery("#months-filter-select").attr('name');
|
30 |
var filter_value = jQuery("#months-filter-select").val();
|
31 |
+
var url = jQuery(this).parent().data('filter-url');
|
32 |
|
33 |
+
if(filter_name != '' && filter_value != '' && url != ''){
|
34 |
+
document.location.href = url + "&" + filter_name + "=" + filter_value;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
}
|
|
|
|
|
|
|
|
|
36 |
return false;
|
37 |
});
|
38 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
/**
|
40 |
* Filter by content types in "Tools"
|
41 |
*/
|
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.
|
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.
|
16 |
*/
|
17 |
|
18 |
// If this file is called directly or plugin is already defined, abort.
|
@@ -23,10 +23,10 @@ if (!defined('WPINC')) {
|
|
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.
|
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' );
|
@@ -117,7 +117,7 @@ class Permalink_Manager_Class {
|
|
117 |
* Localize this plugin
|
118 |
*/
|
119 |
function localize_me() {
|
120 |
-
load_plugin_textdomain( 'permalink-manager', false,
|
121 |
}
|
122 |
|
123 |
/**
|
@@ -157,12 +157,11 @@ class Permalink_Manager_Class {
|
|
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,
|
@@ -171,7 +170,6 @@ class Permalink_Manager_Class {
|
|
171 |
'disable_slug_sanitization' => 0,
|
172 |
'partial_disable' => array(),
|
173 |
'deep_detect' => 1,
|
174 |
-
'edit_uris_cap' => 'publish_posts',
|
175 |
),
|
176 |
'licence' => array()
|
177 |
));
|
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.6
|
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.7.0
|
16 |
*/
|
17 |
|
18 |
// If this file is called directly or plugin is already defined, abort.
|
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.6' );
|
27 |
define( 'PERMALINK_MANAGER_FILE', __FILE__ );
|
28 |
define( 'PERMALINK_MANAGER_DIR', untrailingslashit(dirname(__FILE__)) );
|
29 |
+
define( 'PERMALINK_MANAGER_BASENAME', dirname(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' );
|
117 |
* Localize this plugin
|
118 |
*/
|
119 |
function localize_me() {
|
120 |
+
load_plugin_textdomain( 'permalink-manager', false, PERMALINK_MANAGER_BASENAME . "/languages" );
|
121 |
}
|
122 |
|
123 |
/**
|
157 |
'general' => array(
|
158 |
'auto_update_uris' => 0,
|
159 |
'show_native_slug_field' => 0,
|
|
|
|
|
160 |
'canonical_redirect' => 1,
|
161 |
'setup_redirects' => 1,
|
162 |
'redirect' => '301',
|
163 |
'trailing_slashes' => 0,
|
164 |
+
'pagination_redirect' => 0,
|
165 |
'auto_remove_duplicates' => 1,
|
166 |
'fix_language_mismatch' => 1,
|
167 |
'pmxi_import_support' => 0,
|
170 |
'disable_slug_sanitization' => 0,
|
171 |
'partial_disable' => array(),
|
172 |
'deep_detect' => 1,
|
|
|
173 |
),
|
174 |
'licence' => array()
|
175 |
));
|