WordPress にはお手軽便利に関連データを出し入れできる、メタデータとよばれる仕組みがある。 メタデータ API - WordPress Codex 日本語版
これを使うと、例えば、投稿に対するリアクションをつけるようにしたり WordPress の標準にはないデータを乗せることができるようになる。
ちなみに、似たような…というか大体同じ認識のカスタムフィールドなるものもある。これもメタデータ。こっちは登録時?に設定できるようなもの、と思っている。管理画面で入れると、テンプレート側でもその値に合わせて何か表示できる、みたいな。 カスタムフィールドの使い方 - WordPress Codex 日本語版
メタデータにいれるものは serialize に通せるものならなんでもよいようで、配列はもちろん、__sleep()と__wakeup()メソッドを実装していればクラスでも問題なくいけるっぽい。たぶん。 add_metadata() | Function | WordPress Developer Resources PHP: serialize - Manual
で、この post_meta 系の関数、それそのままだとちょっと大変になる場合があったので簡単にラッパークラスを作った。 wputil/PostMeta.php at master · sters/wputil
こんな感じでつかえる。
$reaction = new PostMeta(get_the_ID(), 'reaction');
echo 'Smile! ' . $reaction->get()['smile'] . ' times';