BloGGood.ru

Блог Костаневича Степана

До Нового Года осталось:

Блог на разные темы, seo-оптимизация, раскрутка сайта, создание сайта, вкусные эффекты для сайта и многое другое…

Главная » Wordpress » Как лучше выводить комментарии в шаблоне WordPress?

Как лучше выводить комментарии в шаблоне WordPress?

2013-04-09 / Вр:19:54 / просмотров: 7521

Привет всем, кто читает мой блог. Хочу вам рассказать из жизненного опыта, как лучше выводить или создавать комментарий в существующей теме шаблона WordPress.
Теперь немного истории. Садитесь по удобней.
Я создаю шаблоны для CMS WordPress. Всегда выводил комментарий обычным мне методом, потому что это было быстро и без лишних файлов. Достаточно было поставить в файле шаблона single.php и page.php вот  такой код:

<?php comments_template();  ?>

комментарии выводились без проблем. Но тут я увидел в таком методе вывода комментариев маленький косяк, который вывел меня из равновесия и чувства удовлетворенности :?:.
Это фраза в комментариях:
6 комментариев на «“Как изменить интерьер квартиры без перестановок”».

Как создать комментарии в шаблоне WordPress?

Как убрать никому не нужные лишние кавычки («“ ….. ”»)?
Убираются эти лишние кавычки («“ ….. ”») обычным, легким методом, о котором я сейчас вам и расскажу.

Как убрать лишние кавычки в комментариях?

Если в теме WordPress нет файла «comments.php», тогда перетащите готовый файл «comments.php» с папки  «theme-compat» и перекиньте в шаблон темы.
Путь к файлу «comments.php»:  /wp-includes/theme-compat/ comments.php.
Путь к вашей теме шаблона:  /wp-content/themes/папка с темой шаблона.

Как убрать лишние кавычки в комментариях?

Теперь в теме шаблона появился файл "comments.php", в котором можно делать исправление, редактирование формы и вывода комментариев.
Исправляем ошибку.
найдите в коде строку 27, вот такой код:

<h3 id="comments"><?php printf( _n( 'One Response to %2$s', '%1$s Responses to %2$s', get_comments_number() ),
 number_format_i18n( get_comments_number() ), '&#8220;' . get_the_title() . '&#8221;' ); ?></h3>

Уберите с кода вот этих два символа:

&#8220;

Вуаля, кавычки исчезли.

Как создать комментарии в шаблоне WordPress?

Казалось бы - все, но нет, нашелся еще один косяк, это вывод в комментариях двоеточий – «:». После пару ударов головой об клавиатуру, я понял, что таким методом проблема не решится. Я принялся за поиск решений проблем.

Как создать комментарии в шаблоне WordPress?

Для решения этой проблемы откройте файл «functions.php» и допишите такой код:


/*комментарий*/

function mytheme_comment($comment, $args, $depth) {
 $GLOBALS['comment'] = $comment;
 extract($args, EXTR_SKIP);

if ( 'div' == $args['style'] ) {
 $tag = 'div';
 $add_below = 'comment';
 } else {
 $tag = 'li';
 $add_below = 'div-comment';
 }
?>
 <<?php echo $tag ?> <?php comment_class(empty( $args['has_children'] ) ? '' : 'parent') ?> id="comment-<?php comment_ID() ?>">
 <?php if ( 'div' != $args['style'] ) : ?>
 <div id="div-comment-<?php comment_ID() ?>" class="comment-body">
 <?php endif; ?>
 <div class="comment-author vcard">
 <?php if ($args['avatar_size'] != 0) echo get_avatar( $comment, $args['avatar_size'] ); ?>
 <?php printf(__('<cite class="fn">%s</cite> <span class="says">says:</span>'), get_comment_author_link()) ?>
 </div>
<?php if ($comment->comment_approved == '0') : ?>
 <em class="comment-awaiting-moderation"><?php _e('Your comment is awaiting moderation.') ?></em>
 <br />
<?php endif; ?>

<div class="comment-meta commentmetadata"><a href="<?php echo htmlspecialchars( get_comment_link( $comment->comment_ID ) ) ?>">
 <?php
 /* translators: 1: date, 2: time */
 printf( __('%1$s at %2$s'), get_comment_date(), get_comment_time()) ?></a><?php edit_comment_link(__('(Edit)'),' ','' );
 ?>
 </div>

<?php comment_text() ?>

<div class="reply">
 <?php comment_reply_link(array_merge( $args, array('add_below' => $add_below, 'depth' => $depth, 'max_depth' => $args['max_depth']))) ?>
 </div>
 <?php if ( 'div' != $args['style'] ) : ?>
 </div>
 <?php endif; ?>
<?php
 }

