WordPress のプラグイン Custom Field Suite には「関連ポスト」というフィールドがあります。今回、記事に投稿者を紐づけたいと思いましたが、WordPress にそもそも備わっている author は以下の理由から避けました。
##【避けた理由1】セキュリティ
何も対策せず投稿者を作ると、下記のURLが生成されます。
https://example.com/author/tanaka/
https://example.com/author/sato/
authorのユーザー名は、そのままWordPressのログインIDとなります。わざわざ晒したくないところです。
##【避けた理由2】メールアドレスが必須
ログインIDとなるということは、大抵のサービスと同様、ユーザーを作る際にメールアドレスが求められます。今回、記事に紐付けたい投稿者は50名を超えていました。
##Custom Field Suite の関連ポストの情報を、投稿ページに表示させるソースコード
以上の2つの理由から、まずカスタム投稿タイプの機能を使って「投稿者」を作り、投稿者名や所属、略歴などを入力するようにしました。そして、その投稿者の情報を、投稿に紐づけるため、 Custom Field Suite で「関連ポスト」のフィールドを投稿に用意し、投稿者を紐付けました。
その関連ポストの情報を投稿に表示させるソースコードが下記です。特に get_post_meta や wp_get_attachment_image が工夫した点です。
<?php
$values = CFS()->get('kanrenpost');
foreach ($values as $post_id):
setup_postdata( $post_id );
$rslink = get_permalink($post_id);
$rstitle = get_the_title($post_id);
$rsoriginalname = get_post_meta($post_id,'kanrenpost__originalname',true);
$rsoriginalimage = wp_get_attachment_image(get_post_meta($post_id,'kanrenpost__originalimage',true));
?>
<a href="<?php echo $rslink ?>">
<?php echo $rstitle ?>
<?php echo $rsoriginalname ?>
<?php echo $rsoriginalimage ?>
</a>
<?php endforeach; ?>
##参考URL
WordPress:Custom Field Suiteの使い方からカスタマイズまで | 新宿のホームページ制作会社 ITTI(イッティ)
関数リファレンス/get post meta - WordPress Codex 日本語版