আমার টেম্পলেট পৃষ্ঠায় 'লগইন ত্রুটি' এবং 'হারিয়ে যাওয়া পাসওয়ার্ড' কীভাবে প্রদর্শিত করবেন?


10

আমি wp_login_for ফাংশনটি ব্যবহার করে একটি টেমপ্লেটে ফ্রন্ট-এন্ড লগইন সরবরাহ করছি। এটি লগইন করার পরে পুনঃনির্দেশ পরিচালনা করে এবং খুব সুন্দরভাবে লগআউট করে! তবে যদি ব্যবহারকারীর নাম / পাসওয়ার্ড মেলে না, বা অস্তিত্বহীন থাকে তবে ব্যবহারকারীকে নড়বড়ে জেএস ত্রুটি সহ প্রশাসক লগইন পৃষ্ঠায় পুনঃনির্দেশ করা হয়। একই জিনিসটি যখন আমি পাসওয়ার্ডটি পুনরায় সেট করার চেষ্টা করি তখন এটি আমাকে আমার ব্যাকএন্ড পৃষ্ঠায় নিয়ে যায় যেখানে আমাকে পাসওয়ার্ড পুনরায় সেট করার জন্য আমার ইমেলটি প্রবেশ করতে হয়। আমি এই দুটি ক্রিয়াকলাপ আমার টেমপ্লেটে প্রদর্শন করতে চাই। আমি কি এটা করার কোন উপায় আছে?

সাহায্যের জন্য অগ্রিম ধন্যবাদ।

উত্তর:


9

হ্যাঁ এটা সম্ভব. এর জন্য আপনাকে তিনটি ফিল্টার তৈরি করতে হবে।

শ্রেণীর ভিতরে প্রশাসনের স্টাফ

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বৈশিষ্ট্যে ব্যবহৃত হয় in

পদ্ধতিটি দেখুন modifyLoginUrl()। এখানে আমরা পৃষ্ঠার URL সংরক্ষণ loginপরিবর্তনশীল ভিতরে $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();
}

আমি এটিকে ধাক্কা দিয়ে দুঃখিত, তবে আমি এটি করতে পছন্দ করব, তবে আমি এটি খুঁজে পাচ্ছি না! আপনি যে কোডটি দিয়েছেন তাতে আমার কী পরিবর্তন করা উচিত?
ব্রাম ভ্যানরোয়

ব্র্যাম, যদি আপনি একটি কাস্টম থিম তৈরি করেন, তবে আপনার থিম ফাংশন ফাইলে কোডের প্রথম এবং দ্বিতীয় ব্লকের সমস্তটি রাখুন। আপনি যদি একটি প্লাগইন তৈরি করেন তবে আপনার প্লাগইন ফাইলে কোডের প্রথম এবং তৃতীয় ব্লক রাখুন। দেখে মনে হচ্ছে এমন একমাত্র জিনিস যা আপনাকে সংশোধন করতে পারে তা ক্লাসের 9 ম লাইন, যেখানে এটি বলে $loginUrl = site_url('login'); // Link to login URL। আপনি যে লগইন পৃষ্ঠাগুলি ব্যবহার করতে চান তার স্লাগের সাথে মেলে কেবল 'লগইন' পরিবর্তন করুন। যদি না রফলাক্স একটি সিনট্যাক্স ত্রুটি না করে দেখছি যা আমি দেখছি না, এটিকে দেখে মনে হচ্ছে এটি সুন্দরভাবে কাজ করবে।
জেন

আপনার উত্তরটির জন্য ধন্যবাদ! সমস্যাটি হ'ল আমি একটি ড্রপডাউন ফর্ম নিয়ে কাজ করি যা ওয়েবসাইটের যে কোনও পৃষ্ঠা থেকে অ্যাক্সেস করা যায়। সুতরাং, কোনও নির্দিষ্ট স্লাগ সম্ভব নয়, কারণ লোকেরা যে কোনও পৃষ্ঠা থেকে লগইন করতে পারে ... সুতরাং, আমার সেখানে কী রাখা উচিত?
ব্রাম ভ্যানরোয়

1
ব্র্যাম - ওয়ার্ডপ্রেসের একটি লগইন ইউআরএল প্রয়োজন যাতে কোনও ব্যবহারকারীর ত্রুটি বা অনুরূপ যদি থাকে তবে তাদের কোথাও গিয়ে পাসওয়ার্ডটি পুনরায় সেট করতে বা কোনও অ্যাকাউন্টের জন্য সাইন আপ করতে হবে। লগইন ইউআরএল সেট করা সেই পৃষ্ঠাটি সরবরাহ করে। গতবছর আমি একটি প্রকল্পের সাথে ঠিক এই সেটআপটি করেছি: একটি জাভাস্ক্রিপ্ট লগইন বাক্স যা লগইন ফর্মের সাথে উপস্থিত হয়েছিল - যদি তারা তাদের তথ্য সঠিকভাবে প্রবেশ করে, এটি তাদের ডাব্লুপি-প্রশাসনে প্রেরণ করে; যদি তা না হয় তবে তারা পুনরায় চেষ্টা করতে বা তাদের পাসওয়ার্ড পুনরায় সেট করতে কাস্টম লগইন পৃষ্ঠায় এসে পড়ে।
জেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.