Удалите с кода:

<span class="says">says:</span>

Теперь  откройте файл "comments.php" и найдите этот код:


<ol class="commentlist">
 <?php wp_list_comments();?>
 </ol>

замените его на этот:


<ol>
<?php wp_list_comments('type=comment&callback=mytheme_comment');?>
</ol>

Вот и решена еще одна проблема.

Как увеличить размер аватара?

Раз уж мы установили этот код в файл «functions.php», тогда давайте еще выжмем с него одну возможность. Возможность указать параметры  увеличения и уменьшения размера аватара в комментариях.

Найдите в коде такие строчки:

<div class="comment-author vcard">
 <?php if ($args['avatar_size'] != 0) echo get_avatar( $comment, $args['avatar_size'] ); ?>
 <?php printf(__('<cite class="fn">%s</cite> <span class="says">says:</span>'), get_comment_author_link()) ?>
 </div>

и в строчке

<?php if ($args['avatar_size'] != 0) echo get_avatar( $comment, $args['avatar_size'] ); ?>

добавьте размер аватара 'avatar_size=80'.

<?php if ($args['avatar_size'] != 0) echo get_avatar( $comment, $args['avatar_size=80'] ); ?>

Естественно, я взял размер «80» только для примера, вы можете с размером смело экспериментировать.
Надеюсь, я вас не запутал. Даже если и запутал, всегда есть комментарий в конце поста, где вы можете задать мне вопрос ;-).

Как увеличить размер аватара обычным способом?

Если вы не делали всех действий, что я расписал вверху, и вас все устраивает, тогда сделайте такие действия:
Откройте файл «comments.php».
Найдите в коде список комментариев, который выводится функцией

<?php wp_list_comments();?>

К этой функции укажите число размера аватара.

wp_list_comments('avatar_size=80');

Вот и все. Если что не понятно, то вы знаете, где поле ввода комментариев. Если не знаете, то оно находится у меня снизу, в конце сайта. Задавайте вопросы, постараюсь ответить.

Понравился пост? Помоги другим узнать об этой статье, кликни на кнопку социальных сетей ↓↓↓

Получай обновления блога!!! Подпишись:

Популярные статьи:

