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

Один из способов привлечения посетителей – вознаграждать их комментарии, демонстрируя их на своем веб-сайте. Кроме того, вы также можете добавить топ комментаторов, ссылаясь на их сайт в процессе. Здесь мы создадим специальный шаблон страницы для отображения этих комментариев и комментариев в одном месте..


Вкратце, этот урок научит вас, как:

  1. создать шаблон страницы,
  2. использовать SQL-запросы в вашем коде для получения комментариев с различными параметрами,
  3. создать раздел страницы, который будет доступен только для администратора,
  4. добавить поддержку плагина, связанного с комментариями.

Создание шаблона страницы

Самый простой способ создать шаблон страницы – открыть файл page.php в вашей теме, который будет выглядеть примерно так:

<?php get_header (); ?>

<?php if (have_posts ()): while (have_posts ()): the_post (); ?>

<?php the_title (); ?>

<?php the_content (); ?>

<?php comments_template (); ?>
<?PHP конец времени; ENDIF; ?>

<?php get_sidebar (); ?>
<?php get_footer (); ?>

Скопируйте и вставьте содержимое page.php и добавьте его в самый верх:

<?PHP
/ *
Название шаблона: центральный комментарий
* /
?>

И сохрани это. Нет реальных правил именования файла шаблона страницы, но было бы неплохо использовать префикс, чтобы сделать его узнаваемым, например, «pt-comment-central.php». Мы ничего не добавили в этот шаблон страницы, но он запущен и доступен для выбора в области записи новой страницы..

Получение комментариев

Для этого шаблона страницы мы представим четыре различных аспекта комментариев:

  • недавние комментарии,
  • Недавние трекбеки / пингбеки,
  • Лучшие комментаторы,
  • Самые комментируемые сообщения,

Во-первых, мы сделаем недавние комментарии:

недавние комментарии

    <?PHP
    $ max = 7; // номер элемента для получения
    глобальный $ wpdb;
    $ sql = "SELECT c. *, P.post_title ОТ $ wpdb->комментарии c INNER JOIN $ wpdb->посты p ON (c.comment_post_id = p.ID) WHERE comment_approved = ‘1’ И тип комментария не указан (‘trackback’, ‘pingback’) ORDER BY comment_date DESC LIMIT $ max";
    $ results = $ wpdb->get_results ($ SQL);

    $ template = ‘% g % на % пт«;

    $ echoed = 0;
    foreach ($ результаты в виде $ строки) {
    $ tags = array (‘% ct’, ‘% cd’, ‘% g’, ‘% pt’, ‘% pu’, ‘% au’, ‘% an’, ‘% cid’);
    $ replacements = array ($ row->comment_title, $ строка->COMMENT_DATE, get_avatar ($ строка->comment_author_email, ’32’ ), $ строка->POST_TITLE, тег get_permalink ($ строка->comment_post_ID), $ строка->comment_author_url, $ строка->comment_author, $ строка->comment_ID);
    эхо

  • ‘. str_replace ($ тэги, $ замены, $ шаблон). ‘
  • «;
    $ echoed = 1;
    }
    если ($ echoed == 0)
    эхо

  • Комментарий не найден.
  • «;
    ?>

В запросе SQL запрашиваются все утвержденные комментарии, отсортированные по дате (сначала самые последние). $ max – это то, где мы устанавливаем количество комментариев, чтобы получить 7 в нашем случае. Результатом кода выше будет неупорядоченный список последних комментариев:

Список последних комментариев

С небольшим CSS мы можем исправить это, чтобы выглядеть лучше:

# cc-latest-comments li {
ширина: 100%;
плыть налево;
list-style-type: нет;
}

# cc-latest-comments li img {
плыть налево;
margin-top: -5px;
}

Список последних комментариев с правильным CSS

$ template определяет, как будет написан фактический текст; это основано на формате, сделанном WP Comment Remix, и вы можете перейти по этой ссылке, чтобы узнать больше о ее настройке (ищите «токены»).

