検索語句を含む投稿を新着順で表示する方法

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

はじめに

以下の質問に回答します。

new_listショートコードはデフォルトで投稿日順 または更新日順でしか表示できません。
ここでは、特定の語句を 投稿タイトル・本文・抜粋 に含む投稿を、投稿日順 で表示する方法を紹介します。

同じ方法をinfo_listショートコードにも適用可能です。

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

使用方法

actionオプションを追加します。

  • 新着記事
[new_list action="search:検索キーワード"]
  • 新着情報
[info_list action="search:検索キーワード"]

実装手順

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

/**
 * 投稿リスト用引数に検索条件を設定
 *
 * @param array $args 投稿リスト用の引数
 * @return array 検索条件を設定した引数
 */
if (!function_exists('add_search_action_to_args')):
function add_search_action_to_args($args) {
  if (!isset($args['action'])) {
    return $args;
  }

  $parts = explode(':', $args['action'], 2);

  if ($parts[0] === 'search' && !empty($parts[1])) {
    // 検索語句を設定
    $args['s'] = $parts[1];
  }

  return $args;
}
endif;


// 新着記事のクエリを設定
add_filter('widget_entries_args', 'add_search_action_to_args');


// 新着情報のクエリを設定
add_filter('get_info_list_args', 'add_search_action_to_args');

さいごに

今回紹介した方法を使えば、特定の検索語句を含む投稿タイトル・本文・抜粋を、新着順で簡単に表示できます。
検索語句ごとの記事一覧を動的に作成したい場合に非常に便利です。

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