18 Ответов на комментарий - Как лучше выводить комментарии в шаблоне WordPress?

  1. RomanZmeu

    Спасибо. пригодилось для моего блога

    Ответить

    Степан => автор блога

    Степан => автор блога отвечает:

    Пожалуйста

    Ответить

  2. aleksandr

    C некоторых пор на сайте в браузере выводятся битые аватары анонимных комментаторов, в админке отображаются правильно. В чем причина не подскажите?

    Ответить

    Степан => автор блога

    Степан => автор блога отвечает:

    К сожалению, Александр, я не знаю в чем причина, не сталкивался с таким. Мне очень интересно будет узнать, как вы решили эту проблему.

    Ответить

  3. aleksandr

    Проблема решена. Пришлось изменить код в файле functions.php отвечающий за вывод аватара по умолчанию (43 строка).
    Было –

    <?php echo get_avatar($comment,$size='32',$default='<path_to_url>' ); ?>

    стало –

    <?php echo get_avatar($comment,$size='32'); ?>

    К вам на блог я попал в поиске решения этой проблемы и видел что эта проблема стоит у многих.Кому то может пригодиться ;-)

    Ответить

    Степан => автор блога

    Степан => автор блога отвечает:

    Спасибо за комментарий!

    Ответить

  4. Юрий

    Спасибо, пригодилось. У меня тоже для анонимных комментаторов выводился пустой аватар. Я вставил такой код в файл comments.php:

    <?php echo get_avatar($comment,$comment_avatar_size); ?>

    Размер аватара у меня в стилях указан, поэтому конкретная цифра не понадобилась.

    Ответить

    Степан => автор блога

    Степан => автор блога отвечает:

    Спасибо, Юрий, за полезный комментарий!

    Ответить

  5. Сергей

    Приветствую Степан. Что то у меня никак не получается убрать это :: <?php printf(__('%s says:’), get_comment_author_link()) ?>

    Всё делаю как ты описал, но после изменения данного кода на этот

    то у меня просто не показываются комменты. Вот так выглядит у меня код в файле

    Ответить

    Степан => автор блога

    Степан => автор блога отвечает:

    Здравствуйте, Сергей! Напишите ваш код меду тегами , что бы я мог посмотреть! Сергей, Вы говорите, что все сделали как я написал, откуда тогда вы взяли этот код:

    <?php printf(__('%s says:’), get_comment_author_link()) ?>

    ?????????????

    Ответить

  6. Игорь

    Спасибо, весьма интересная статья

    Ответить

  7. Женя

    Здравствуйте! Как с этой строки вырезать вообще упоминание о title так чтоб осталось только (число) комментариев.

    <h3 id="comments"><?php printf( _n( 'One Response to %2$s', '%1$s Responses to %2$s', get_comments_number() ),
     number_format_i18n( get_comments_number() ), '“' . get_the_title() . '”' ); ?></h3>

    Ответить

    Степан => автор блога

    Степан => автор блога отвечает:

    Здравствуйте, Женя! Попробуйте удалить вот этот кусок кода “. get_the_title()” Он как раз отвечает за вывод title

    Ответить

    Женя отвечает:

    Степан, я об этом конечно же догадался! Но удаляя этот код и ковычки возникает ошибка! Видимо где нужно убрать лишнюю скобку. Я в синтаксисе не силен, поэтому методом перебора пробовал разные варианты, но все равно выдавало ошибку!

    Ответить

    Степан => автор блога

    Степан => автор блога отвечает:

    Женя, все работает. Даю готовый код:

    <h3 id="comments"><?php printf( _n( 'One Response to %2$s', '%1$s Responses to %2$s', get_comments_number() ),
     number_format_i18n( get_comments_number() ), '' . '' ); ?></h3>
    

    Женя, если Вам нужно вывести число комментариев, почему бы не воспользоваться вот такой функцией:

    <?php comments_number( 'нет комментов', '1 коммент', '% коммент.' ); ?>
    

    Если интересно, можете почитать тут.

    Ответить

  8. Elnaz

    You have a beautiful site

    Ответить

    Степан => автор блога

    Степан => автор блога отвечает:

    Thank!

    Ответить

  9. Игорь

    Спасибо

    Ответить

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

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

Чтобы добавить в комментарий код HTML, PHP, CSS, JavaScript, нужно сделать так: [code] ваш код [/code]

Subscribe without commenting

Метки: , ,

Мои цели на 2016 год:

1). Закончить тему «Bootstrap»

2). Закончить тему «Все про PHP и MySQL»

3). Довести количество статей до 600

4). Добиться стабильной посещаемости 2500 человек/сутки

5). Закончить все статьи, которые находятся в черновиках

6). Создать портфолио и мини интернет-магазин шаблонов

7). Создать книгу

8). Добиться стабильной посещаемости 3000 человек/сутки

9). Довести количество статей до 700

10). Увеличить число подписчиков до 250

Статистика по блогу

Количество записей на блоге: 671
Количество страниц на блоге: 20
Количество рубрик на блоге: 27
Количество меток на блоге: 71
Количество комментариев на блоге: 3683