Version Description
- Faster page load.
- Fixed 404 error for permalink structures with a prefixed path. Almost pretty permalinks work now too.
- Code clean-up.
Download this release
Release Info
Developer | avryl |
Plugin | Rename wp-login.php |
Version | 1.4 |
Comparing to | |
See all releases |
Code changes from version 1.3 to 1.4
- readme.txt +25 -9
- rename-wp-login.php +183 -111
readme.txt
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
=== Rename wp-login.php ===
|
|
|
2 |
Contributors: avryl
|
3 |
Tags: rename, login, wp-login, wp-login.php, brute force, attacks
|
4 |
Requires at least: 3.6
|
@@ -15,13 +16,13 @@ Change wp-login.php to whatever you want. It can also prevent a lot of brute for
|
|
15 |
|
16 |
This plugin renames wp-login.php to whatever you want. The default is example.com/**login**/ if no such page already exists. Otherwise it will append a number, e.g. login-1.
|
17 |
You can change this under Settings › Permalinks › Login.
|
18 |
-
Please remember what you changed your login page to, accessing wp-login.php or wp-admin
|
19 |
|
20 |
= Compatibility =
|
21 |
|
22 |
Works with **BuddyPress**, **Limit Login Attempts** and most other plugins that customise the login page.
|
23 |
-
This plugin doesn
|
24 |
-
It doesn’t break `wp_login_form()`, so login
|
25 |
|
26 |
While it might work with earlier versions of WordPress, you should always update WordPress to the latest version.
|
27 |
|
@@ -30,26 +31,41 @@ If you’re using a **page caching plugin** like **W3 Total Cache** or **WP Supe
|
|
30 |
* For W3 Total Cache go to Performance › Page Cache › Advanced › Never cache the following pages, add your new login page on a new line and save all settings.
|
31 |
* For WP Super Cache go to Settings › WP Super Cache › Advanced › Accepted Filenames & Rejected URIs, add your new login page on a new line and save.
|
32 |
|
33 |
-
This plugin is **not** yet tested on installs that force **SSL** or use the **multisite** feature. I appreciate any help with testing this.
|
34 |
|
35 |
= Benefits =
|
36 |
|
37 |
-
Not only does it allow you to further customise your login page, it also prevents brute force attacks that are targeted specifically to wp-login.php. wp-login.php will return a 404 not found status code and wp-admin as well if you’re not logged in as it would otherwise reveal the location of your new login page.
|
38 |
|
39 |
I made this plugin primarily because a client’s host blocked wp-login.php with an annoying Captcha. On some bigger websites Limit Login Atttempts also showed us that a lot of bots were trying to gain access through wp-login.php.
|
40 |
|
41 |
-
While you could use this plugin to prevent a lot of brute force attacks, it does not mean you don
|
42 |
|
43 |
== Installation ==
|
44 |
|
45 |
1. Go to Plugins › Add New.
|
46 |
-
2. Search for *Rename wp-login*.
|
47 |
3. Look for this plugin, download and activate it.
|
48 |
4. The page will redirect you to the settings. Rename wp-login.php in the section Login.
|
49 |
5. You can change this option any time you want, just go back to Settings › Permalinks › Login.
|
50 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
== Changelog ==
|
52 |
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
= 1.3 =
|
54 |
|
55 |
* Prevents the plugin from working when there is no permalink structure.
|
@@ -60,7 +76,7 @@ While you could use this plugin to prevent a lot of brute force attacks, it does
|
|
60 |
|
61 |
= 1.1 =
|
62 |
|
63 |
-
* Blocked access to wp-admin
|
64 |
|
65 |
= 1.0 =
|
66 |
|
@@ -68,6 +84,6 @@ While you could use this plugin to prevent a lot of brute force attacks, it does
|
|
68 |
|
69 |
== Upgrade Notice ==
|
70 |
|
71 |
-
= 1.
|
72 |
|
73 |
Always immediately update this plugin please!
|
1 |
=== Rename wp-login.php ===
|
2 |
+
|
3 |
Contributors: avryl
|
4 |
Tags: rename, login, wp-login, wp-login.php, brute force, attacks
|
5 |
Requires at least: 3.6
|
16 |
|
17 |
This plugin renames wp-login.php to whatever you want. The default is example.com/**login**/ if no such page already exists. Otherwise it will append a number, e.g. login-1.
|
18 |
You can change this under Settings › Permalinks › Login.
|
19 |
+
Please remember what you changed your login page to, accessing wp-login.php or wp-admin will not work and will return a 404 not found status.
|
20 |
|
21 |
= Compatibility =
|
22 |
|
23 |
Works with **BuddyPress**, **Limit Login Attempts** and most other plugins that customise the login page.
|
24 |
+
This plugin **doesn’t** break the registration form, lost password form, expired sessions or any of wp-login.php’s functionality. Plugins that hook into the standard login form will keep working.
|
25 |
+
It doesn’t break `wp_login_form()`, so the login widget will work too.
|
26 |
|
27 |
While it might work with earlier versions of WordPress, you should always update WordPress to the latest version.
|
28 |
|
31 |
* For W3 Total Cache go to Performance › Page Cache › Advanced › Never cache the following pages, add your new login page on a new line and save all settings.
|
32 |
* For WP Super Cache go to Settings › WP Super Cache › Advanced › Accepted Filenames & Rejected URIs, add your new login page on a new line and save.
|
33 |
|
34 |
+
This plugin is **not** yet tested on installs that force **SSL** or use the **multisite** feature. I would appreciate any help with testing this.
|
35 |
|
36 |
= Benefits =
|
37 |
|
38 |
+
Not only does it allow you to further customise your login page, it also prevents brute force attacks that are targeted specifically to wp-login.php. wp-login.php will return a 404 not found status code, and wp-admin as well if you’re not logged in, as it would otherwise reveal the location of your new login page.
|
39 |
|
40 |
I made this plugin primarily because a client’s host blocked wp-login.php with an annoying Captcha. On some bigger websites Limit Login Atttempts also showed us that a lot of bots were trying to gain access through wp-login.php.
|
41 |
|
42 |
+
While you could use this plugin to prevent a lot of brute force attacks, it does not mean you don’t need a strong password. Read [this codex article](http://codex.wordpress.org/Brute_Force_Attacks) for more information on how to protect your website.
|
43 |
|
44 |
== Installation ==
|
45 |
|
46 |
1. Go to Plugins › Add New.
|
47 |
+
2. Search for *Rename wp-login.php*.
|
48 |
3. Look for this plugin, download and activate it.
|
49 |
4. The page will redirect you to the settings. Rename wp-login.php in the section Login.
|
50 |
5. You can change this option any time you want, just go back to Settings › Permalinks › Login.
|
51 |
|
52 |
+
== Frequently Asked Questions ==
|
53 |
+
|
54 |
+
= I forgot my login url! =
|
55 |
+
|
56 |
+
There are two ways to solve your problem:
|
57 |
+
|
58 |
+
1. go to your MySQL database and look for the value of `rwl_page` in the options table, or
|
59 |
+
2. remove the `rename-wp-login` folder from your `plugins` folder, log in through the standard wp-login.php and reinstall the plugin.
|
60 |
+
|
61 |
== Changelog ==
|
62 |
|
63 |
+
= 1.4 =
|
64 |
+
|
65 |
+
* Faster page load.
|
66 |
+
* Fixed 404 error for permalink structures with a prefixed path. “Almost pretty” permalinks work now too.
|
67 |
+
* Code clean-up.
|
68 |
+
|
69 |
= 1.3 =
|
70 |
|
71 |
* Prevents the plugin from working when there is no permalink structure.
|
76 |
|
77 |
= 1.1 =
|
78 |
|
79 |
+
* Blocked access to wp-admin to prevent a redirect the the new login page.
|
80 |
|
81 |
= 1.0 =
|
82 |
|
84 |
|
85 |
== Upgrade Notice ==
|
86 |
|
87 |
+
= 1.4 =
|
88 |
|
89 |
Always immediately update this plugin please!
|
rename-wp-login.php
CHANGED
@@ -1,166 +1,238 @@
|
|
1 |
<?php
|
|
|
2 |
/*
|
3 |
Plugin Name: Rename wp-login.php
|
4 |
Plugin URI: http://wordpress.org/plugins/rename-wp-login/
|
5 |
Description: Change wp-login.php to whatever you want. It can also prevent a lot of brute force attacks.
|
6 |
Author: avryl
|
7 |
Author URI: http://profiles.wordpress.org/avryl/
|
8 |
-
Version: 1.
|
9 |
Text Domain: rename-wp-login
|
10 |
License: GPLv2 or later
|
11 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
12 |
*/
|
13 |
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
|
|
|
|
19 |
|
20 |
-
register_activation_hook(__FILE__, 'rwl_activation');
|
21 |
function rwl_activation() {
|
22 |
-
|
23 |
-
add_option('
|
24 |
-
add_option('
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
}
|
26 |
|
27 |
-
add_action('admin_init', 'rwl_admin_init');
|
28 |
function rwl_admin_init() {
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
}
|
36 |
-
|
|
|
37 |
}
|
38 |
-
|
39 |
-
|
40 |
-
|
|
|
|
|
|
|
|
|
41 |
}
|
|
|
42 |
}
|
43 |
|
44 |
function rwl_page() {
|
45 |
-
|
|
|
|
|
46 |
}
|
47 |
|
48 |
function rwl_admin() {
|
49 |
-
|
|
|
|
|
50 |
}
|
51 |
|
52 |
-
add_filter('plugin_action_links_' . plugin_basename(__FILE__), 'rwl_plugin_action_links');
|
53 |
-
function rwl_plugin_action_links($links) {
|
54 |
-
array_unshift($links, '<a href="options-permalink.php#rwl-page-input">Settings</a>');
|
55 |
-
return $links;
|
56 |
-
}
|
57 |
-
|
58 |
-
add_action('admin_notices', 'rwl_admin_notices');
|
59 |
function rwl_admin_notices() {
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
<p>Your login page is now here: <a href="<?php echo site_url(); ?>/<?php echo get_option('rwl_page'); ?>/"><?php echo site_url(); ?>/<strong><?php echo get_option('rwl_page'); ?></strong>/</a>. Bookmark this page!</p>
|
70 |
-
</div>
|
71 |
-
<?php
|
72 |
}
|
73 |
}
|
74 |
|
75 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
return;
|
77 |
|
78 |
-
add_action('
|
79 |
-
|
80 |
-
|
81 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
}
|
83 |
-
|
84 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
85 |
}
|
|
|
86 |
}
|
87 |
|
88 |
-
add_action('login_init', 'rwl_login_init');
|
89 |
function rwl_login_init() {
|
90 |
-
|
91 |
-
if (
|
92 |
-
|
|
|
|
|
93 |
}
|
|
|
94 |
}
|
95 |
|
96 |
-
function
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
if (file_exists(TEMPLATEPATH . '/404.php')) {
|
101 |
-
require_once(TEMPLATEPATH . '/404.php');
|
102 |
-
} else {
|
103 |
-
require_once(TEMPLATEPATH . '/index.php');
|
104 |
-
}
|
105 |
-
exit;
|
106 |
}
|
107 |
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
$
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
$wp_query->post = $post;
|
118 |
-
$wp_query->found_posts = 1;
|
119 |
-
$wp_query->post_count = 1;
|
120 |
-
$wp_query->is_singular = true;
|
121 |
-
$wp_query->is_404 = false;
|
122 |
-
$wp_query->posts = array($post);
|
123 |
-
$wp_query->is_page = true;
|
124 |
-
require_once(dirname(__FILE__) . '/wp-login.php');
|
125 |
-
exit;
|
126 |
-
}
|
127 |
}
|
128 |
|
129 |
-
|
130 |
-
|
131 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
132 |
}
|
133 |
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
$login_url = add_query_arg('redirect_to', urlencode($redirect), $login_url);
|
139 |
-
return $login_url;
|
140 |
}
|
141 |
|
142 |
-
|
143 |
-
|
144 |
-
$args = array(
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
$
|
150 |
-
|
|
|
151 |
}
|
152 |
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
$args['redirect_to'] = $redirect;
|
158 |
-
}
|
159 |
-
$lostpassword_url = add_query_arg($args, site_url() . '/' . get_option('rwl_page') . '/');
|
160 |
-
return $lostpassword_url;
|
161 |
}
|
162 |
|
163 |
-
|
164 |
-
|
165 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
166 |
}
|
1 |
<?php
|
2 |
+
|
3 |
/*
|
4 |
Plugin Name: Rename wp-login.php
|
5 |
Plugin URI: http://wordpress.org/plugins/rename-wp-login/
|
6 |
Description: Change wp-login.php to whatever you want. It can also prevent a lot of brute force attacks.
|
7 |
Author: avryl
|
8 |
Author URI: http://profiles.wordpress.org/avryl/
|
9 |
+
Version: 1.4
|
10 |
Text Domain: rename-wp-login
|
11 |
License: GPLv2 or later
|
12 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
13 |
*/
|
14 |
|
15 |
+
register_activation_hook( __FILE__, 'rwl_activation' );
|
16 |
+
register_uninstall_hook( __FILE__, 'rwl_uninstall' );
|
17 |
+
|
18 |
+
add_action( 'admin_init', 'rwl_admin_init' );
|
19 |
+
add_action( 'admin_notices', 'rwl_admin_notices' );
|
20 |
+
|
21 |
+
add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), 'rwl_plugin_action_links' );
|
22 |
|
|
|
23 |
function rwl_activation() {
|
24 |
+
|
25 |
+
add_option( 'rwl_redirect', '1' );
|
26 |
+
add_option( 'rwl_admin', '0' );
|
27 |
+
add_option( 'rwl_page', wp_unique_post_slug( 'login', 0, 'publish', 'page', 0 ) );
|
28 |
+
|
29 |
+
}
|
30 |
+
|
31 |
+
function rwl_uninstall() {
|
32 |
+
|
33 |
+
delete_option( 'rwl_page' );
|
34 |
+
delete_option( 'rwl_admin' );
|
35 |
+
|
36 |
}
|
37 |
|
|
|
38 |
function rwl_admin_init() {
|
39 |
+
|
40 |
+
add_settings_section( 'rename-wp-login-section', 'Login', '__return_false', 'permalink' );
|
41 |
+
|
42 |
+
add_settings_field( 'rwl-page', '<label for="rwl-page-input">Rename wp-login.php</label>', 'rwl_page', 'permalink', 'rename-wp-login-section' );
|
43 |
+
add_settings_field( 'rwl-admin', '<label for="rwl-admin-input">Redirect wp-admin to new login page (not recommended)</label>', 'rwl_admin', 'permalink', 'rename-wp-login-section' );
|
44 |
+
|
45 |
+
if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
|
46 |
+
|
47 |
+
if ( ! empty( $_POST['rwl_page'] ) ) {
|
48 |
+
|
49 |
+
update_option( 'rwl_page', wp_unique_post_slug( sanitize_title_with_dashes( $_POST['rwl_page'] ), 0, 'publish', 'page', 0 ) );
|
50 |
+
|
51 |
}
|
52 |
+
|
53 |
+
update_option( 'rwl_admin', isset( $_POST['rwl_admin'] ) ? $_POST['rwl_admin'] : '0' );
|
54 |
}
|
55 |
+
|
56 |
+
if ( get_option( 'rwl_redirect' ) == '1' ) {
|
57 |
+
|
58 |
+
delete_option( 'rwl_redirect' );
|
59 |
+
|
60 |
+
wp_redirect( admin_url( 'options-permalink.php#rwl-page-input' ) );
|
61 |
+
|
62 |
}
|
63 |
+
|
64 |
}
|
65 |
|
66 |
function rwl_page() {
|
67 |
+
|
68 |
+
echo '<code>' . site_url() . '/</code> <input id="rwl-page-input" type="text" name="rwl_page" value="' . get_option( 'rwl_page' ) . '" /> <code>/</code>';
|
69 |
+
|
70 |
}
|
71 |
|
72 |
function rwl_admin() {
|
73 |
+
|
74 |
+
echo '<input id="rwl-admin-input" type="checkbox" name="rwl_admin" value="1" ' . checked( get_option( 'rwl_admin' ), true, false ) . ' />';
|
75 |
+
|
76 |
}
|
77 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
function rwl_admin_notices() {
|
79 |
+
|
80 |
+
if ( ! get_option( 'permalink_structure' ) ) {
|
81 |
+
|
82 |
+
echo '<div class="error"><p><strong>Rename wp-login.php</strong> doesn’t work if you’re using the default permalink structure.<br>You must <a href="' . admin_url( 'options-permalink.php' ) . '">choose</a> another permalink structure for it to work.</p></div>';
|
83 |
+
|
84 |
+
} elseif ( $_GET['settings-updated'] == true ) {
|
85 |
+
|
86 |
+
echo '<div class="updated"><p>Your login page is now here: <a href="' . site_url() . '/' . get_option( 'rwl_page' ) . '/">' . site_url() . '/<strong>' . get_option( 'rwl_page' ) . '</strong>/</a>. Bookmark this page!</p></div>';
|
87 |
+
|
|
|
|
|
|
|
88 |
}
|
89 |
}
|
90 |
|
91 |
+
function rwl_plugin_action_links( $links ) {
|
92 |
+
|
93 |
+
array_unshift( $links, '<a href="options-permalink.php#rwl-page-input">Settings</a>' );
|
94 |
+
|
95 |
+
return $links;
|
96 |
+
|
97 |
+
}
|
98 |
+
|
99 |
+
if ( ! get_option('permalink_structure') )
|
100 |
return;
|
101 |
|
102 |
+
add_action( 'init', 'rwl_init' );
|
103 |
+
add_action( 'login_init', 'rwl_login_init' );
|
104 |
+
|
105 |
+
add_filter( 'site_url', 'rwl_filter_site_url', 10, 4 );
|
106 |
+
add_filter( 'login_url', 'rwl_filter_login_url', 10, 2 );
|
107 |
+
add_filter( 'logout_url', 'rwl_filter_logout_url', 10, 2 );
|
108 |
+
add_filter( 'register_url', 'rwl_filter_register_url', 10, 1 );
|
109 |
+
add_filter( 'lostpassword_url', 'rwl_filter_lostpassword_url', 10, 2 );
|
110 |
+
|
111 |
+
function rwl_init() {
|
112 |
+
|
113 |
+
if ( is_admin() && ! is_user_logged_in() && ! defined( 'DOING_AJAX' ) && get_option( 'rwl_admin' ) != '1' ) {
|
114 |
+
|
115 |
+
remove_action( 'wp_head', 'mp6_override_toolbar_margin', 11 );
|
116 |
+
|
117 |
+
rwl_404();
|
118 |
+
|
119 |
+
}
|
120 |
+
|
121 |
+
if ( ! get_option( 'rwl_page' ) || get_option( 'rwl_page' ) == '' ) {
|
122 |
+
|
123 |
+
update_option( 'rwl_page', wp_unique_post_slug( 'login', 0, 'publish', 'page', 0 ) );
|
124 |
+
|
125 |
}
|
126 |
+
|
127 |
+
if ( strpos( $_SERVER['REQUEST_URI'], get_option( 'rwl_page' ) ) ) {
|
128 |
+
|
129 |
+
$home_url = parse_url( home_url() );
|
130 |
+
|
131 |
+
$home_path = '';
|
132 |
+
if ( isset( $home_url['path'] ) )
|
133 |
+
$home_path = $home_url['path'];
|
134 |
+
$home_path = trim( $home_path, '/' );
|
135 |
+
|
136 |
+
$req_uri = $_SERVER['REQUEST_URI'];
|
137 |
+
$req_uri_array = explode( '?', $req_uri );
|
138 |
+
$req_uri = $req_uri_array[0];
|
139 |
+
$req_uri = trim( $req_uri, '/' );
|
140 |
+
$req_uri = preg_replace( "|^$home_path|i", '', $req_uri );
|
141 |
+
$req_uri = trim( $req_uri, '/' );
|
142 |
+
|
143 |
+
if ( $req_uri == get_option('rwl_page') ) {
|
144 |
+
|
145 |
+
status_header( 200 );
|
146 |
+
|
147 |
+
require_once( dirname( __FILE__ ) . '/wp-login.php' );
|
148 |
+
|
149 |
+
exit;
|
150 |
+
|
151 |
+
}
|
152 |
}
|
153 |
+
|
154 |
}
|
155 |
|
|
|
156 |
function rwl_login_init() {
|
157 |
+
|
158 |
+
if ( strpos( $_SERVER['REQUEST_URI'], 'wp-login.php' ) ) {
|
159 |
+
|
160 |
+
rwl_404();
|
161 |
+
|
162 |
}
|
163 |
+
|
164 |
}
|
165 |
|
166 |
+
function rwl_filter_site_url( $url, $path, $scheme, $blog_id ) {
|
167 |
+
|
168 |
+
return ( strpos( $path, 'wp-login.php' ) !== false && $scheme == 'login_post' ) ? rwl_login_url() . str_replace( 'wp-login.php', '', $path ) : $url;
|
169 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
170 |
}
|
171 |
|
172 |
+
function rwl_filter_login_url( $login_url, $redirect = '' ) {
|
173 |
+
|
174 |
+
$login_url = rwl_login_url();
|
175 |
+
|
176 |
+
if ( ! empty( $redirect ) )
|
177 |
+
$login_url = add_query_arg( 'redirect_to', urlencode( $redirect ), $login_url );
|
178 |
+
|
179 |
+
return $login_url;
|
180 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
181 |
}
|
182 |
|
183 |
+
function rwl_filter_logout_url( $login_url, $redirect = '' ) {
|
184 |
+
|
185 |
+
$args = array();
|
186 |
+
$args['action'] = 'logout';
|
187 |
+
if ( ! empty( $redirect ) )
|
188 |
+
$args['redirect_to'] = urlencode( $redirect );
|
189 |
+
|
190 |
+
$logout_url = add_query_arg( $args, rwl_login_url() );
|
191 |
+
$logout_url = wp_nonce_url( $logout_url, 'log-out' );
|
192 |
+
|
193 |
+
return $logout_url;
|
194 |
}
|
195 |
|
196 |
+
function rwl_filter_register_url( $register_url ) {
|
197 |
+
|
198 |
+
return rwl_login_url() . '?action=register';
|
199 |
+
|
|
|
|
|
200 |
}
|
201 |
|
202 |
+
function rwl_filter_lostpassword_url( $lostpassword_url, $redirect = '' ) {
|
203 |
+
|
204 |
+
$args = array();
|
205 |
+
$args['action'] = 'lostpassword';
|
206 |
+
if ( ! empty( $redirect) )
|
207 |
+
$args['redirect_to'] = urlencode( $redirect );
|
208 |
+
|
209 |
+
$lostpassword_url = add_query_arg( $args, rwl_login_url() );
|
210 |
+
|
211 |
+
return $lostpassword_url;
|
212 |
}
|
213 |
|
214 |
+
function rwl_login_url() {
|
215 |
+
|
216 |
+
return site_url() . '/' . get_option( 'rwl_page' ) . '/';
|
217 |
+
|
|
|
|
|
|
|
|
|
218 |
}
|
219 |
|
220 |
+
function rwl_404() {
|
221 |
+
|
222 |
+
global $wp_query;
|
223 |
+
|
224 |
+
status_header(404);
|
225 |
+
|
226 |
+
$wp_query->set_404();
|
227 |
+
|
228 |
+
$template = get_404_template();
|
229 |
+
|
230 |
+
if ( ! $template )
|
231 |
+
$template = get_index_template();
|
232 |
+
|
233 |
+
if ( $template = apply_filters( 'template_include', $template ) )
|
234 |
+
include( $template );
|
235 |
+
|
236 |
+
exit;
|
237 |
+
|
238 |
}
|