いっつもWP_Queryの使い方は忘れてしまうのでここにメモを残しておきます。
投稿のタイトルや投稿内容(コンテンツ)に特定の文字列を含む記事をWP_Queryクラスを使って取得する方法のまとめ。
まずはコードから
<?php
$args = array(
'post_type' => 'post', // 対象は投稿
'posts_per_page' => -1, // 全取得
'post_status' => 'publish', //公開済みのみ
's' => 'プログラミング', // ここに検索対象の文字列を入力
'exact' => false // タイトルの部分一致
);
$the_query = new WP_Query($args);
if ($the_query->have_posts()) :
echo '<ul>';
while ($the_query->have_posts()) : $the_query->the_post();
//ループ内の記述
//ここで取得した情報を編集する
echo '<li>' . get_the_title() . '</li>';
endwhile;
echo '</ul>';
endif;
wp_reset_postdata();
?>
上の例では「プログラミング」という文字列を含む投稿を検索対象としています。
オプションの解説
このクエリーで特に重要なパラメータは「exact」です。
このexactパラメータのデフォルトは false が指定されています。
false は部分一致での検索となり、true にした場合は完全一致として検索が行われる。