サポート » 使い方全般 » 複数条件に合致するアーカイブページの作成について

  • 解決済 shoui

    (@shoui)


    WordPressを使い始めて1ヶ月程度しか無いため、用語等間違いがあればご指摘ください。

    現在WordPressを用いて求人サイトを作っています。
    ・個々の求人情報はカスタム投稿(‘job’)で作成しました。
    ・求人情報の分類はカスタム分類(タクソノミーで作成)しました。

    やりたいことは以下の通りです。
    ・複数のカスタム分類に合致する(例えば、正社員and東京都など)求人情報をアーカイブ形式で表示したい。

    これに対し、自分でやってみたことは以下の通りです。
    ・目的のページのURLに’post_type=job’を付加し、archive_job.phpを呼び出し、このループをコードを変更してしてカスタム分類に合致するPOSTの抜粋だけ表示

    しかし、以下の問題点がありました。
    ・(当たり前の話ですが)WordPress自体は’job’の投稿を全て持って来ているのでページング処理がちゃんとできません。
    ・具体的には、カスタム投稿タイプjobのデータが15件あっても、指定したカスタム分類に合致するものがなければ表示される求人情報は0件ですが、ページングは2ページあると表示されます。(ページングにはWP-PageNaviを使用しています。)

    で、自分で考えた解決法は以下です。
    ・archive.phpの先頭でカスタム分類に合致するデータを取得しなおす。

    ここで質問ですが、
    ・WordPressがarchive.phpを表示するタイミングで自動でデータを取得+自分でデータを取得と2回のデータ取得となってしまうのでしょうか?(処理速度を気にしています。)
    ・もし、2回のデータ取得となってしまうならば、このような画面は固定ページで作成するべきなのでしょうか?

    長くなってしまいましたが、ご回答頂ければ幸いです。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • モデレーター jim912

    (@jim912)

    ・WordPressがarchive.phpを表示するタイミングで自動でデータを取得+自分でデータを取得と2回のデータ取得となってしまうのでしょうか?(処理速度を気にしています。)

    なります。ただし、お考えになっているほど大きな差ではないと思います。

    ・もし、2回のデータ取得となってしまうならば、このような画面は固定ページで作成するべきなのでしょうか?

    固定ページで作成した場合でも、固定ページで本来表示すべきデータを取得済みであるため、それでパフォーマンスが改善されるわけではありません。

    一度で済ませたいのであれば、pre_get_posts フックにて、カスタム投稿タイプのアーカイブ表示時にカスタム分類の条件を追加することで実現可能です。

    トピック投稿者 shoui

    (@shoui)

    jim912さん
    ご回答ありがとうございます。

    なります。ただし、お考えになっているほど大きな差ではないと思います。

    確かにそうですね。試しにやってみたのですが、差は分かりませんでした。(というよりボトルネックは他にあるようでした。

    固定ページで作成した場合でも、固定ページで本来表示すべきデータを取得済みであるため、それでパフォーマンスが改善されるわけではありません。

    なるほど。そうなんですね。
    不要なデータを取得するのはちょっと気が引けますが、フックを利用してコードを複雑にするリスクを考えると、データ2回取得を選択する方法でやってみようと思います。

    トピック投稿者 shoui

    (@shoui)

    解決済にします。ご回答ありがとうございました。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「複数条件に合致するアーカイブページの作成について」には新たに返信することはできません。