如何创建自定义函数以按年获取WordPress档案?

时间:2017-04-04 08:11:21

标签: php wordpress

嗨,我知道WP的人有办法通过调用wp_get_archives()来获取档案年份

但是这种方法会获得一个存档年份列表,点击它会重定向到年度的所有帖子

我想创建一个自定义函数,只是为了得到我点击它的年份列表,它会调用第二个查询来获取月份和后期计数。

例子。点击这一年后,我可以在一年中获得所有可用的帖子以及每个月的帖子数。

任何人都请帮助我们解决这个问题。感谢

1 个答案:

答案 0 :(得分:0)

您可以尝试使用wp_get_archives(),然后循环使用以下内容:

$args = array('echo' => false, 'type' => 'yearly');
$archives = wp_get_archives($args);

foreach($archives as $archive){
     // CODE FOR EACH YEAR ARCHIVE
}

我不完全确定你要做什么。

上面的答案无论如何都不好,因为wp_get_archives()只返回一个我们无法循环的字符串。

这是一个非常棘手的问题,因为似乎没有本地方法来执行此操作,请参阅下面的代码,该代码可以帮助您:

<?php

      $months = array();
      for ($m=1; $m<=12; $m++) {
          $month = date('F', mktime(0,0,0,$m, 1, date('Y')));
          $months[$m] = $month;
      }

      $earliest_year = 2016;
      $current_year = date('Y');
      $years = range($earliest_year, $current_year);

      foreach ($years as $year){

          echo '<h1>' . $year . '</h1>';

          foreach ($months as $monthnum => $month){

              $args = array(
                'year' => $year,
                'monthnum' => $monthnum
              );
              $posts = get_posts($args);

              if($posts){
                echo '<h2>' . $month . '(' . count($posts) . ')</h2>';
              }
              foreach($posts as $post){
                  if($post){
                      $post_id = $post->ID;
                      echo '<a href="' . get_the_permalink() . '">' . get_the_title() . '</a><br>';
                  } //END if($post)

              } //END foreach($posts as $post)
          } //END foreach ($months as $monthnum => $month)
      } //END foreach ($years as $year)

?>

请告诉我这是否有帮助,或者如果您有任何疑问。