Как вывести последние комментарии в мультисайтовом блоге

👍 Научим бесплатно правильно создавать сайты на WordPress. Подробнее →

С выходом WordPress 3.X у блоггеров появилась возможность делать мультисайтовые блоги, в которых у каждого пользователя может быть собственный раздел, который можно сделать отдельным сайтом. Иногда требуется вывести не просто последние комментарии какого-то сайта, но и вообще все последние комментарии мультисайтового блога.

Для вывода последних комментариев со всех сайтов мультисайтового блога, не применяя плагинов, используйте приведенный ниже код:

function get_network_comments()
{
	global $wpdb;
	$number = 10; // количество выводимых комментариев
	$selects = array();
	foreach (wp_get_sites($args) as $blog)
		
		$selects[] = "(SELECT comment_post_ID, comment_author, comment_author_email, comment_date_gmt, comment_content, post_title, {$blog['blog_id']} as blog_id FROM {$wpdb->base_prefix}{$blog['blog_id']}_comments
		  LEFT JOIN {$wpdb->base_prefix}{$blog['blog_id']}_posts
		  ON comment_post_id = id
		  WHERE post_status = 'publish'
			AND post_password = ''
			AND comment_approved = '1'
			AND comment_type = ''
		   ORDER BY comment_date_gmt DESC LIMIT {$number})"; 
 
		$comments = $wpdb->get_results(implode(" UNION ALL ", $selects)." ORDER BY comment_date_gmt DESC", OBJECT);
 
		$count = 0;
		foreach((array)$comments as $comment):
		  $count++;
		  if($count == $number+1) break; 
		  ?>
		  <li>
			    comment_author_email, 32); ?>
				<span class="chatter-author">comment_author; ?></span> on 
			    <a class="blog-link">comment_post_ID); ?>" title="commented on post_title); ?>">
				comment_content); ?>
 
		  </li>
		<?php
	endforeach;
}

Этот код нужно вставить в файл functions.php. Ну а для того, чтобы вывести комментарии, нужно вставить в шаблон:

<ul>
	
</ul>
Создай свой первый сайт на WordPress

tiaurus

Автор n-wp.ru — блога о WordPress для новичков.

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