Wood-Roots:blogHOMEWordPress201309/03pre_get_postsを使ったカスタムタクソノミーの複雑な条件検索WordPressこの記事のコードはちゃんと動いてませんでした。近日中に修正いたします。2014.04.03追記:修正版書きました以前カスタムタクソノミーを好みの条件で検索する方法として、カスタムタクソノミーを使った複雑な条件検索というエントリーを書きました。当時は$_GETで得た値をtax_queryに突っ込むという方法を取っていましたが、$_GETを直接取得するというのは明らかにダサいですしWordPressらしくもありません。そこで検索に用いるタクソノミー名をクエリオブジェクトより取得する方法を改めて考えてみました。ついでに通常のループ+pre_get_postsで取得できるようにしてみました。DEMO(実際に検索できます)ADsカスタムタクソノミー定義時の注意カスタムタクソノミーはregister_taxonomy関数で定義しますが、その際「query_var」というオプションをtrueにセットします。することで定義したカスタムタクソノミー名をクエリとして扱うことが出来ます。検索フォーム部分はnameにカスタムタクソノミーの名称、valueにそれぞれのタクソノミーの内容の名前(分かりにくい言い回しですが・・・)を入力します。ループ部分はpre_get_postsフィルタを使う場合、while部分以外の記述は必要ありません。?><p>投稿はありません。?>functions.phpに記述するフィルターフック$query->queryをvar_dumpなどで見てみると分かりやすいのですが、単にフォームからのGET値が入っているわけではなく、GETで送られてかつカスタムタクソノミーとして定義している値のみがqueryとして保持されています。この$query->queryを使ってtax_queryを生成します。){return;}//$queryの中身を見てみると分かりやすいかもしれません。//var_dump($query);//クエリがある場合のみの条件分岐。array_merge($val),//$valが配列なので。コメントをキャンセルメールアドレスが公開されることはありません。コメント名前メールアドレスサイトCommentsこんにちは。以前投稿していた旧Verでは、条件検索ができたのですが、このソースをそのまま使用し、試した所404エラー等が連発してしまいました。様コメントありがとうございます。念のためWP3.8.1にアップデートしました)、動作しないのでしたらエラーのもう少し詳しい状況をお伝えいただけますと解決も早いかと思います。);を記述していないとメッセージは表示されません)・どのタイミングでエラーが表示されるのか(ページにアクセスしたとき?検索を実行した時?)などの情報が分かるとどこで問題が発生しているのか原因究明が捗ります。可能であれば設置して動作していないサイトのURLをお伝えいただければなおいいかと思います。AMご丁寧にご返信ありがとうございます。Wordperssのバージョンは3.8.1を使用しております。ボタンを押したあとでも該当する記事が表示されない状態となっております。様コメントありがとうございます。誠に申し訳ありません。いただいたパスワードでテーマを直接変更して見ていたら記述をミスってしまい、更新作業ができなくなってしまいました。お伝えいただいたサイトもエラーで表示されない状態になっているかと思います。修正していたのはfunctions.phpなので、おそれいりますが再度アップロードしていただけますでしょうか。AMお手数をおかけいたします^^;先ほど元のファイルに戻しましたので、よろしくお願いいたします。AMのあ様テスト用のサーバのfunctions.phpを改造させていただき、おそらく思い通りの動作ができるようになったのではないかと思います。http://n0ahrt.xsrv.jp/※ID、Passはテストサーバとはいえ公開しておくのはまずいと思うので編集させていただきました。当記事に書いている内容でもエラー出力させてみるとエラーまみれだったりよく見たら動作がおかしかったりしたので、記事も近日修正いたします。修正箇所はfunctions.phpのみで、コメントを入れていますので参考にしてみてください。AMMorimoto様お忙しい所ありがとうございました!大変勉強になります。今後ともよろしくお願いいたします。2Archive2020年92019年182018年102017年172016年202015年212014年312013年552012年50SearchSocialAboutWeb制作会社ではたらく社畜のアウトプットです。Web制作技術のほか、雑記など。当ブログと運営者についてもっと詳しく見るプライバシーポリシーContactお問い合わせは下記フォームをご利用ください。お時間がございましたらお問い合わせの前にこちらをご一読いただけますと幸いです。Wood-Roots:blog。