特定のアーカイブページだけ逆順にしたい

  • このトピックは空です。
3件の返信スレッドを表示中
  • 投稿者
    投稿
    • #2330 返信
      ひの
      ゲスト

      お世話になります。

      現在、自動生成されるアーカイブページについて、「作品」のみ日付昇順になるようにして、見出し代わりにしています。

      function change_old( $query ) {
      if( $query->is_tax() ) {
      $query->set(‘order’, ‘ASC’);
      $query->set(‘orderby’, ‘date’ );
      }
      }
      add_action( ‘pre_get_posts’, ‘change_old’ );

      この方法では、すべての作品タイプが昇順になってしまいますが、イラストなど一部の作品タイプは降順で表示したいと考えています。
      調べてみても、特定のアーカイブページだけを日付降順にする方法が分かりません。
      Wordpressの仕様上そもそも不可能なのでしょうか。
      どなたかアドバイスいただけますと幸いです。

    • #2331 返信
      佐高
      ゲスト

      知識のない素人で申し訳ないのですが気になったので調べてみましたところ、二行目のis_taxのところを条件指定すればいけそうです。

      EASELは作品タイプのタクソノミーがcustom_cat、タームは個別のスラッグ名になっていると思います。
      そのため、たとえば作品タイプが小説(スラッグはtext)のアーカイブページはis_tax(‘custom_cat’, ‘text’)となるのかなと思います。

      それをひの様の書かれているコードに反映させると以下のようになります。

      function change_old( $query ) {
      if( $query->is_tax(‘custom_cat’, ‘text’) ) {
      $query->set(‘order’, ‘ASC’);
      $query->set(‘orderby’, ‘date’ );
      }
      }
      add_action( ‘pre_get_posts’, ‘change_old’ );

      他の作品タイプをご使用でしたら二行目のtextの部分を該当のスラッグに変更すれば大丈夫かと思います。

      自分のローカル環境で確かめてみたらこれで変更できたのですが、あまり自信はないので、まずテスト環境等で試してみていただけますと幸いです。

    • #2335 返信
      ひの
      ゲスト

      佐高様

      ご返信ありがとうございます。
      お教えいただいたコードに書き換えたところエラーが出てしまったのですが、佐高様はご変更できたとのことですので、試行錯誤してみようと思います。

    • #2336 返信
      佐高
      ゲスト

      もしかしたらフォーラムかブラウザの文字表示の関係で、そのままコピペするとシングルクオォーテーションがアポストロフィになってしまっているかもしれません。その場合は全てのアポストロフィをシングルクォーテーションに変更する必要があります。
      また、他のエラーの可能性としては、編集しているうちに意図しない空白や改行が入ってしまった、プラグインや他のプログラムとアクションフックの関数名が被ってしまったなどが考えられますので、そちらもご確認いただけましたら幸いです。

      無事にひの様がカスタマイズをできるように願っております。

3件の返信スレッドを表示中
返信先: 特定のアーカイブページだけ逆順にしたいで#2331に返信
あなたの情報: