web-dev-qa-db-ja.com

ログインユーザーのフッターのショートコードを表示する

コンテンツのブロックを表示するショートコードがあります。ユーザーがログインしているかどうかによって異なるHTMLを表示できる方法はありますか?以下は私がこれまでに持っているものです。

function footer_shortcode(){
    $siteURL = site_url();
    $logoutURL = wp_logout_url(home_url());

    echo '
        <div class="signin_container"> 
            <h4 class="signin_footer_head">Log In To My Account</h4>
            <a href="'.$siteURL.'/login/">Log In</a>
            <a href="'.$siteURL.'/register/">Sign Up</a>
        </div>
    ';  
}

add_shortcode('footerShortcode', 'footer_shortcode');
1
Jon

ユーザーがログインしているかどうかを確認するには、コンディショナルタグを使用できます。コンディショナルは、Wでは非常に一般的です。 このページ a readを指定することをお勧めします。

これが一例です。

function footer_shortcode(){
    if (is_user_logged_in()){
        echo '
            // Logged In Content
        ';
    }else{
        echo '
            // Logged Out Content
        ';
    }       
}

add_shortcode('footerShortcode', 'footer_shortcode');
1
RiddleMeThis

あなたはis_user_logged_in()を探しています

参照: https://developer.wordpress.org/reference/functions/is_user_logged_in/

例:

function footer_shortcode(){
    $siteURL = site_url();
    $logoutURL = wp_logout_url(home_url());

   if(is_user_logged_in()) { // user is logged in
      echo '
        <div class="signin_container"> 
            <h4 class="signin_footer_head">Account Info</h4>
        </div>
    '; 
   }

   else { //user is not logged in
      echo '
        <div class="signin_container"> 
            <h4 class="signin_footer_head">Log In To My Account</h4>
            <a href="'.$siteURL.'/login/">Log In</a>
            <a href="'.$siteURL.'/register/">Sign Up</a>
        </div>
    '; 
   } 
}

add_shortcode('footerShortcode', 'footer_shortcode');

編集:RiddleMeが表示されますこれはパンチに私を倒しました

1
Liam Stewart