0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[ WordPress ] プラグイン Custom Field Suite の関連ポストの情報を、投稿ページに表示させる

Posted at

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 日本語版

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?