いつもお世話になっております。
wordpressの taxonomy.php ページで
(1)
日付が新しい順/古い順/カスタムフィールドの値順に並び替える
(2)
taxonomy.phpでは、特定のpost_typeのエントリーのみを一覧に出す。
という仕組みを作りたいです。
(1)は
function
1 function add_meta_query_vars( $public_query_vars ) { 2 $public_query_vars[] = 'meta_key'; //カスタムフィールドのキー 3 $public_query_vars[] = 'meta_value'; //カスタムフィールドの値(文字列) 4 return $public_query_vars; 5} 6add_filter( 'query_vars', 'add_meta_query_vars' );
taxonomy
1 <li><a href="<?php echo add_query_arg( array('sort' => 'date', 'order' => 'DESC') ); ?>">▲ 投稿が新しい順</a></li> 2 <li><a href="<?php echo add_query_arg( array('sort' => 'date', 'order' => 'ASC') ); ?>">▼ 投稿が古い順</a></li> 3 <li><a href="<?php echo add_query_arg( array('meta_key' => 'price', 'orderby' => 'meta_value_num', 'order' => 'DESC'), get_pagenum_link(1) ); ?>">価格高い順</a></li>
で、ループが
taxonomy
1<?php if (have_posts()): while (have_posts()) : the_post(); ?>
であれば動作しました。
しかし、(2)を実装するために
taxonomy
1<?php if (have_posts()): while (have_posts()) : the_post(); ?>
を
taxonomy
1 <?php 2 $args = array( 3 'post_type' => array('posttype') 4 ); ?> 5 <?php query_posts( $args ); ?> 6 <?php if (have_posts()) : ?> 7 <?php while (have_posts()) : the_post(); /* ループ開始 */ ?>
にすると、(1)で設定した並び替えができなくなってしまいます。
(1)と(2)を同時にtaxonomy.phpで動作するようにするためには
どのように記述するとよいものでしょうか。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/13 10:54