「新着情報」に指定した投稿を表示する方法

Cocoonカスタマイズ集
この記事は約2分で読めます。
記事内に広告が含まれています。

はじめに

new_listショートコードには、ordered_postsオプションにより指定した投稿IDをカード表示する機能があります。

しかし、info_listショートコードにはこのようなオプションが備わっていません。

そこで、汎用のactionオプションを使用して、投稿IDを指定し表示させます。

この記事では、この方法について説明します。

使用方法

actionオプションを追加し、表示したい投稿IDをカンマ区切りで指定します。

[info_list action="post__in:投稿ID, 投稿ID"]

実装手順

以下のコードをfunctions.phpに追加します。

add_filter('get_info_list_args', function ($args) {
  if (isset($args['action'])) {
    $action = explode(':', $args['action']);

    if ($action[0] === 'post__in' && isset($action[1])) {

      // 投稿IDを設定
      $ids = array_map('intval', explode(',', $action[1]));

      $args['orderby']  = 'post__in';
      $args['post__in'] = $ids;
    }
  }

  return $args;
});

さいごに

今回紹介した方法を使用すれば、ショートコードを一から作成することなく、既存のinfo_listショートコードをカスタマイズして指定した投稿IDを表示できます。
actionオプションを使ってパラメータを変更することで、幅広いカスタマイズが可能になります。

タイトルとURLをコピーしました