کد وردپرس: ریدایرکت wp-login.php به آدرس دلخواه

مسیح دیندار
مدیریت
عضو شده: 2021-04-12 14:23:35
2021-06-05 08:34:55

در وردپرس به طور پیش فرض ورود، عضویت، فراموشی رمزعبور و حتی خروج از حساب کاربری توسط فایلی به نام wp-login.php انجام می شود. اکثر طراحان که قصد دارند سایت های وردپرسی را حرفه ای تر جلوه دهند، سعی می کنند بخش هایی که نمایانگر اسکریپت وردپرس است را از سایت تغییر دهند. یکی از اینها همین فایل ورود است که در تمامی سایت های وردپرسی می توانید با وارد کردن wp-login.php به انتهای آدرس یک سایت، مطمئن شوید که سایت وردپرسی است یا خیر. البته راه های دیگری مانند پوشه های wp-content نیز برای تشخیص وردپرسی بودن یک سایت هست.

اما اگر در طراحی خود، یک صفحه مخصوص برای ورود و عضویت ساخته اید و می خواهید کاربران بجای wp-login.php به آن مسیر ریدایرکت شوند، کد زیر را در فایل functions.php قالبتان قرار دهید:

function talkina_possibly_redirect(){
  global $pagenow;
  if( 'wp-login.php' == $pagenow ) {
    if ( isset( $_POST['wp-submit'] ) ||   // بررسی ورود به حساب
      ( isset($_GET['action']) && $_GET['action']=='logout') ||   // بررسی خروج از حساب
      ( isset($_GET['checkemail']) && $_GET['checkemail']=='confirm') ||   // بررسی فراموشی رمزعبور
      ( isset($_GET['checkemail']) && $_GET['checkemail']=='registered') ) return;    // بررسی عضویت
    else wp_redirect(home_url('/my-login'));     // تعیین مسیری که کاربر به آن ریدایرکت شود
    exit();
  }
}
add_action('init','talkina_possibly_redirect');

و در کد بالا بجای my-login مسیری از سایت که می خواهید به آن ریدایرکت انجام شود را وارد کنید.