情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。
会員制サイトで大切なお知らせをユーザーが読んだことを確認したい、読んだユーザーの名前と合計人数を投稿上に表示したい。
1.カスタムフィールドでユーザー名欄を作成
2.ログイン中のユーザー名を取得
3.ユーザー名欄を取得して、ログイン中ユーザー名が含まれていなければ既読ボタンを表示して送信してもらう
4.ユーザー名欄が空であれば、そのままログイン中ユーザー名を保存
5.ユーザー名欄に値が入っていれば、ログイン中ユーザー名をカンマ区切りで追加して保存
6.ユーザー名のみの表示であれば、そのままカンマ区切りで表示・カンマをタグに置換して表示
7.カウントをつけるのでユーザー名欄の値を一旦配列に入れてforeach、ユーザー名とカウントを表示
<?php $current_user = wp_get_current_user(); $current = $current_user->last_name.' '.$current_user->first_name; ?> <?php $usernames = get_field('username'); if ($usernames) { $datas = explode(',', $usernames); $count=0; foreach ($datas as $data) { echo $data.' '; $count++; } echo ' 既読人数:'.$count.'人'; } if (strpos($usernames, $current) === false) { ?> <form method="post" action="" id="update"> <input type='hidden' name='currentuser' value='<?php echo $current; ?>' /> <input type='submit' value='既読' /> </form> <?php } $username = $_POST['currentuser']; if ($usernames && $username && strpos($usernames,$username) === false) { $addition = $usernames.','.$username; update_field('username', $addition, $post_id); } elseif (!$usernames && $username) { update_field('username', $username, $post_id); } ?>