নিশ্চিত না করে কীভাবে লগ আউট করবেন 'আপনি কি সত্যিই লগ আউট করতে চান? "


13

এখনই যখন আমি এর মাধ্যমে লগ আউট করি:

<a href="<?php bloginfo('url'); ?>/wp-login.php?action=logout">Log out</a>

এটি আমাকে সেই পৃষ্ঠাতে পুনঃনির্দেশ করে যেখানে আমার লগ আউটটি নিশ্চিত করতে হবে।

কীভাবে নিশ্চিতকরণটি মুছে ফেলা যায় এবং লগআউট করার পরে হোমপেজে পুনর্নির্দেশ করা যায়?

উত্তর:


31

এটি ইউআরএল-এ যাচ্ছিল যা আপনাকে চেক ইন করা হচ্ছে না বলে মনে হচ্ছে because wp-login.php

case 'logout' :
    check_admin_referer('log-out');
    ...

wp_logout_urlননস সহ ইউআরএল পুনরুদ্ধার করতে ব্যবহার করুন । আপনি যদি কোনও কাস্টম URL এ পুনঃনির্দেশ করতে চান তবে এটি একটি আর্গুমেন্ট হিসাবে কেবল পাস করুন simply

<a href="<?php echo wp_logout_url('/redirect/url/goes/here') ?>">Log out</a>

আপনি wp_loginoutঅনুবাদ সহ আপনার জন্য লিঙ্কটি উত্পন্ন করে এমনটি ব্যবহার করতে পারেন:

echo wp_loginout('/redirect/url/goes/here')

1
প্রতিধ্বনি ডব্লিউপি_লগিনআউট ('/ পুনর্নির্দেশ / ইউআরএল / যায় / এখানে') ঠিকঠাক কাজ করছে ..
ময়ূর দেবমুরারি

1
আমি ব্যবহার করছি wp_logout_url( get_permalink())এবং নিশ্চিতকরণ পৃষ্ঠাটি বাইপাস করা হয়নি।
নলসটি

একই সমস্যা এখানে :(
জারমারসন

15

আপনি যদি wp_logout_url()ফাংশন ব্যবহার করতে না পারেন , আপনি এই কোডটি ব্যবহার করে এই বৈধতাটি বন্ধ করতে পারেন:

add_action('check_admin_referer', 'logout_without_confirm', 10, 2);
function logout_without_confirm($action, $result)
{
    /**
     * Allow logout without confirmation
     */
    if ($action == "log-out" && !isset($_GET['_wpnonce'])) {
        $redirect_to = isset($_REQUEST['redirect_to']) ? $_REQUEST['redirect_to'] : 'url-you-want-to-redirect';
        $location = str_replace('&amp;', '&', wp_logout_url($redirect_to));
        header("Location: $location");
        die;
    }
}

'url-you-want-to-redirect'লগআউট করার পরে আপনি যে URL টি পুনর্নির্দেশ করতে চান তা প্রতিস্থাপন করুন ।

এটি আপনার যুক্ত করুন functions.php


এটি বৈধতা ছাড়াই লগ আউট করার জন্য কাজ করে, তবে এটি ইউআরএলটি পুনর্নির্দেশ করে না।
ফু এনগুইন

@ ফুগনগেইন আপনাকে কেবল সেই কোডের পুনর্নির্দেশের অনুরোধটিতে পুনর্নির্দেশের URL যুক্ত করতে হবে যেখানে কোলনের পরে '' কোট রয়েছে।
এনজেঙ্গা

এই বৈধতা অপসারণ করার জন্য কোনও সুরক্ষা জড়িত আছে?
দক্ষিণ কোরিয়ার

@ ব্যবহারকারী 1264304 আমি বিশ্বাস করি যে কোনওভাবে ব্রাউজারে লোড হওয়া দূষিত জেএস লগইন পৃষ্ঠায় পুনর্নির্দেশ করতে পারে, তবে এটি যা করতে চলেছে তা ব্যবহারকারীকে লগআউট করে। সত্যই দূষিত কোডটি সম্ভবত কোনও বৈধ ননসের আগে URL টি প্রতিস্থাপন করতে চাইবে। ব্যবহারকারীর অন্য কোনও সাইটে নেভিগেট করতে পারে যার বর্তমান সাইটের লগআউট পৃষ্ঠার একটি লিঙ্ক রয়েছে - এটি ধরে নিয়ে যে অন্য সাইটের ব্যবহারকারীর একটি সম্পর্ক রয়েছে তা অবগত। আবার, ব্যবহারকারীর লগ আউট ব্যতীত অন্য কোনও ফলাফল নেই। আমি এটা কখনও দেখিনি। সুতরাং আপনার প্রশ্নের উত্তর দিতে, আমি মনে করি না বৈধতা অপসারণ করার জন্য কোনও সুরক্ষা জড়িত আছে।
টনিজি

এর, অনেকগুলি পুনঃনির্দেশ ...
সলোমন ক্লসন

3

আপনি যদি আপনার মেনুতে একটি কাস্টম লিঙ্ক তৈরি করেন তবে এতে লেবেল “Logout”সেট করুন এবং এতে URL টি সেট করুন http://yourdomain.com/wp-login.php?action=logout। তারপরে আপনার functions.phpফাইলে এই ফাংশনটি যুক্ত করুন:

function change_menu($items){
  foreach($items as $item){
    if( $item->title == "Logout"){
         $item->url = $item->url . "&_wpnonce=" . wp_create_nonce( 'log-out' );
    }
  }
  return $items;

}
add_filter('wp_nav_menu_objects', 'change_menu');

লগআউট করার পরে আপনি যদি লগইন পৃষ্ঠাতে পুনর্নির্দেশ করতে চান তবে আপনার এই হিসাবে লগইন ইউআরএল যুক্ত করুন:

$item->url = $item->url . "&_wpnonce=" . wp_create_nonce( 'log-out' ).'&redirect_to='.wp_login_url();

রেফারেন্স লিঙ্ক


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.