【WordPress】Custom Field Suiteで投稿に関連する記事を表示したい

WordPress

以前にSmart Custom Fieldsでも紹介した、投稿に関連する記事を表示する例を、今度はWordPressのカスタムフィールド作成・管理プラグイン「Custom Field Suite」を使って紹介します。どちらも素晴らしいプラグインなので、用途に応じて使い分けるとよいかもしれません。

以前同様にAmazonや楽天の商品ページで表示される関連商品やオススメ商品のイメージです。

関連記事を登録するカスタムフィールドの作成

WordPress管理画面のCustom Field Suiteから、関連記事を登録するカスタムフィールドを新規作成します。フィールドタイプは「関連ポスト選択」」(フィールド名は’relation_item’としました)。

投稿タイプは表示したいもの選びましょう。shiftキーを押しながら選択すると複数選べます。

これで投稿編集画面で関連記事を登録するカスタムフィールドが表示されます。

関連記事を投稿ページに出力

関連記事を出力したいテンプレートファイルにPHPを記述します。

テーマファイル(single.phpなど)

まずCFS()->get()で、’relation_item’に値が入っているかチェックしています。

カスタムフィールドに値が入っている場合、関連記事を表示する処理を行います。

/* カスタムフィールドに値があるかチェック */
$relation_item = CFS()->get( 'relation_item' );

/* カスタムフィールドに値がある場合、関連記事表示の処理を行う */
if( !empty( $relation_item ) ) {

  echo '<h2>リレーション(Custom Field Suite版)</h2>';

  /* 関連記事を表示するラッパー */
  $output_relation_items = '<ul class="relation-items">';

  /* 取得した値をループ */
  foreach( $relation_item as $post ) {

    /* CFSの関連ポスト選択には、投稿IDが入っています。 */
    /* テンプレートタグを使いたいので、その投稿IDをグローバル変数へセット */
    setup_postdata( $post );

    /* 投稿IDから取得した関連記事情報を出力用の変数へ代入 */
    $output_relation_items .= '<li id="post-'.get_the_ID().'"><a href="'.esc_url( get_the_permalink() ).'">'.get_the_title().'</a></li>';

  }

  /* ラッパーを閉じます */
  $output_relation_items .= '</ul>';

  /* 関連記事を出力 */
  echo $output_relation_items;

  /* メインクエリのグローバル変数を復元 */
  wp_reset_postdata();

}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*