@maxfrie

Как вывести параметры из функции для шорткода?

Как сделать чтобы в шорткоде [blix] статью выводилсь по годам [blix year="2018"]
function get_blix_archive( $show_comment_count=0, $before='<h4>', $after='</h4>', $year=0, $post_type='post', $limit=100 ){

	global $month, $wpdb;
	$result = '';

	$AND_year = $year ? $wpdb->prepare(" AND YEAR(post_date) = %s", $year) : '';
	$LIMIT    = $limit ? $wpdb->prepare(" LIMIT %d", $limit) : '';

	$arcresults = $wpdb->get_results("SELECT DISTINCT YEAR(post_date) AS year, MONTH(post_date) AS month, count(ID) as posts FROM " . $wpdb->posts . " WHERE post_type='$post_type' $AND_year AND post_status='publish' GROUP BY YEAR(post_date), MONTH(post_date) ORDER BY post_date DESC");

	if( $arcresults ){
		foreach( $arcresults as $arcresult ){
			$url  = get_month_link( $arcresult->year, $arcresult->month );
			$text = sprintf('%s %d', $month[zeroise($arcresult->month,2)], $arcresult->year);
			$result .= get_archives_link($url, $text, '', $before, $after);

			$thismonth = zeroise( $arcresult->month, 2 );
			$thisyear = $arcresult->year;

				$arcresults2 = $wpdb->get_results("SELECT ID, post_date, post_title, comment_status, guid, comment_count FROM " . $wpdb->posts . " WHERE post_date LIKE '$thisyear-$thismonth-%' AND post_status='publish' AND post_type='$post_type' AND post_password='' ORDER BY post_date DESC $LIMIT");

			if( $arcresults2 ){
				$result .= "<ul class=\"postspermonth\">\n";
				foreach( $arcresults2 as $arcresult2 ){
					if( $arcresult2->post_date != '0000-00-00 00:00:00' ){
						$url       =  get_permalink($arcresult2->ID); //$arcresult2->guid;
						$arc_title = $arcresult2->post_title;

						if( $arc_title ) $text = strip_tags($arc_title);
						else $text = $arcresult2->ID;

						$result .= "<li>". get_archives_link($url, $text, '');
						if( $show_comment_count ){
							$cc = $arcresult2->comment_count;
							if( $arcresult2->comment_status == "open" OR $comments_count > 0) $result .= " ($cc)";
						}
						$result .= "</li>\n";
					}
				}
				$result .= "</ul>\n";
			}
		}
	}

	return $result;
}
add_shortcode( 'blix' , 'get_blix_archive' );
  • Вопрос задан
  • 37 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы