0

特にbuddypressフォーラムのループで。

特定のフォーラムトピックのみを返すようにSQLを変更できるようにしたいと思います。特定のループでSQLが実行される場所を見つけられるようにしたい。私はそれにつまずくかもしれませんが、生成されたSQLを見つけるためにすべてのループをトレースバック/デバッグする良い方法があるかどうか疑問に思います。

私はまだループとタグ、アクションとフックを理解するのに苦労しています。したがって、デバッグのヒントは非常に役立ちます。

更新:私は正確に何をしたいのかをあなたに伝えます。特定の条件を満たすbuddypressフォーラムでフォーラムトピックを返すことができるようにしたい、つまり、そのトピックの投稿に検索用語を含む特定のフォーラムトピックを返したい。これらの条件をフォーラムループSQLに追加するための最良の方法は何ですか。

ありがとう

4

1 に答える 1

0

本当にsqlを使用したい場合は、wp-includes / query.phpを開き、functinget_postsに移動します。これは、すべての魔法が発生するかなり大きな関数です。ここでは何も変更しないでください。ただし、ウィッチフィルターが呼び出されていることを確認するために使用してください(たとえば、1869行目に表示される場合$search = apply_filters_ref_array('posts_search', array( $search, &$this ) );、ウィッチはフックにフィルターが必要であることを意味します。posts_search次に、SQLクエリを変更できます。これは単なる例適切なフィルターを選択します)。

さて、あなたがただ述べているのであれば、ループが始まる直前にquery_posts関数を使用する方が簡単でより良い習慣でしょう。ループは通常、テーマファイルで始まります(利用可能なテーマファイルをcodex.wordpress.orgで検索し、それらを見つけて、いつ呼び出すか)。

于 2011-02-09T18:13:39.137 に答える