サポート » 使い方全般 » ユーザーのタームを条件分岐に使用したい

  • 解決済 JunichiK

    (@junichik)


    いつもお世話になります。
    多分、初歩的な質問だと思うのですが、よろしくお願いいたします。

    WP User Groupsというプラグインを使用して、ユーザーにタームを付けています((WP User Groupsは、user-groupとuser-typeというタクソノミーでユーザーをグループ分けするプラグインです)。
    下記コードでユーザーのタームのスラッグの取得は出来ています(echo で表示します)。

    $user_id = get_current_user_id();
    $user_terms = wp_get_object_terms( $user_id, 'user-type' );
    if( !empty( $user_terms ) ) {
    	if( !is_wp_error( $user_terms ) ) {
    		foreach( $user_terms as $user_term ) {
    		$user_type = $user_term -> slug;
    		}
    	}
    }

    しかし、タームが authority の場合ということを条件として下記コードのようにしても、うまくいきません。

    if( $user_type == 'authority' ) {
    //表示内容
    }

    おそらく、$user_type == ‘authority’ の記述方法が間違っているのだと思いますが、どのように記述すれば良いのでしょうか?

    よろしくお願いいたします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • こんにちは、JunichiK さん。

    おそらく、$user_type == ‘authority’ の記述方法が間違っているのだと思いますが、どのように記述すれば良いのでしょうか?

    $user_type 変数の中身は何になっているのか確認することをオススメします。PHP の var_dump() 関数を使用すると簡単に確認できます。

    <?php
    var_dump( $user_type );

    同じように、$user_terms 変数も確認してみるといいかもしれません。この 2 つの変数がどうなっているのかを確認すると、どこに問題があるのか分かるかもしれません。

    KUCKLUさん、早々のご返信ありがとうございます。
    結果的には本当にお恥ずかしいことでした。申し訳ありません。
    仰せのとおりに var_dump() で調べてみたところ、$user_type は string(9) “authority” で、全く問題なしでしたので、よくよく他のコードを確認してみましたら、他の条件で && と || を逆にしている箇所がありました。
    そのため、他の分岐が優先されて表示されてしまったわけです。
    本当にお手数おかけしまして、申し訳ありませんでした。
    しかしながら、結果的には var_dump() で問題ないことを確信したからこそ気づいたミスでしたので、本当にありがとうございました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「ユーザーのタームを条件分岐に使用したい」には新たに返信することはできません。