Далее это Последние Pingbacks / Trackbacks:

Последние Pingbacks / Trackbacks

    <?PHP
    $ sql = "SELECT c. *, P.post_title ОТ $ wpdb->комментарии c INNER JOIN $ wpdb->посты p ON (c.comment_post_id = p.ID) WHERE comment_approved = ‘1’ И тип комментария не указан (‘trackback’, ‘pingback’) ORDER BY comment_date DESC LIMIT $ max";
    $ results = $ wpdb->get_results ($ SQL);

    $ template = ‘% g % на % пт«;

    $ echoed = 0;
    foreach ($ результаты в виде $ строки) {
    $ tags = array (‘% ct’, ‘% cd’, ‘% g’, ‘% pt’, ‘% pu’, ‘% au’, ‘% an’, ‘% cid’);
    $ replacements = array ($ row->comment_title, $ строка->COMMENT_DATE, get_avatar ($ строка->comment_author_email, ’32’ ), $ строка->POST_TITLE, тег get_permalink ($ строка->comment_post_ID), $ строка->comment_author_url, $ строка->comment_author, $ строка->comment_ID);
    эхо

  • ‘. str_replace ($ тэги, $ замены, $ шаблон). ‘
  • «;
    $ Повторил = 1;
    }
    если ($ echoed == 0)
    эхо

  • Комментарий не найден.
  • «;
    ?>

Приведенный выше код очень похож на тот, который мы использовали для Недавних комментариев, единственное отличие состоит в том, что мы теперь просим комментировать с типом комментария в «pingback» / «trackback», и шаблон также немного отличается. Результат:

Список последних пингбэков и трекбэков

Вот код для Лучшие комментаторы:

Лучшие комментаторы

    <?PHP
    $ sql = "ВЫБЕРИТЕ comment_author, comment_author_url, comment_author_email, считать (comment_ID) как comment_count FROM $ wpdb->комментарии, ГДЕ comment_approved = ‘1’ И тип комментария не указан (‘trackback’, ‘pingback’)";
    $ results = $ wpdb->get_results ($ SQL);

    $ template = ‘% г% (% c комментариев) ‘;

    $ echoed = 0;
    foreach ($ результаты в виде $ строки) {
    $ tags = array (‘% g’, ‘% au’, ‘% an’, ‘% c’);
    $ replacements = array (get_avatar ($ row)->comment_author_email, ’32’ ), $ строка->comment_author_url, $ строка->comment_author, $ строка->COMMENT_COUNT);
    эхо

  • ‘. str_replace ($ тэги, $ замены, $ шаблон). ‘
  • «;
    $ echoed = 1;
    }
    если ($ echoed == 0)
    эхо

  • Комментатор не найден.
  • «;
    ?>

Ничего особенного. Заметьте, круто get_avatar () Функция, однако, которая даст вам Gravatar для тех, чей адрес электронной почты вы указали. В этом случае мы получаем изображение аватара, используя адрес электронной почты комментатора. С CSS, похожим на тот, который мы использовали для недавних комментариев, мы можем получить такой результат:

# cc-top-commenters li {
ширина: 100%;
плыть налево;
list-style-type: нет;
}

# cc-top-commenters li img {
плыть налево;
margin-top: -5px;
}

Список лучших комментаторов

Последний Самые комментируемые сообщения:

