記事数については、ループの前で条件を指定します。
例えば2010年9月すべての場合は、
query_posts('&year=2010&monthnum=9&showposts=-1');
showposts=-1 とすると管理画面で設定した記事数に関係なく
すべての件数を指定することになりますよ。
sysbird様
ご連絡ありがとございます!
さっそく試したところできました!
ありがとございます!!
やはり
それに伴い、記事のフッターにバックナンバーを下記に記載したようなものを作成したいのですがwp-pagenaviでは、このような動きはできないのでしょうか?
(1を押すと1か月前、2を押すと2か月前としたいです)
|1|2|3|4|5|
は難しいのでしょうか?
index.php (ですよね?)を以下のように記述すればOK。
<?php
get_header();
global $wpdb;
$results = $wpdb->get_results( "
SELECT YEAR(post_date) AS year, MONTH(post_date) AS month
FROM $wpdb->posts
WHERE post_type = 'post' AND post_status = 'publish'
GROUP BY YEAR(post_date), MONTH(post_date)
ORDER BY post_date DESC
");
if ( isset( $_GET['myyear'] ) )
$myyear = $_GET['myyear'];
else {
if ( $results )
$myyear = $results[0]->year;
else
$myyear = gmdate('Y', current_time('timestamp'));
}
if ( isset( $_GET['mymonth'] ) )
$mymonth = $_GET['mymonth'];
else {
if ( $results )
$mymonth = $results[0]->month;
else
$mymonth = gmdate('m', current_time('timestamp'));
}
?><div id="container"><?php
$query = 'year=' . $myyear . '&monthnum=' . $mymonth . '&posts_per_page=-1';
query_posts( $query );
if ( have_posts() ) :
while( have_posts() ) :
the_post();
/* ここら辺はお好みで。 */
?><h2><?php the_title(); ?></h2><?php
?><div><?php the_time( 'Y-m-d' ); ?></div><?php
?><p><?php the_content(); ?></p><?php
endwhile;
endif;
wp_reset_query();
if ( $results ) :
?><div class="pages"><?php
$num = 1;
echo '|';
foreach ( (array) $results as $result ) {
if ( $myyear != $result->year || $mymonth != $result->month ) {
$page = '<a href="'
. home_url( '?myyear=' . $result->year . '&mymonth=' . $result->month )
.'">' . $num . '</a>';
}
else {
$page = $num;
}
echo $page . '|';
$num++;
}
?></div><?php
endif;
?></div><?php
get_sidebar();
get_footer();
?>
※全体のマークアップその他は、ご自身のサイトに合わせてアレンジしてください。
kz様
ご連絡が遅れて大変申し訳ありません!
ありがとうございます!!
想定通りの動きができました!!!
ありがとうございます!!