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

Автор:Дата:Вывод количества комметов и меток к записи улучшает юзабилити блога на Вордпресс, ведь посетитель сразу видит, насколько пост соответствует его ожиданиям

вывод меток и числа комментариевПродолжаем с увлечением изучать возможности: наши, нашего блога, кодекса Вордпресс и функций 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()); ?>

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

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

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

Оставайтесь на связи! Блоготей пришлет вам новые статьи на почту!
Введите свой E-MAIL:

     Katyaru 12.12.2012


    
Читайте БлоготеЙ! на Google+
Читайте БлоготеЙ! на Фейсбуке

К записи "Вывод данных: комментарии и метки" оставлено 20 коммент.

  1. Наталья:

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

    [Ответить]

  2. katyaru:

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

    [Ответить]

    Наталья отвечает:

    Боже мой, а я тут бьюсь второй день!
    Почему мне так поздно пришла в голову мысль спросить у тебя?!!

    У меня все получилось!
    Катя, я не очень люблю всякие там обнимания и тискания, но сейчас, будь ты рядом, точно бы тебя заобнимала от избытка чувств.
    СПАСИБО!

    [Ответить]

    katyaru отвечает:

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

    [Ответить]

  3. Николай:

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

    [Ответить]

    katyaru отвечает:

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

    [Ответить]

    Николай отвечает:

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

    [Ответить]

    katyaru отвечает:

    Вот! То есть, не зря я написала)))

    [Ответить]

  4. Денис:

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

    [Ответить]

    katyaru отвечает:

    Пожалуйста! Рада помочь!

    [Ответить]

  5. andrew87:

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

    [Ответить]

    Katyaru отвечает:

    Здравствуйте. На такие вопросы невозможно ответить однозначно. Руководствуйтесь своими ощущениями и логикой. Для меня, например, логично, посмотреть, какими метками снабжена статья, чтобы понять, о чем именно писал автор…

    [Ответить]

    andrew87 отвечает:

    @Katyaru, Здравствуйте. Я имею ввиду именно на главной их не выводить,а в статьях оставить, кажется что они только мешают видеть именно заголовки. Вот у вас все без меток на главной и без лишнего мусора.

    [Ответить]

    Katyaru отвечает:

    @andrew87, ну у меня на динамической главной /blog/ под каждым заголовком таблица с данными: время публикации, метки, количество комментов, рубрика… Так что — все есть. Просто оно в глаза не бросается))) А в статье метки выводятся под текстом.

    [Ответить]

    andrew87 отвечает:

    @Katyaru, Да, вижу, кстати с таблицей очень интересно смотрится)) Можно последний вопрос, если я уберу метки только на главной, ля поисковиков ничего не изменится в плане перелинковки, ведь метки и страницы с ними останутся как прежде?

    [Ответить]

    Katyaru отвечает:

    @andrew87, да сколько угодно спрашивайте! :) Нередко поисковики даже не любят метки, считая их «переспамом ключевыми словами». Т.е., теоретически, убрать их будет даже правильно. В моей практике был момент, когда удаление облака меток из сайдбара совпало с улучшением позиций сайта (не могу утверждать, что эти факты были связаны). Но… никаких гарантий нам никто не дает. Поэтому, если сайт имеет хорошие позиции в поиске — я бы подумала дважды, прежде чем менять что-то в его структуре. А если позиции и так не самые лучшие — смело экспериментируйте!

    [Ответить]

    andrew87 отвечает:

    @Katyaru,Да нет, позиции нормальные и я не хочу менять что-то для поисковиков, потому и спрашивал останется ли для них все также как было? Я ведь не закрывать от индексации буду, а уберу для посетителей? Облака меток нет, а на главной как у вас после каждого анонса идут, убрать думаю чтобы повысить количество просмотров на посетителя.

    [Ответить]

    Katyaru отвечает:

    @andrew87, что же за метки такие, которые могут уменьшать количество просмотров? Может, заново продумать саму систему меток?

    [Ответить]

    andrew87 отвечает:

    @Katyaru, ну может в некоторых тематиках тема статьи и так понятна из заголовка, а метки тогда как лишний мусор — заставляют себя прочитать не неся ничего нового читателю, а он смотрит. А может и наоборот быть, как по мне, он читает метки и решает не захоить на статью, а так зашел бы и посмотрел что за статья.
    А чем тогда объяснить что многие их убирают с анонсов?

    [Ответить]

    Katyaru отвечает:

    @andrew87, на мой взгляд, объяснить это можно только тем, что авторы видят, что их система меток несовершенна, но не хотят ее поменять) Действительно, это может быть затруднительно, если меток сотни.

    Вообще, возвращаясь к началу разговора, повторю, что стоит поступать так, как кажется логичным Вам. Для меня снабжать статьи и их анонсы метками — логичнее, чем не показывать их. Тогда зачем метки вообще? Для поисковиков? — Не уверена…

    [Ответить]


6 − = два

Палю тему!
Гугл в помощь
Надо подписаться!

Введите свой E-MAIL:

Delivered by FeedBurner

Дружите с Блоготеем в соцсетях


Смотрите все ВИДЕО Блоготея на YouTube


Blogotey | 


Спутник Блоготея в Tumblr

Наверх.