2015
12/18

WordPress4.4で追加された新しいクエリと拡張されたクエリ:post_name__in・title・s

WordPress4.4で新しくクエリが追加されました。
クエリ関係の機能は使いこなすことで自由な記事抽出を行うことができますので、多くの記事を扱う場合に大きな武器となります。

4.4で追加されたものはどのような機能なのか、どう使えばいいか試してみました。

ADs

新しく追加されたパラメータ

post_name__in

スラッグが完全一致する記事を抽出できます。
post_name__inに渡す値は1件の場合でも配列でないといけません。

たとえば、スラッグが「hello-world」「hoge」の2記事を取得したい場合は以下のようにします。

※get_posts()を使う例ですがpre_get_posts()でも同様です。

日本語スラッグを使う場合

日本語の場合はurlencodeをしないとヒットしません。

スラッグの部分一致で検索できるのかと思ってましたが、そういう機能ではなかったです。ちょっと残念。

部分一致をやりたい場合は以下を参考にしてみてください。
スラッグの部分一致で記事を抽出する

title

タイトルの完全一致で記事を抽出します。
titleの場合urlencodeは必要なく、日本語でもそのまま渡してかまいません。

機能が拡張されたパラメータ

s

sパラメータは従来からあり、本文とタイトルを部分一致で検索することができます。
4.4では「-」のついた単語を除外する機能が追加されました。
単語間は半角スペースで区切って渡します。

以下は本文・タイトルに「あああ」を含むが「いいい」は含まない記事を取得する例です。

sの場合はurlencodeは不要です。
また、順番が入れ替わっても機能します。以下の場合でも「あああ -いいい」を指定した結果と変わりません。

まとめ

従来はフィルターフックでSQL文を置換して実装していたような処理も、デフォルトの機能で実現可能となりました。
覚えておいて損はない機能ですね。

ADs

Post Comments

メールアドレスが公開されることはありません。

Comments

コメントはまだありません。