در حالت عادی، کاربران در سایت های وردپرسی، پس از لاگین کردن و وارد شدن با نام کاربری خود، به صفحه داشبورد هدایت می گردند. با توجه به این که به دلایل امنیتی، برخی مدیران، دسترسی به داشبورد را محدود کرده اند، کاربران پس از لاگین کردن، به صفحه خطا برمیخورند.
در هر حال، در این نوشته، طریقه ریدایرکت کردن کاربران به صفحه ای خاص، پس از لاگین شدن را می آموزیم.
به فایل توابع (functions.php) بروید و کد زیر را به آن اضافه نمائید:
add_action('login_form', 'saqi_redirect_after_login'); function saqi_redirect_after_login() { global $redirect_to; if (!isset($_GET['redirect_to'])) { $redirect_to = get_option('siteurl'); } }
این کار باعث می شود که کاربران شما پس از ورود به سایت، وارد صفحه اصلی سایت شوند.
حالا ممکنه بخواهید که مدیران به همان داشبورد وارد شوند، اما کاربرانتان به صفحه اصلی بروند، از این کد استفاده کنید:
function saqi_login_redirect( $redirect_to, $request, $user ) { return ( is_array( $user->roles ) && in_array( 'administrator', $user->roles ) ) ? admin_url() : site_url(); } // end saqi_login_redirect add_filter( 'login_redirect', 'saqi_login_redirect', 10, 3 );
به دلخواه خود می توانید برای سطوح کاربری مختلف این کد را ویرایش نمائید و هر کاربری را بسته به نقشی که دارد، به صفحه مختص به خود انتقال دهید.
برای این کار در وردپرس افزونه هایی نیز ایجاد گردیده است که در صورت لزوم، برای تسلط بیشتر می توانید از آن ها نیز استفاده کنید.
ببخشید من یادم رفت بگم من می خوام به این برگه نره در واقع کاربرا از این برگه لاگین می شن آدرسش رو ببینید
http://site/ورود
می خوام در واقع به این ادرس نره
اگر این صفحه رو خودتون اختصاصی درست کرده اید، باید در هدر همون صفحه اون شرط رو بررسی کنید.
سلام خیلی ممنون بابت این کد اشکم در اومد از بس با این وردپرس ور رفتم 😐
داداش تو که علم کدنویسیشو داری می شه بگین کد دومی رو چطور ویرایش کنم که وقتی کاربرا وارد می شن و اگر احیانا باز یه کاربری که وارد شده و همون آدرس رو بزنه باز می ره همون داشبورد که من می خوام اینطوری نباشه و کسی که وارد شده هر چه ورود رو می زنه منتقل بشه به صفحه اصلی در واقع کسی که لاگین شده هر چه صفحه لاگین رو بزنه به صفحه ی اصلی منتقل بشه
میشه کدشو بگین واقعا دارم دیونه میشم
خواهش می کنم اگر امکانشو دارین جواب بدین 🙁
سلام محمدجان خواهش میکنم.
از این تکه کد در فایل توابع قالب خود استفاده کنید:
add_action('login_head', 'Saqi_double_login'); // Code from saqi.ir
function Saqi_double_login() {
if (is_user_logged_in() ) { wp_redirect( home_url() ); exit; }
}
موفق باشید.
داداش من اینو گذاشتم تو فانکشن و کار نکرد میشه دقیق بگین کجا بزارم خیلی ممنون از پاسختون 🙂
اول فایل functions.php با <?php شروع میشه. شما کدهای بالا را بلافاصله در خط بعدی کپی و فایل را ذخیره کنید.
ضمناً کار این کد این هست: به هنگام ورود به صفحه لاگین، ابتدا چک میکنه که کاربر قبلا لاگین کرده یا خیر. اگر لاگین کرده بود، به صفحه اصلی سایت هدایت میشه.