サポート » テーマ » taxonomy-タクソノミ−名.phpでカスタムフィールドの日付順に表示

  • 解決済 apple560

    (@apple560)


    taxonomy-タクソノミ−名.phpでカスタムフィールドの日付順に表示し、指定日が来たら非表示になるようにしたいとフォーラムを探していたら、以下の様なソースがありましたが
    参考ページ https://ja.forums.wordpress.org/topic/22997?replies=6
    こちらをtaxonomy-タクソノミ−名.phpに入れるとカスタム投稿タイプすべてが表示されてしまいます。

    <?php
    query_posts(
    	array(
    		'post_type'	=>'lunch',
    		'orderby'=> 'meta_value',
    		'meta_key'=>'lunch_info_day',
    		'order'=> 'ASC',
    		'showposts'=>'7',
    		'meta_compare'=> '>=',
    		'meta_value'=> date("Y-m-d"),
    		'meta_type' => 'DATE',
    	)
    );
    ?>

    taxonomy-タクソノミ−名.phpの各タームページで機能させるにはどうしたらよいのでしょうか?

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • function.phpに入れる方法で探しました。
    is_tax( )を使ってタクソノミーページで反映することが出来ました。
    今度は、特定のtermのliveとoaだけに反映させたいのでそれも追加してみました。
    なんとか出来たようです。

    function custom_infos_posts($query) {
        if ( is_admin() || ! $query->is_main_query() )
           return;
    
        $currnet_date = date_i18n( 'y/m/d' );
    
        if ( $query->is_tax('info_types',array('live','oa')) ) {
           $query->set( 'posts_per_page', -1 );
           $query->set( 'orderby', 'meta_value' );
           $query->set( 'meta_key', 'last_day' );
           $query->set( 'order', 'ASC' );
           $query->set('meta_query',
                                    array(
                                        array(
                                        'key' => 'last_day',
                                        'value' => $currnet_date,
                                        'compare' => '>=',
                                        'type' => 'DATE'
               )
             )
          );
       }
    }
    add_action( 'pre_get_posts', 'custom_infos_posts' );

    カスタム投稿タイプは infos
    タクソノミーは info_types
    タームは live とoa です

    custom_infos_posts のinfosがカスタム投稿名になっています。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「taxonomy-タクソノミ−名.phpでカスタムフィールドの日付順に表示」には新たに返信することはできません。