Среда , 26 Июль 2017
Главная / Делаем блог / Вывод данных: комментарии и метки

Вывод данных: комментарии и метки

 Вывод данных комментарии и меткиПродолжаем с увлечением изучать возможности: наши, нашего блога, кодекса Вордпресс и функций php, о которых он повествует… В прошлой статье мы создали шаблон таблицы, состоящей из одной строки и нескольких ячеек. В этих ячейках мы планируем разместить данные о дате публикации, комментариях и метках каждой статьи. Функция вывода даты уже красуется в первой ячейке — теперь нужно заполнить еще две!

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

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

Вывести количество комментов к статье нам поможет функция comments_number:

<?php comments_number( $zero, $one, $more ); ?>

Самые непонятные непонятности написаны в скобочках. На самом же деле, это подсказки, как оформлять число комментариев в трех разных случаях:

  1. когда их нет
  2. когда коммент один
  3. когда комментов много

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

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

Конечно, вы можете написать в одинарных кавычках, что угодно. Русский язык создает некоторые сложности, когда нам нужно генерировать автоматические подписи. Ведь у нас 2-3-4 комментариЯ, но 5 и более комментариЕВ — я, вслед за многими и многими мэтрами, считаю, лучше написать сокращенно «коммент.», чем получить надпись «3 комментариев»…

В общем, заполняем еще одну ячейку в нашей таблице:

<table><tr>
<td>Дата:<?php the_time(' j F Y'); ?></td>
<td>Комментарии:<?php comments_number( 'пока нет', '1 коммент', '% коммент.' ); ?></td>
<td>Метки:</td>
</tr></table>

Функция вывода меток данной статьи

Наш читатель должен заранее видеть, какие метки мы присвоили той или иной публикации. Это поможет ему выбрать тот пост, который ему интересен, что снизит процент отказов, улучшит поведенческие факторы, позиции блога в выдаче… В общем, хорошо это!

Поэтому открываем соответствующую страницу кодекса Вордпресс и смотрим, как выглядит нужная нам php функция:

<?php the_tags(); ?>

Здесь ничего подписывать не нужно. По умолчанию метки выводятся через запятую. Поэтому просто заполняем третью ячейку нашей таблички:

<table><tr>
<td>Дата:<?php the_time(' j F Y'); ?></td>
<td>Комментарии:<?php comments_number( 'пока нет', '1 коммент', '% коммент.' ); ?></td>
<td>Метки:<?php the_tags(); ?></td>
</tr></table>

Еще полезные php функции

Вывод рубрик-категорий:

<?php the_category( ', ' ); ?>

Если вы хотите, чтобы отдельные рубрики (в том случае, если один пост относится сразу к нескольким рубрикам) разделяла не запятая, а черный круглый маркер — в скобках пишите ’ &bull; ’ . Получится так:

категория 1 • категория 2 • категория 3

Вывод имени автора:

<?php the_author(); ?>

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

Вывод количества просмотров:

<?php echo getPostViews(get_the_ID()); ?>

Этот код будет работать только в тех темах, где установлена функция подсчета просмотров. Слава Богу, такие темы — не редкость. Но вот в моем шаблоне такого кода не было. Пришлось его добавить и теперь старые статьи выглядят сИротами, ведь для них посчитаны единицы просмотров. Я долго металась, размышляя, что лучше:

  • показать реальное количество просмотров для новых публикаций, НО смириться с «бедностью» предыдущих постов?
  • или не компрометировать свои предыдущие статьи, НО и не похвастаться правдивым количеством просмотров постов, опубликованных после установки счетчика?

В конце концов я выбрала первый вариант. И, да, если у вас тоже нет нужной функции, то вот код, который нужно добавить на страницу functions.php:

function getPostViews($postID){
$count_key = 'post_views_count';
$count = get_post_meta($postID, $count_key, true);
if($count==''){
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, '0');
return "0 просмотров";
}
return $count.' просмотров';
}
function setPostViews($postID) {
$count_key = 'post_views_count';
$count = get_post_meta($postID, $count_key, true);
if($count==''){
$count = 0;
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, '0');
}else{
$count++;
update_post_meta($postID, $count_key, $count);
}
}

Вставляем на любое свободное место. Главное не разорвать код другой функции.

А на страницу single.php добавляем:

<?php setPostViews(get_the_ID()); ?>

Здесь, также, место добавления не принципиально.

Затравка на будущее

Надеюсь, я загрузила вас достаточным количеством информации. Завтра будем оформлять стиль таблицы и публиковать ее на блоге. Ура!

Один комментарий

  1. Вячеслав

    Реанимированные комменты

    Наталья:
    13.02.2013 в 12:18
    Катя, обращаюсь к тебе, потому что уверена, что ты знаешь ответ на этот вопрос ))
    Пыталась искать сама — пока не вышло. Скорее всего я неправильно формулирую запрос.
    Я хочу сделать так, чтобы при клике на название страницы (которые в верхнем меню, там где у тебя блог, об авторе и т.д.) я переходила на другой ресурс. То есть название страницы было ссылкой на самом деле. Видела, что такие вещи есть, а как сделать не знаю.
    Слезно прошу помощи )))

    katyaru:
    13.02.2013 в 12:34
    Внешний вид -> меню — слева есть поле «произвольные ссылки» — там вписывай любой УРЛ и любое название. Добавляй в меню и сохраняй — усё)

    Наталья:
    13.02.2013 в 12:50
    Боже мой, а я тут бьюсь второй день!
    Почему мне так поздно пришла в голову мысль спросить у тебя?!!
    У меня все получилось!
    Катя, я не очень люблю всякие там обнимания и тискания, но сейчас, будь ты рядом, точно бы тебя заобнимала от избытка чувств.
    СПАСИБО!

    katyaru:
    13.02.2013 в 12:51
    Ничего-ничего, хоть мы и суровые блоггеры — иногда можно и пообниматься))) Не за что! smile

    Николай:
    08.07.2013 в 21:54
    Статейка супер очень помогла. Но есть не большая ошибочка, Там где вы описывали «Вывод количества просмотров» после описания кода который нужно вставить functions.php. Вы даете функцию вывода на странице. Но она не рабочая . А вот которая в самом начале с ней все Ок. Спасибо.

    katyaru:
    08.07.2013 в 22:11
    Спасибо за коммент! Функция вывода это та, которая дана в начале, где echo getPostViews, а функция в конце «setPostViews» — отслеживает количество просмотров в отдельной записи. Как-то так)

    Николай:
    08.07.2013 в 22:22
    Точно нужно ставить две вместе у меня с одной функцией выводилось количество просмотра но счет не велся. А как поставил две сразу все заработало.

    katyaru:
    08.07.2013 в 22:26
    Вот! То есть, не зря я написала)))

    Денис:
    22.07.2013 в 19:09
    Много времени искал эту функцию. И вот наконец-то нашёл. Большое спасибо!

    katyaru:
    22.07.2013 в 19:14
    Пожалуйста! Рада помочь!

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

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

восемь − 7 =