我有点问题wp_get_archives
, 你可以试试我对这个问题的解决方案
function get_cpt_archives( $cpt, $echo = false ) {
global $wpdb;
$sql = $wpdb->prepare("SELECT * FROM $wpdb->posts WHERE post_type = %s AND post_status = \'publish\' GROUP BY YEAR(wp_posts.post_date), MONTH(wp_posts.post_date) ORDER BY wp_posts.post_date DESC", $cpt);
$results = $wpdb->get_results($sql);
if ( $results ){
$archive = array();
foreach ($results as $r){
$year = date(\'Y\', strtotime( $r->post_date ) );
$month = date(\'F\', strtotime( $r->post_date ) );
$month_num = date(\'m\', strtotime( $r->post_date ) );
$link = get_bloginfo(\'siteurl\') . \'/\' . $cpt . \'/\' . $year . \'/\' . $month_num;
$this_archive = array( \'month\' => $month, \'year\' => $year, \'link\' => $link );
array_push( $archive, $this_archive );
}
if( !$echo )
return $archive;
foreach( $archive as $a ){
echo \'<li><a href="\' . $a[\'link\'] . \'">\' . $a[\'month\'] . \' \' . $a[\'year\'] . \'</a></li>\';
}
}
return false;
}
将其放入函数中。主题的php。
然后在需要的地方调用此函数:
<?php get_cpt_archives(\'post_type\', true); ?>
\'post_type\'
- 将此更改为您的帖子类型名称。
第二个参数:
true
- 这是一个列表<li>
false
- 这是一个数组。