👍 Научим бесплатно правильно создавать сайты на 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>
