اگر قصد داشته باشید صفحات ورود و ثبت نام را در وردپرس برای خود به طور جداگانه طراحی کنید، لازم است که قبل از هر چیز صفحات پیشفرض وردپرس برای این منظور را به صفحات خود ریدایرکت کنید
مثلا صفحه ورود پیشفرض را به برگه ورود (که خودتان ایجاد کردید) ریدایرکت کنید و صفحه ثبت نام را هم همینطور به برگه عضویت
کافیست کدهای زیر را درون فایل functions.php قرار دهید
ریدایرکت کردن صفحه لاگین:
function redirect_login() { if (!is_user_logged_in()) { wp_redirect(home_url('/login')); exit(); }else{ wp_redirect(home_url()); } } add_action( 'login_form_login', 'redirect_login' );
ریدایرکت کردن صفحه ثبت نام:
function redirect_register() { if (!is_user_logged_in()) { wp_redirect( home_url( '/registration' ) ); exit(); }else{ wp_redirect(home_url()); } } add_action( 'login_form_register', 'redirect_register' );
همچنین میتوانید صفحه profile.php را نیز به برگه دلخواه وصل کنید
add_action ('init' , 'prevent_profile_access'); function prevent_profile_access(){ if (current_user_can('manage_options')) return ''; if (strpos ($_SERVER ['REQUEST_URI'] , 'wp-admin/profile.php' )){ wp_redirect ( home_url( '/profile' ) ); } }
برای صفحه فراموشی رمز عبور
function redirect_lost(){ if (!is_user_logged_in()) { wp_redirect( home_url( '/registration' ) ); exit(); }else{ wp_redirect(home_url()); } } add_action( 'login_form_lostpassword', 'redirect_register' );
نتیجه گیریدر کل ریدایرکت ها با تابع wp_redirect انجام میشود که برگرفته از تابع header در php میباشد
همچنین میتوان به سه روش ریدایرکت کرد
گرفتن url با آرایه سراسری SERVER
گرفتن آدرس فعلی صفحه با متغیر سراسری $pagenow در وردپرس
اکشن ها (login_form_login مثلا)
راه دوم
این روش استاندارد تر است و میتوان از تابع wp_search_form بدون مشکل استفاده کرد
در مراحل قبلی نمیشد
add_action ('init' , 'prevent_profile_access'); function prevent_profile_access(){ if (current_user_can('manage_options')) return ''; if (strpos ($_SERVER ['REQUEST_URI'] , 'wp-admin/profile.php' )){ wp_redirect ( home_url() ); } } add_action ('init' , 'prevent_login_access'); function prevent_login_access(){ if (current_user_can('manage_options')) return ''; if (strpos ($_SERVER ['REQUEST_URI'] , 'wp-login' )){ wp_redirect ( home_url() ); } }
میخواهیم فقط و فقط صفحه ورود را ریدایرکت کنیم
add_action ('init' , 'prevent_login_access'); function prevent_login_access(){ if (current_user_can('manage_options')) return ''; if (!strpos($_SERVER ['REQUEST_URI'] , 'wp-login.php?action')){ wp_redirect ( home_url() ); } }
صفحه ثبت نام و فراموشی برعکس
اگر سوالی در مورد این مطلب دارید در قسمت نظرات همین پست ارسال کنید
اخبار زردیس | جدیدترین اخبار ایران و جهان
تمامی حقوق مطالب برای "اخبار زردیس"محفوظ است و هرگونه کپی برداری بدون ذکر منبع ممنوع می باشد.
طبق ماده 12 فصل سوم قانون جرائم رایانه ای کپی برداری از قالب و محتوا پیگرد قانونی خواهد داشت.