はじめに
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オプションを使ってパラメータを変更することで、幅広いカスタマイズが可能になります。


