Як створити центральний шаблон для коментарів у 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 закінчення; ендіф; ?>

<?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 ВНУТРІШНЕ ПРИЄДНАННЯ $ wpdb->posts p ON (c.comment_post_id = p.ID) WHERE comment_approved = ‘1’ AND comment_type not in (‘trackback’, ‘pingback’) ЗАМОВИТИ за коментарем_das DESC LIMIT $ max";
    $ results = $ wpdb->get_resulta ($ sql);

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

    $ echoed = 0;
    foreach ($ результати як $ рядок) {
    $ tags = масив (‘% ct’, ‘% cd’, ‘% g’, ‘% pt’, ‘% pu’, ‘% au’, ‘% an’, ‘% cid’);
    $ заміни = масив ($ рядок->comment_title, $ рядок->comment_date, get_avatar ($ рядок->comment_author_email, ’32 ‘), $ рядок->post_title, get_permalink ($ рядок->comment_post_ID), $ рядок->comment_author_url, $ row->comment_author, $ рядок->коментар_ID);
    відлуння ‘

  • ‘. str_replace ($ теги, $ заміни, шаблон $). ‘
  • ‘;
    $ відлуння = 1;
    }
    if ($ echoed == 0)
    відлуння ‘

  • Коментарів не знайдено.
  • ‘;
    ?>

SQL-запит запитує всі затверджені коментарі, відсортовані за датою (останній перший). $ max – це те, коли ми встановлюємо кількість коментарів, 7 в нашому випадку. Вихідним кодом вище буде невпорядкований список останніх коментарів:

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

За допомогою невеликої кількості CSS ми можемо виправити це, щоб виглядати краще:

# cc-нещодавні коментарі li {
ширина: 100%;
поплавок: зліва;
список-стиль-тип: немає;
}

# cc-recent-comments li img {
поплавок: зліва;
margin-top: -5px;
}

Список останніх коментарів із належним CSS

$ template визначає, як буде записаний власне текст; це ґрунтується на форматі, зробленому WM Remix Remix, і ви можете перейти за цим посиланням, щоб дізнатися більше про його налаштування (шукайте “жетони”).

Далі є Останні пінгбеки / зворотні відгуки:

Останні пінгбеки / зворотні відгуки

    <?php
    $ sql = "SELECT c. *, P.post_title ВІД $ wpdb->коментарі c ВНУТРІШНЕ ПРИЄДНАННЯ $ wpdb->posts p ON (c.comment_post_id = p.ID) WHERE comment_approved = ‘1’ AND comment_type not in (‘trackback’, ‘pingback’) ЗАМОВИТИ за коментарем_das DESC LIMIT $ max";
    $ results = $ wpdb->get_resulta ($ sql);

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

    $ echoed = 0;
    foreach ($ результати як $ рядок) {
    $ tags = масив (‘% ct’, ‘% cd’, ‘% g’, ‘% pt’, ‘% pu’, ‘% au’, ‘% an’, ‘% cid’);
    $ заміни = масив ($ рядок->comment_title, $ рядок->comment_date, get_avatar ($ рядок->comment_author_email, ’32 ‘), $ рядок->post_title, get_permalink ($ рядок->comment_post_ID), $ рядок->comment_author_url, $ row->comment_author, $ рядок->коментар_ID);
    відлуння ‘

  • ‘. str_replace ($ теги, $ заміни, шаблон $). ‘
  • ‘;
    $ відлуння = 1;
    }
    if ($ echoed == 0)
    відлуння ‘

  • Коментарів не знайдено.
  • ‘;
    ?>

Код, наведений вище, дуже схожий на той, який ми маємо для Останніх коментарів. Єдині відмінності полягають у тому, що ми зараз просимо коментарі з “коментарем_типом” під “pingback” / “trackback”, і шаблон трохи інший. Результат:

Список останніх пінгбаків та зворотних зворотів

Ось код для Топ-коментатори:

Топ-коментатори

    <?php
    $ sql = "SELECT comment_author, comment_author_url, comment_author_email, count (comment_ID) як comment_count ВІД $ wpdb->коментарі ДЕ comment_approved = ‘1’ AND comment_type not in (‘trackback’, ‘pingback’) ГРУПА BY comment_author, comment_author_url, comment_author_email ЗАМОВИТИ BY comment_count DESC LIMIT $ max";
    $ results = $ wpdb->get_resulta ($ sql);

    $ template = ‘% g% an (% c коментарів) ‘;

    $ echoed = 0;
    foreach ($ результати як $ рядок) {
    $ tags = масив (‘% g’, ‘% au’, ‘% an’, ‘% c’);
    $ substituments = масив (get_avatar ($ рядок)->comment_author_email, ’32 ‘), $ рядок->comment_author_url, $ row->comment_author, $ рядок->comment_count);
    відлуння ‘

  • ‘. str_replace ($ теги, $ заміни, шаблон $). ‘
  • ‘;
    $ відлуння = 1;
    }
    if ($ echoed == 0)
    відлуння ‘

  • Не знайдено коментатора.
  • ‘;
    ?>

