web-dev-qa-db-ja.com

"posts_join"と "posts_fields"フィルタフックの説明

私は "posts_"フィルタフックに不慣れで、知識のあるものからいくつかのことを知りたいと思いました:

この 質問 では、誰かがposts_joinを使用して2番目のパラメータ$queryを使用して回答を投稿しました。

add_filter('posts_join',array(&$this,'posts_join'),10,2);

...

function posts_join($join,$query) {

}

これはwp_queryのインスタンスですか、それとも似たようなものですか?

同じ例

管理者側で持っているカスタム投稿タイプごとにカスタム結合を実行できるように、投稿タイプを決定する方法

posts_fieldsフィルタフックは何をしますか?私が見た例から、SELECT呼び出しのSQL節の列を置き換えるように見えます。

私はその仮定を修正していますか、そしてそれも呼ばれることができるより多くのパラメータを持っていますか?

私はいくつかの例を見つけますが、私はどこにも確かなドキュメンテーションを得ることができません。

3
Manny Fleurmond

いずれかのメソッドを使用して投稿(query_posts()get_posts()またはWP_Queryオブジェクト)引数を照会すると、指定した引数が処理されてSQL照会になります。これはWP_Query->&get_posts()メソッドで起こります。

引数は全能ではないので、そこには結果のSQLクエリの一部を変更または上書きすることを可能にする多くのフックがあります。

  • posts_joinは、SQL JOINを処理するクエリの一部です。たとえば、必要に応じて分類法に関連するテーブルなど、追加のテーブルをミックスに追加します。

  • posts_fieldsはどのデータベースフィールドがクエリで返されるかを制御するように見えます、それはpostsテーブルのすべてのフィールドにデフォルトであるようです。

8
Rarst