以前「記事を書くためのユーザーを複数設定して、そのユーザーが特定のカテゴリに投稿した記事をトップページに表示させたいのですが、投稿順にひとりのユーザーの記事がたくさん表示されるのではなく、各ユーザーの投稿がいくつあっても最新のものだけを表示させたい」という質問をさせていただき、回答していただいて、試行錯誤しています。
以下のプログラムだと、各ユーザーの投稿が一つ表示されるのですが、複数投稿あるユーザーが無視され、記事数がひとつだけのユーザーの投稿が表示されます。
php
1functions.phpに以下 2<?php 3add_filter( 'posts_groupby', function ( $groupby ) { 4 if(is_front_page()) { 5 global $wpdb; 6 return "{$wpdb->posts}.post_author"; 7 } 8} ); 9?> 10 11 12index.phpに以下 13<?php 14 $my_query = new WP_Query( array( 15 'post_type' => 'post', 16 'cat' => categoryname, 17 'posts_per_page' => '4' 18 )); 19 if( $my_query->have_posts() ) : 20 ?> 21 <div> 22 <h3>WORDPRESS</h3> 23 <ul> 24 <?php while( $my_query->have_posts() ) : $my_query->the_post(); ?> 25 <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> 26 <?php endwhile; ?> 27 </ul> 28 </div> 29 <?php else : ?> 30 no posts! 31 <?php endif; ?> 32 33 34
例
ユーザーA・B・C・Dが複数投稿していたとして
11.01 ユーザーAの投稿
10.30 ユーザーCの投稿
10.29 ユーザーAの投稿
10.29 ユーザーBの投稿
10.28 ユーザーAの投稿
10.28 ユーザーDの投稿
10.25 ユーザーBの投稿
10.20 ユーザーDの投稿
だとすると、
11.01 ユーザーAの投稿
10.30 ユーザーCの投稿
10.29 ユーザーBの投稿
10.28 ユーザーDの投稿
と表示したいのですが、
上記では
10.30 ユーザーCの投稿
10.28 ユーザーAの投稿
10.25 ユーザーBの投稿
10.20 ユーザーDの投稿
のように古い記事のみが表示されてしまいます。
php
1functions.phpに以下 2<?php 3add_filter( 'posts_groupby', function ( $groupby ) { 4 if(is_front_page()) { 5 global $wpdb; 6 return "{$wpdb->posts}.post_author"; 7 } 8} ); 9?> 10
index.phpは特に問題がないと思うので、functions.phpのfilterが違うのかと思い思案しております。
投稿者の新しい投稿、という条件式の指定方法などあるのでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/22 14:05
2019/01/22 17:19
2019/01/22 23:40