Нічого занадто вигадливого там. Зауважте прохолоду get_avatar () функція, яка дає вам Gravatar для кожного, чию електронну адресу ви вказали. У цьому випадку ми отримуємо зображення аватара за допомогою електронної адреси коментатора. Завдяки CSS, подібному до того, який ми маємо для останніх коментарів, ми можемо мати такий результат:

# cc-top-commenters li {
ширина: 100%;
поплавок: зліва;
список-стиль-тип: немає;
}

# cc-top-commenters li img {
поплавок: зліва;
margin-top: -5px;
}

Список найкращих коментаторів

Останнє є Більшість коментованих дописів:

Більшість коментованих дописів

    $ sql = "ВИБІР стор. *, C.comment_count ВІД $ wpdb->posts p INNER JOIN (SELECT comment_post_id, count (comment_ID) як comment_count від $ wpdb->коментарі ДЕ comment_approved = ‘1’ ГРУПА BY comment_post_id) c ON (c.comment_post_id = p.ID) ЗАМОВИТИ ПО c.comment_count DESC ГРАНИЦА $ макс";
    $ results = $ wpdb->get_resulta ($ sql);

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

    $ echoed = 0;
    foreach ($ результати як $ рядок) {
    $ tags = масив (‘% pd’, ‘% pt’, ‘% pu’, ‘% c’);
    $ заміни = масив ($ рядок->post_date, $ рядок->post_title, get_permalink ($ рядок->Ідентифікатор), $ рядок->comment_count);
    відлуння ‘

  • ‘. str_replace ($ теги, $ заміни, шаблон $). ‘
  • ‘;
    $ відлуння = 1;
    }
    if ($ echoed == 0)
    відлуння ‘

  • Не знайдено коментатора.
  • ‘;
    ?>

Список найбільш коментованих публікацій

І це все. Далі ми додамо додаткову прохолоду, додавши деякі речі, які бачить лише адміністратор.

Інформація лише для адміністратора

Щоб показати матеріали лише для адміністраторів, ми можемо використовувати цей фрагмент коду від WPCandy:

<?php
глобальний $ user_ID;
якщо ($ user_ID):
якщо (current_user_can (‘level_10’)):
// Тут призначені лише адміністратори.
ендіф;
ендіф; ?>

Тепер на інформаційній панелі ми отримуємо швидкий огляд загальної кількості сайтів, затверджених, в очікуванні перегляду та коментарів щодо спаму. Давайте повторимо це для нашого шаблону сторінки для легшого доступу лише адміністратору:

<?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 () – акуратна функція, яка повертає масив різних номерів статичних коментарів. Ми також додаємо посилання на відповідну область адміністрування коментарів.

Додавання деяких іскор

Нарешті, скажімо, ви знайдете цікаві додатки, пов’язані з коментарями, які ви хочете включити до цього шаблону сторінки. Замість того, щоб додавати більше кодів, давайте просто додамо підтримку. Для цього прикладу я піду Діяльність іскри плагін, який може “відображати графік стилю” блиск “на бічній панелі, вказувати на публікацію та / або коментар. »Мені звучить чудово.

Зазвичай файл readme.txt плагіну навчить вас додавати його у свої теми тем. У нашому випадку код може бути таким:

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

Плагін ActivitySparks

function_exists () перевіряє наявність певної функції; у нашому випадку функція Sparks функція, яка буде доступна, якщо плагін буде завантажено та активовано. Якщо він є, ми показуємо графік. Якщо ні, то наш Шаблон сторінки нічого не покаже (але він все одно буде працювати нормально, помилок немає).

Результат та приклад

Прикладом цього шаблону сторінок є доступні тут. Він використовує коди, які ви бачите тут, з кількома модифікаціями, здебільшого, щоб підтримувати структуру HTML узгодженою з рештою веб-сайту. Весь код для цього шаблону сторінки доступний на Pastebin.

Кредити та подальші читання

  • Коди, які використовуються для відображення різних останніх та найвищих коментарів, взяті з WM Remix Remix підключати. Погляньте на його код, щоб дізнатися більше про те, що стосується коментарів, як, наприклад, виключення адміністраторських коментарів від топ-коментаторів або як врахувати лише останні коментарі. Шаблон $, який ми використовуємо для форматування результатів, також можна дізнатися на цій сторінці.
  • Створення власного шаблону сторінки на WordPress Codex.
  • Відображення вмісту, призначеного лише для адміністратора на WPCandy.
  • Jeffrey Wilson Administrator
    Sorry! The Author has not filled his profile.
    follow me