情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・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); }
?>