Блог Андрея Юрченко

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

Страница с комментариями на сайте WordPress

Привет! Сегодня хочу поделиться одной полезной штучкой, а именно как на WordPress сделать отдельную страницу со всеми комментариями вашего сайта. Если Вам это интересно и нужно, тогда читайте дальше и у вас все получится.

В одной из своих статей я уже рассказывал про то, как можно в сайтбаре вывести Топ комментаторов без плагина. Подобным образом можно вывести в сайтбаре популярные записи, а как это сделать конкретно можете почитать в статье «WordPress популярные записи с миниатюрами». Сегодня же мы сделаем так, чтобы комментарии нашего сайта были расположены на отдельной странице.

комментарии на сайт, комментарии wordpress

Мы создадим страницу, на которой пользователь сможет самостоятельно выбирать сколько комментариев отображать на странице и все последние комментарии будут располагаться в верху страницы. На мой взгляд такое решение улучшит дизайн и внутреннюю структуру сайта, да и поведенческие факторы не останутся в стороне.

Так же можно вывести список последних комментарии практчески в любом месте сайта  Об этом и ногом другом интересном и нужном для наших комментарий я писал в своей статье здесь . Ну хватит слов, давайте уже ближе к делу.

Шаблон страницы с комментариями

Прежде всего нам нужно создать шаблон страницы, на которой будут выводиться комментарии. Создадим мы его из уже имеющегося шаблона, для этого создайте новый файл и назовите его, к примеру compage.php и загрузите его на сервер. Далее файл в редакторе и скопируйте в него весь код из файла page.php или файла sidebar.php если вы хотите чтобы сайтбар тоже отображался на вашей странице.

В самом верху кода нужно добавить или изменить название шаблона на свой:

<?php
/**
* Template Name: Compage
*/
?>

Дальше вам нужно найти приблизительно такие строчки в коде (все зависит от шаблона):

<?php the_post(); get_template_part('loop', 'page');?>
или
<?php get_template_part('loop', 'page'); ?>

Эти строки обычно отвечают за вывод записей на экран. Удалите эту строку(и) и вместо них нам нужно вставить вызов функции вывода комментариев на страницу следующим кодом:

<h2>Последние комментарии на сайте:</h2>
Выводить <a href='http://Мой сайт.ru/comment?number=10'>10</a>,
<a href='http://Мой сайт.ru/comment?number=30'>30</a>,
<a href='http://Мой сайт.ru/comment?number=50'>50</a>,
<a href='http://Мой сайт.ru/comment?number=100'>100</a>,
<a href='http://Мой сайт.ru/comment?number=200'>200</a> комментариев на странице.
<?php
if (isset($_GET['number'])) { $number=$_GET['number'];}else{ $number = 25;}
page_comments($number, 1000,'',1,50);
?>

Вместо «Мой сайт.ru» вставьте адрес своего сайта. Теперь код вашего шаблона compage.php будет выглядеть примерно так:

комментарии на сайт, комментарии wordpress

Сохраняем все изменения и наш шаблон готов. Далее нам нужно создать новую страницу на сайте и подключить к ней созданный шаблон. Для этого в админ панели своего сайта создайте новую страницу «Страницы —> Добавить новую» и называем ее, к примеру «Комментарии на сайте» и публикуем.

После заходим в свойства страницы, назначаем ей наш шаблон «compage», в постоянной ссылке пишем comment и производим остальные настройки на свой вкус. У вас должны быть настроены постоянные ссылки как произвольные. Если у вас этого еще не сделано, то обязательно измените настройки и в окне впишите /%category%/%postname%.

Все, наша страница готова и нам осталось прописать код функции, которая будет выводить комментарии на нашу страницу. Для этого откройте файл functions.php и в самом конце кода вставьте следующий код:

function page_comments($limit=10, $ex=45, $cat=0, $echo=1, $gravatar=''){
 global $wpdb;
 if($cat){
 $IN = (strpos($cat,'-')===false)?"IN ($cat)":"NOT IN (".str_replace('-','',$cat).")";
 $join = "LEFT JOIN $wpdb->term_relationships rel ON (p.ID = rel.object_id) LEFT JOIN $wpdb->term_taxonomy tax ON (rel.term_taxonomy_id = tax.term_taxonomy_id)";
 $and = "AND tax.taxonomy = 'category' AND tax.term_id $IN";
 }
 $sql = "SELECT comment_ID, comment_post_ID, comment_content, post_title, guid, comment_author, comment_author_email FROM $wpdb->comments com LEFT JOIN $wpdb->posts p ON (com.comment_post_ID = p.ID) {$join}
 WHERE comment_approved = '1' AND comment_type = '' {$and} ORDER BY comment_date DESC LIMIT $limit";

$results = $wpdb->get_results($sql);

$out = '<div id="comments"><ol>';
 foreach ($results as $comment){
 if($gravatar) $grava = get_avatar( $comment, 50 );
 $comtext = strip_tags($comment->comment_content);
 $leight = (int) iconv_strlen( $comtext, 'utf-8' );
 if($leight > $ex) $comtext =  iconv_substr($comtext,0,$ex, 'UTF-8').' …';
 if(strip_tags($comment->comment_author) == 'Артем Петрусенко'){
 $autor = " <cite style='color:red;' class='fn'> ".strip_tags($comment->comment_author)."</cite> ответил на вопрос в статье";
 }else{
 $autor = " <cite class='fn'>".strip_tags($comment->comment_author)."</cite>  прокомментировал(а) статью";
 }
 $out .= "
 <li class='comment'>
 <div  class='comment-body'>
 $grava
 <div class='comment-wrapper'>
 <div class='comment-meta' style='margin-bottom:5px;'>
 $autor <a style='font-size:14px;line-height: 0.5;' href='". get_comment_link($comment->comment_ID) ."'>{$comment->post_title}</a>
 </div>
 <div class='hentry-content'>
 {$comtext}
 </div>
 </div>
 </div>
 </li>
 ";
 } $out .= "</ol></div>";

if ($echo) echo $out;
 else return $out;
 }

Сохраните изменения и теперь можно перейти на нашу страницу и видеть на ней комментарии приблизительно вот так:

комментарии на сайт,комментарии wordpress

На этом все. Надеюсь статья была вам полезна и Вы теперь с легкостью сможете создать страницу с комментариями на своем сайте. Будут вопросы или что-то не будет получаться, пишите в комментариях к статье, постараюсь помочь.

Как Вам статья? Не забудьте поделиться с друзьями в соц. сетях, понажимав на кнопочки ниже.

С уважением, Андрей Юрченко

Поделитесь статьей в социальных сетях!

Подпишись на RSS-рассылку и получай новые статьи на почту!

Введите свой e-mail:

МАГИЧЕСКИЙ ШАБЛОН ПОДПИСНОЙ СТРАНИЦЫ В ПОДАРОК, ЗАБИРАЙТЕ

Оставить комментарий:

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

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

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Комментарии Вконтакте:

Content Tab Three

Блог Андрея Юрченко © 2016

ВВЕРХ