WordPress — Вывод записей в виде календаря

Выводим архив рубрики с разбиением по месяцам.

В функции темы добавляем:

function raft_cat_archive($CATID) { 
	global $month, $wpdb; 
	$result = ''; 
	$args = array(
		'numberposts' => 0,
		'showposts' => 1000,
		'offset' => 0,
		'category' => $CATID,
		'orderby' => 'post_date',
		'order' => 'DESC',
		'include' => '',
		'exclude' => '',
		'meta_key' => '',
		'meta_value' => '',
		'post_type' => 'post',
		'post_mime_type' => '',
		'post_parent' => '',
		'post_status' => 'publish' );
	$posts_array = get_posts($args);
	if (is_array($posts_array)&&count($posts_array)>0) {
		foreach($posts_array as $vp) {
			$SQL.= " ID='$vp->ID' OR";
		}
	}
	$SQL=substr($SQL,0,strlen($SQL)-3);
	$SQLL="SELECT YEAR(post_date) AS 'Y', MONTH(post_date) AS 'M', ID, post_date, post_title, comment_status, guid, comment_count FROM wp_posts WHERE $SQL ORDER BY post_date DESC";
	$related_posts = $wpdb->get_results($SQLL);
	foreach ($related_posts as $post){
		$PST[$post->Y][$post->M][]=array($post->post_title,$post->ID);
	}
	$MON=array(
		'1'=>'Январь', 
		'2'=>'Февраль',
		'3'=>'Март',
		'4'=>'Апрель',
		'5'=>'Май',
		'6'=>'Июнь',
		'7'=>'Июль',
		'8'=>'Август',
		'9'=>'Сентябрь',
		'10'=>'Октябрь',
		'11'=>'Ноябрь',
		'12'=>'Декабрь');
	foreach ($PST as $YS=>$PL) {
		foreach ($PL as $MN=>$PM) {
			$DDD="".$MON[$MN]." $YS";
			foreach ($PM as $K=>$POS) {
				$url = get_permalink($POS[1]); 
				$arc_title = $POS[0]; 
				if ($arc_title) $text = strip_tags($arc_title); 
                                $dd = get_the_time('d.m.Y', $POS[1]);
				$result .= "<div class='archnews'><div class='archnewsd'>" .$dd."</div>\n"; 
				$result .= "<div class='archnewst'>| &nbsp; " .get_archives_link($url, $text, '')."</div><div class='clear'></div></div>\n"; 
			}
			$G="<div class='archnewslist'>$result</div><hr />";
			$result='';
			$li.="<div class='archnewsdate'>$DDD</div>$G";
		}
	}
	return "$li"; 
}

 

Выводим в теме вот так:

<?php echo raft_cat_archive(1); ?>

где 1 — ид рубрики

Запись опубликована в рубрике php, WordPress, Мои функции. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *