2017-08-01 12 views
1

現在、ブログ記事、そのタイトル、おすすめ画像、日付、カテゴリを取得するためにワードプレスループを使用しています。それで、前の4つはページの前半で参照されているので、私はループをオフセットすることを試みています。WPオフセットがForeachループで動作しない

私は正常に投稿を相殺しましたが、カテゴリを取得できないようです。

<?php 
    $post_args = array(
       'post_type' => 'post', 
       'post_status' => 'publish', 
       'order'  => 'DESC', 
       'offset'  => 4 
       ); 
    $post_query = new WP_Query($post_args); 
    if ($post_query->have_posts()): 
    $count = 1; 
    $terms = get_terms(array(
        'taxonomy' => 'category', 
        'hide_empty' => true 
      )); 
    while ($post_query->have_posts()) : $post_query->the_post(); 
    $feat_img = wp_get_attachment_url(get_post_thumbnail_id()); 
?> 
<div class="col-sm-3 col-xs-6"> 
    <div class="featured-img" style="background-image: url(<?php echo $feat_img; ?>)" 
    <?php the_date('F j Y', '<h6>', '</h6>'); ?> 
    <h3><?php the_title(); ?></h3> 
    <div class="category"><?php echo $terms->name; ?></div> 
    </div> 
</div> 

私はわずかに異なるアプローチを試み、一方によって、ループ場合続くforeachループを使用して、各ポストのカテゴリを取得することができました。私はそれぞれの投稿カテゴリーをうまく得ていたが、オフセットは協力していなかった。おそらく私はそれを考えすぎている。これは私のもう一つの試みです。

<?php 
    $terms = get_terms(array(
     'taxonomy' => 'category', 
     'hide_empty' => true, 
    )); 
    $count = 1; 
    foreach ($terms as $term) : 
    $post_args = array(
     'offset' => 4, 
     'post_type' => 'post', 
     'order' => 'DESC', 
     'post_status' => 'publish', 
     'posts_per_page' => -1, 
     'tax_query' => array(
      array(
       'taxonomy' => 'category', 
       'field' => 'slug', 
       'terms' => $term->slug 
      ) 
     ), 
    ); 
    $post_query = null; 
    $post_query = new WP_Query($post_args); 
    if ($post_query->have_posts()) : 

    while ($post_query->have_posts()) : $post_query->the_post(); 
    $feat_img = wp_get_attachment_url(get_post_thumbnail_id()); 
?> 

両方のタスクを達成する手助けをしてもらえますか?どんな入力も非常に高く評価されます。前もって感謝します。

答えて

0
あなたが-1以外の何らかの値に "posts_per_page" を設定する必要が

は、それがドキュメントでも説明しています

https://codex.wordpress.org/Class_Reference/WP_Query

posts_per_page(INT) - 利用可能なページごとに表示するポストの数( バージョン2.1以降はshowpostsパラメータに置き換えられました)。すべての投稿を表示するには、 'posts_per_page' => - 1を使用してください( 'offset'パラメータは、-135で無視された です)。このパラメータを使用した後、ページ分割が である場合は、 'paged'パラメータを設定します。注:クエリがフィード内にある場合、 wordpressは、このパラメータを保存された 'posts_per_rss' オプションで上書きします。制限を再設定するには、 'post_limits'フィルタ、または フィルタ 'pre_option_posts_per_rss'を使用して-1を返してください。

関連する問題