• 解決済 TOY_TOY

    (@blacksander)


    お世話になっております。

    現在ブログを構築中なのですが
    http://~blog/
    を表示したときの記事を一カ月分表示するにはどのようにしたらよいでしょうか?
    管理画面から1ページあたりの記事を30にしても、その月に30以上の投稿があると
    表示されなくなってしまいますし・・・
    なにかプラグインなどありますでしょうか?

    それに伴い、記事のフッターにバックナンバーを下記に記載したようなものを作成したいのですがwp-pagenaviでは、このような動きはできないのでしょうか?
    (1を押すと1か月前、2を押すと2か月前としたいです)
    |1|2|3|4|5|

    言葉足らずで申し訳ありませんが
    どなたかわかるかたがいらっしゃいましたら
    ご連絡お願いいたします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • 記事数については、ループの前で条件を指定します。
    例えば2010年9月すべての場合は、

    query_posts('&year=2010&monthnum=9&showposts=-1');

    showposts=-1 とすると管理画面で設定した記事数に関係なく
    すべての件数を指定することになりますよ。

    トピック投稿者 TOY_TOY

    (@blacksander)

    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();
    ?>

    ※全体のマークアップその他は、ご自身のサイトに合わせてアレンジしてください。

    トピック投稿者 TOY_TOY

    (@blacksander)

    kz様

    ご連絡が遅れて大変申し訳ありません!
    ありがとうございます!!

    想定通りの動きができました!!!
    ありがとうございます!!

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「記事の表示について」には新たに返信することはできません。