Самые комментируемые сообщения

    $ sql = "SELECT p. *, C.comment_count FROM $ wpdb->отправляет p INNER JOIN (ВЫБЕРИТЕ comment_post_id, count (comment_ID) как comment_count из $ wpdb->комментарии ГДЕ comment_approved = ‘1’ GROUP BY comment_post_id) c ON (c.comment_post_id = p.ID) ORDER BY c.comment_count DESC LIMIT $ max";
    $ results = $ wpdb->get_results ($ SQL);

    $ template = ‘% пт (% c комментариев) ‘;

    $ echoed = 0;
    foreach ($ результаты в виде $ строки) {
    $ tags = array (‘% pd’, ‘% pt’, ‘% pu’, ‘% c’);
    $ replacements = array ($ row->POST_DATE, $ строка->POST_TITLE, тег get_permalink ($ строка->ID), $ строка->COMMENT_COUNT);
    эхо

  • ‘. str_replace ($ тэги, $ замены, $ шаблон). ‘
  • «;
    $ echoed = 1;
    }
    если ($ echoed == 0)
    эхо

  • Комментатор не найден.
  • «;
    ?>

Список самых комментируемых постов

И это все. Далее мы добавим немного крутости, добавив некоторые вещи, которые может видеть только админ.

Информация только для администратора

Чтобы показать материал только для администраторов, мы можем использовать этот фрагмент кода из WPCandy:

<?PHP
глобальный $ user_ID;
если ($ user_ID):
if (current_user_can (‘level_10’)):
// здесь только админ.
ENDIF;
ENDIF; ?>

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

<?PHP
$ num_comm = wp_count_comments ();
?>
Всего комментариев: /wp-admin/edit-comments.php? “><?php echo $ num_comm->total_comments; ?>
Одобренный: /wp-admin/edit-comments.php?comment_status=approved “><?php echo $ num_comm->одобренный; ?>
Модерируемый: /wp-admin/edit-comments.php?comment_status=moderated “><?php echo $ num_comm->модерируется; ?>
Спам: /wp-admin/edit-comments.php?comment_status=spam “><?php echo $ num_comm->спам; ?>

Администратор

wp_count_comments () – это аккуратная функция, которая возвращает массив различных номеров статистики комментариев. Мы также добавляем ссылки в соответствующую область управления комментариями.

Добавление нескольких искр

И наконец, скажем, вы нашли классные плагины, связанные с комментариями, которые хотите включить в этот шаблон страницы. Вместо того, чтобы добавлять больше кодов, давайте просто добавим поддержку для этого. Для этого примера я пойду с Деятельность Sparks плагин, который может «отображать график в стиле« спарклайн »на боковой панели для обозначения активности сообщений и / или комментариев». Звучит здорово для меня.

Обычно файл плагина readme.txt научит вас, как добавить его в файлы вашей темы. В нашем случае код может быть таким:

<?PHP
if (function_exists (‘activitysparks’)) {
activitysparks (массив ( ‘набор данных’ =>, ‘Height_px’ = ‘Легенда’>100, ‘width_px’ =>600, ‘период’ =>30, ‘галочки’ =>24));
}
?>

Плагин ActivitySparks

function_exists () проверяет, доступна ли конкретная функция; в нашем случае – функция Activity Sparks, которая будет доступна, если плагин был загружен и активирован. Если это там, мы показываем график. Если нет, то наш шаблон страницы ничего не покажет (но все равно будет работать нормально, без ошибок).

Результат и пример

Пример этого шаблона страницы доступна здесь. Он использует коды, которые вы видите здесь, с небольшими изменениями, в основном, чтобы структура HTML соответствовала остальной части сайта. Весь код для этого шаблона страницы доступно в Pastebin.

Кредиты и дальнейшие чтения

  • Коды, используемые для отображения различных недавних и популярных комментариев, взяты из WP Comment Remix плагин. Взгляните на его код, чтобы узнать больше о том, что делать с комментариями, например, исключить комментарии администраторов из топ-комментариев или как учитывать только последние комментарии. Шаблон $, который мы используем для форматирования вывода, также можно узнать на этой странице..
  • Создание собственного шаблона страницы на кодексе WordPress.
  • Отображение учебника только для администратора на WPCandy.
  • Jeffrey Wilson Administrator
    Sorry! The Author has not filled his profile.
    follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map