हाँ, यह मुमकिन है। इसके लिए आपको तीन फिल्टर बनाने होंगे।
किसी वर्ग के अंदर व्यवस्थापन सामग्री
class WPSE29338_Admin {
public static function setup() {
add_filter('login_url', array(__CLASS__, 'modifyLoginURL'), 10, 2);
add_filter('lostpassword_url', array(__CLASS__, 'modifyLostPasswordURL'), 10, 2);
add_filter('register', array(__CLASS__, 'modifyRegisterURL'));
}
public static function modifyLoginURL($loginUrl, $redirect = '') {
$loginUrl = site_url('login'); // Link to login URL
if(!empty($redirect)) {
$loginUrl = add_query_arg('redirect_to', urlencode($redirect), $loginUrl);
}
return $loginUrl;
}
public static function modifyLostPasswordURL($lostpwUrl, $redirect = '') {
$lostpwUrl = wp_login_url() . '#lostpassword'; // Link to lostpassword URL
if(!empty($redirect)) {
$lostpwUrl = add_query_arg('redirect_to', urlencode($redirect), $lostpwUrl);
}
return $lostpwUrl;
}
public static function modifyRegisterURL($registerUrl) {
if(!is_user_logged_in()) {
if (get_option('users_can_register')) {
$registerUrl = '<a href="' . wp_login_url() . '#register" class="btn">' . __('Register') . '</a>'; // Link to register URL
} else {
$registerUrl = '';
}
}
return $registerUrl;
}
}
पहले हमें फ़ंक्शन के आउटपुट को फ़िल्टर करने की आवश्यकता wp_login_url()
होती है जो wp_login_form()
प्रपत्र action
विशेषता में उपयोग किया जाता है ।
विधि को देखो modifyLoginUrl()
। यहां हम login
वेरिएबल के अंदर पेज का URL स्टोर करते हैं $loginUrl
। यह पेज वर्डप्रेस के अंदर मौजूद होना चाहिए, इसलिए इसे पहले बनाएं।
अगला हमें फ़ंक्शन के लिए एक फिल्टर की आवश्यकता है wp_lostpassword_url()
और wp_register()
। यह मूल रूप से एक ही है। साइट का URL चर के अंदर संग्रहीत किया जाता है $lostpwUrl
और $registerUrl
।
अंतिम लेकिन कम से कम, आपको क्लास को सही एक्शन हुक पर कॉल करना होगा। थीम के लिए यह होना चाहिए after_setup_theme
और प्लगइन्स के लिए आप उपयोग कर सकते हैं plugins_loaded
।
विषय / कार्य
add_action('after_setup_theme', 'wpse29338_admin_init');
function wpse29338_admin_init() {
WPSE29338_Admin::setup();
}
प्लगइन्स
add_action('plugins_loaded', 'wpse29338_admin_init');
function wpse29338_admin_init() {
WPSE29338_Admin::setup();
}