あと、「各記事のサイドメニュー」で使うなら、query_postsじゃなくてget_postsの方がいいかも
また、
「今表示している記事」を先頭に
ということですと、その記事の日付を動的に取得して変数に放り込むといった、PHPのカスタマイズが必要になりますが、心の準備はよろしいでしょうか??
参考:[解決済み] query_postsで期間を指定しての記事の表示
>mypacecreator様
早速のご返答ありがとうございます!
>件数指定を-1にすればOK!
query postsのページ、きちんと読んでいませんでした・・・
ありがとうございます。
「query_postsじゃなくてget_posts」の件も書いてありますね。
今のところquery_postsでも動いているのですが
リファレンスとにらめっこして書き直してみようと思います。
「今表示している記事」を先頭に
というのは難しそうですね・・・
できることならなんとかしたいのですが・・・
とりいそぎは直せるところから直していこうと思います。
お忙しいとは思いますが引き続きアドバイスを頂けるようでしたら、
どうぞよろしくお願い致します。
テーマフォルダの functions.php に以下をコピペ:
<?php
function my_posts_where( $where, $query ) {
global $wpdb, $post;
if ( 'DESC' == $query->query_vars['order'] )
$where .= $wpdb->prepare( " AND $wpdb->posts.post_date < %s", $post->post_date );
else
$where .= $wpdb->prepare( " AND $wpdb->posts.post_date > %s", $post->post_date );
return $where;
}
function my_get_posts( $args ) {
global $post;
$args = wp_parse_args( $args, array(
'suppress_filters' => false,
'tax_query' => array(
array(
'taxonomy' => 'category',
'terms' => wp_get_object_terms( $post->ID, 'category', array( 'fields' => 'ids' ) )
),
),
) );
add_filter( 'posts_where', 'my_posts_where', 10, 2 );
$posts = get_posts( $args );
remove_filter( 'posts_where', 'my_posts_where', 10, 2 );
return $posts;
}
?>
記事一覧を表示するところのコード例:
<?php
$ps = my_get_posts( 'order=ASC&posts_per_page=-1' ); // これでお求めの記事を取得
foreach ( $ps as $post ) {
setup_postdata( $post );
?><p><?php the_title(); the_time( ' Y.m.d. H.i.s' ) ?></p><?php
}
wp_reset_postdata();
?>
※コードを貼付ける時は複数の <?php
と ?>
が入れ子にならないように注意。
kz 様
ありがとうございます!
いただいたソースで動きました!!!!!
それにしても・・・PHPがわからず、だと全く手が出ない範囲なのがよくわかりました・・・
短時間の間に親切にも複雑な内容、コードを教えてくださるプログラマの皆様には脱帽です。
本当にありがとうございました。