1

私が開発しているWordpressサイトで、ユーザーが追加情報を追加できるfcustomユーザーメタフィールド(matrix-diagnosis)を作成しました。

このフィールドに入力したすべてのユーザー(およびその応答)のリストを表示しようとしていますが、フィールドに入力していないユーザーは省略したいと思います。

たくさんのグーグルの後、私が得た最も近いものはこのビットのコードです...

<ul class="unstyled">

<?php
  //these are the arguments for the get_users function below
  $args  = array(
     'fields' => 'all_with_meta',
     'meta_query' => array('key' => 'matrix-diagnosis')
  );

  //get_users calls WP_User_Query and returns an array of matching users
  $users = get_users($args);

  //leaving an array of $users sorted by the value of meta 'points'
  foreach ($users as $user) : ?>

     <li>
        <h3><?php the_author_meta( 'first_name', $user->id ); ?> <?php the_author_meta( 'last_name', $user->id ); ?></h3>
        <p><?php the_author_meta( 'matrix-diagnosis', $user->id ); ?></p>
     </li>

<?php endforeach; /* end for each function */ ?>

</ul>

これは実際にはデータベースにクエリを実行し、すべてのユーザーとその応答のリストを表示しますが、誰かがフィールドに入力していない場合は、名前だけを表示します。そのフィールドに価値がない人のリストをスクラブするにはどうすればよいですか?

秘密は、配列を使用することではなく、これまで運がなかった$wpdpタグを使用することにあります。

前もって感謝します!

4

1 に答える 1

1

次のように空の場合は、foreachステートメントチェックに変更できますthe_author_meta( 'matrix-diagnosis', $user->id );$matrix_check = get_the_author_meta( 'matrix-diagnosis', $user->id, true );

foreach ($users as $user) : ?>
<?php $matrix_check = get_the_author_meta( 'matrix-diagnosis', $user->id, true );
if ($matrix_check != "") {?>
     <li>
        <h3><?php the_author_meta( 'first_name', $user->id ); ?> <?php the_author_meta( 'last_name', $user->id ); ?></h3>
        <p><?php the_author_meta( 'matrix-diagnosis', $user->id ); ?></p>
     </li>

注:テストされていません。一部のタグは閉じられていません

于 2012-05-19T15:48:05.567 に答える