• 解決済 gcr005

    (@gcr005)


    お世話になります。
    質問させていただきます。

    やりたいことは、
    ある期間内限定で、
    2種類のカスタム投稿タイプの中で
    投票数(ratings)が多い順で
    ランキング表示ページを作りたいのです。

    1種類のカスタム投稿タイプの中では、

    <?php function filter_where($where = ”) {
    $where .= ” AND post_date >= ‘” . date(‘Y-m-d’, strtotime(‘2012-12-15’)) . “‘” . ” AND post_date <= ‘” . date(‘Y-m-d’, strtotime(‘2013-01-15’)) . “‘”;
    return $where;
    }
    add_filter(‘posts_where’, ‘filter_where’);
    query_posts(“posts_per_page=10&term=hoge term&post_type=hogepost&taxonomy= hogetax&meta_key=ratings_users&orderby=meta_value_num&order=DESC”); ?>

    <?php if(have_posts()):while(have_posts()):the_post(); ?>

    <!–ループ部分–>
    “><?php echo wp_get_attachment_image(get_post_meta($post->ID,”画像”,true),’thumbnail’); ?>
    <!–ループ部分–>

    <?php endwhile; endif; ?>
    <?php wp_reset_query(); ?>

    で思った通り稼働していますが、

    <?php function filter_where($where = ”) {
    $where .= ” AND post_date >= ‘” . date(‘Y-m-d’, strtotime(‘2012-12-15’)) . “‘” . ” AND post_date <= ‘” . date(‘Y-m-d’, strtotime(‘2013-01-15’)) . “‘”;
    return $where;
    }
    add_filter(‘posts_where’, ‘filter_where’);

    query_posts(
    array(
    array(
    “posts_per_page=10&term=hogeterm&post_type=hogepost&taxonomy= hogetax&meta_key=ratings_users&orderby=meta_value_num&order=DESC”
    ),

    array(
    “posts_per_page=10&term=hogeterm2&post_type=hogepost2&taxonomy= hogetax2&meta_key=ratings_users&orderby=meta_value_num&order=DESC”
    ),
    ‘relation’=>’AND’
    )
    );
    ?>

    <?php if(have_posts()):while(have_posts()):the_post(); ?>

    <!–ループ部分–>
    “><?php echo wp_get_attachment_image(get_post_meta($post->ID,”画像”,true),’thumbnail’); ?>
    <!–ループ部分–>

    <?php endwhile; endif; ?>
    <?php wp_reset_query(); ?>

    だと上手く稼働しません。

    どなたか教えて頂けないでしょうか?
    よろしくお願い致します。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • pluto1234

    (@pluto1234)

    未確認です。

    add_filter('posts_where', 'filter_where');
    $args = array (
      'post_type' => array('hogepost','hogepost2'),
      'tax_query' => array(
        'relation' => 'OR',
        array(
          'taxonomy' => 'hogetax',
          'terms'    => 'hogeterm',
          'field'    => 'slug',
          'operator' => 'IN'
        ),
        array(
          'taxonomy' => 'hogetax2',
          'terms'    => 'hogeterm2',
          'field'    => 'slug',
          'operator' => 'IN'
        )
      ),
      'meta_key' => 'ratings_users',
      'orderby'  => 'meta_value_num',
      'order'    => 'DESC',
      'posts_per_page' => 10
    );
    query_posts( $args );
    remove_filter('posts_where', 'filter_where');

    トピック投稿者 gcr005

    (@gcr005)

    pluto1234さま

    出来ました!
    ありがとうございます。

    返信遅れまして申し訳ありませんでした。

    いただいたコードそのままでいけました。
    (上の期間指定とループの間に挿入)

    <?php function filter_where($where = ”) {
    $where .= ” AND post_date >= ‘” . date(‘Y-m-d’, strtotime(‘2012-12-15’)) . “‘” . ” AND post_date <= ‘” . date(‘Y-m-d’, strtotime(‘2013-01-15’)) . “‘”;
    return $where;
    }
    add_filter(‘posts_where’, ‘filter_where’);
    $args = array (
    ‘post_type’ => array(‘hogepost’,’hogepost2′),
    ‘tax_query’ => array(
    ‘relation’ => ‘OR’,
    array(
    ‘taxonomy’ => ‘hogetax’,
    ‘terms’ => ‘hogeterm’,
    ‘field’ => ‘slug’,
    ‘operator’ => ‘IN’
    ),
    array(
    ‘taxonomy’ => ‘hogetax2’,
    ‘terms’ => ‘hogeterm2’,
    ‘field’ => ‘slug’,
    ‘operator’ => ‘IN’
    )
    ),
    ‘meta_key’ => ‘ratings_users’,
    ‘orderby’ => ‘meta_value_num’,
    ‘order’ => ‘DESC’,
    ‘posts_per_page’ => 10
    );
    query_posts( $args );
    remove_filter(‘posts_where’, ‘filter_where’);
    ?>

    <?php if(have_posts()):while(have_posts()):the_post(); ?>

    <!–ループ部分–>
<?php echo wp_get_attachment_image(get_post_meta($post->ID,”画像”,true),’thumbnail’); ?>
<!–ループ部分–>
    <?php endwhile; endif; ?>
<?php wp_reset_query(); ?>

    また教えて頂いて本当にありがとうございました。
    またしても勉強不足、知識不足です。
    ご迷惑かけぬよう精進します。
    ありがとうございました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「複数カスタム投稿タイプで、期間を指定して表示したい」には新たに返信することはできません。