0

基本的にはこの形式で月ごとの投稿を表示したい。このサイトを何時間もグーグル検索して検索しましたが、まさに私が望んでいた解決策が見つかりません。どんな助けでも大歓迎です。ありがとう!

私がHTMLでやろうとしていること -

<!--JUNE-->
<a href="#" class="trigger current">June 2013</a>
<div class="pane wdiv">
  <ul>
    <li>Post Title</li>
    <li>Post Title</li>
  </ul>

   <ul>
      <li>Post Title</li>
      <li>Post Title</li>
   </ul>

   <ul>
      <li>Post Title</li>
      <li>Post Title</li>
   </ul>

<div style="clear:both;"></div>
</div>

<!--May-->
<a href="#" class="trigger current">May 2013</a>
<div class="pane wdiv">
  <ul>
    <li>Post Title</li>
    <li>Post Title</li>
  </ul>

   <ul>
      <li>Post Title</li>
      <li>Post Title</li>
   </ul>

   <ul>
      <li>Post Title</li>
      <li>Post Title</li>
   </ul>

<div style="clear:both;"></div>
</div>

私が過去3時間試して遊んだことは運が悪かった-

<?php global $post;

$args = array( 'numberposts' => 5,);

$myposts = get_posts( $args );

foreach( $myposts as $post ) :  setup_postdata($post); ?>

<?php the_date('F Y','<a href="#" class="trigger current">','</a>'); ?> 

   <div class="pane wdiv">
      <ul>
         <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
      </ul>
      <div style="clear:both;"></div>
   </div>

<?php endforeach; ?>  

表示されているもの

<!--JUNE-->
<a href="#" class="trigger current">June 2013</a> 

   <div class="pane wdiv">
      <ul>
         <li>Test Post</li>
      </ul>
      <div style="clear:both;"></div>
   </div>

   <div class="pane wdiv">
      <ul>
         <li>Test Post2</li>
      </ul>
      <div style="clear:both;"></div>
   </div>

<!--May-->
<a href="#" class="trigger current">May 2013</a> 

   <div class="pane wdiv">
      <ul>
         <li>Awesome Video</li>
      </ul>
      <div style="clear:both;"></div>
   </div>


   <div class="pane wdiv">
      <ul>
         <li>Recommended Readings</li>
      </ul>
      <div style="clear:both;"></div>
   </div>


   <div class="pane wdiv">
      <ul>
         <li>Recommended Readings</li>
      </ul>
      <div style="clear:both;"></div>
   </div>
4

1 に答える 1

1

あなたが抱えている問題は、投稿をループしていて、各投稿の日付を取得しようとしていることです。代わりに、現在の月を検出する必要があります。私のループは次のようになります。

<?php
if (!empty($myposts)) :
global $post;
    $month = date( 'n', strtotime($myposts[0]->post_date) );
    ?>
    <a href="#" class="trigger current"><?php echo date('F Y', strtotime($myposts[0]->post_date)) ?>
    <div class="pane wdiv">
    <ul>
    <?php
    foreach ( $myposts as $post ) : 
        setup_postdata($post);
        if (get_the_time('n') !== $month) : ?>
        </ul>
        <div style="clear:both;"></div>
        </div>
        <a href="#" class="trigger current"><?php the_time('F Y') ?></a>
        <div class="pane wdiv">
        <ul>
        <?php endif; ?>
        <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
    <?php endforeach; ?>
    </ul>
    <div style="clear:both;"></div>
    </div>
<?php endif; ?>

以下のコメントに従って編集された応答を編集できるようになりました。

<?php
if (!empty($myposts)) :
    global $post;
    $month = date( 'n', strtotime($myposts[0]->post_date) );
    ?>
    <a href="#" class="trigger current"><?php echo date('F Y', strtotime($myposts[0]->post_date)) ?>
    <div class="pane wdiv">
    <ul>
    <?php
    foreach ( $myposts as $post ) : 
        setup_postdata($post);
        if (get_the_time('n') !== $month) : ?>
        </ul>
        <div style="clear:both;"></div>
        </div>
        <a href="#" class="trigger current"><?php the_time('F Y') ?></a>
        <div class="pane wdiv">
        <ul>
        <?php endif; ?>
        <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
        <?php 
        $month = get_the_time('n');
    endforeach; ?>
    </ul>
    <div style="clear:both;"></div>
    </div>
<?php endif; ?>
于 2013-08-08T19:54:49.437 に答える