author.phpでユーザのカスタムフィールドを出力したい
-
皆様、いつも大変お世話になっております。
現在author.phpでユーザに追加したカスタムフィールドの
値を出力しようとしていて壁にぶつかっています。author.php
以下の記述ですとカスタムフィールド(プラグインのTypesを使用)
の値が出力されません。<?php // ユーザIDからユーザ情報の取得 $user = new WP_User( get_the_author_meta( 'ID', get_query_var( 'author' ) ) ); ?> <?php // 権限が「center_user」のプロフィールを出力 if( in_array( 'center_user', $user->roles ) ) : ?> <ul> <li>センター名:<?php echo types_render_usermeta_field("name_center", array()); ?></li> <li>電話番号:<?php echo types_render_usermeta_field("tel_center", array()); ?></li> </ul> <?php // 権限が「contributor」のプロフィールを出力 elseif( in_array( 'contributor', $user->roles ) ) : ?> <?php echo 'Contributor'; ?> <?php endif; ?>
が、以下のようにループの中に記述すると
出力されます。<?php if ( have_posts() ) : the_post(); /* センタープロフィール */ ?> <?php // ユーザIDからユーザ情報の取得 $user = new WP_User( get_the_author_meta( 'ID', get_query_var( 'author' ) ) ); ?> <?php // 権限が「center_user」のプロフィールを出力 if( in_array( 'center_user', $user->roles ) ) : ?> <ul> <li>センター名:<?php echo types_render_usermeta_field("name_center", array()); ?></li> <li>電話番号:<?php echo types_render_usermeta_field("tel_center", array()); ?></li> </ul> <?php // 権限が「contributor」のプロフィールを出力 elseif( in_array( 'contributor', $user->roles ) ) : ?> <?php echo 'Contributor'; ?> <?php endif; ?> <?php endif; ?>
が、上記の記述ですと指定した権限のユーザがデフォルトの「投稿」を一件以上していないと
出力されません。(投稿があると出力され、望む結果が得られます)他のテンプレート(カスタム投稿用に用意した独自テンプレート)ではユーザの
カスタムフィールドの値が出力されるのですが、author.phpだと前述のように
なってしまいます。ループ外で指定した権限ユーザのカスタムフィールドを取得する書き方を
すればいいのかなと思うのですが、まだまだWordPressの理解が浅く
求める結果が得られません。いつもお世話になってばかりで大変恐縮ですが
アドバイスいただけないでしょうか。何卒よろしくお願い申し上げます。
3件の返信を表示中 - 1 - 3件目 (全3件中)
3件の返信を表示中 - 1 - 3件目 (全3件中)
- トピック「author.phpでユーザのカスタムフィールドを出力したい」には新たに返信することはできません。