Стандартний додати коментар comment. Як вимкнути, видалити коментарі WordPress

Привіт всім читачам блогу сайт. У цій статті ми поговоримо про те, чому багато веб-майстрів хочуть прибрати позбутися коментарів своїх майданчиків, заборонивши відвідувачу висловлювати думку.

Зважаючи на те, що мій блог працює на движку вордпрес, я в цьому пості крок за кроком поясню, як прибрати коментарі з wordpress сайтів, через адміністративну панель майданчика.

Перш ніж ми приступимо до практичної частини цього уроку, давайте розповім трохи наукової інформації про роль коментарів у житті користувачів мережі.

Але як це зробити? Для таких цілей і були придумані на сайтах форми коментування, де будь-хто може закреслити кілька рядків свого ненаситного розуму.

Роль коментарів на сайті

Коментарі— це спеціально відведене місце під статтею, де відвідувач може написати будь-який текст про прочитаний матеріал, а також написати пропозиції чи побажання.

Ця функція є практично на всіх блогах, які підтримують мову сценаріїв. На моєму сайті ви можете побачити його внизу після цієї статті.

Двигун wordpress написаний саме цією мовою, тому коментування там присутнє автономно, якщо тільки ви не приберете його самостійно.

Найпростіший приклад, як це працює на всіх майданчиках. Допустимо ви прочитали цікаву статтю (докладно про те, як це робити читаємо) про всі способи лову риби взимку, але так як ви першокласний рибалка і знаєте ще пару нових методів не описаних у статті, тому ви хотіли б розповісти автору про них, а він відобразить їх у пості, який прочитають інші користувачі.

Але як це зробити? Безумовно можна пошукати на сайті контакти автора та написати йому листа на пошту. Мине час, поки він відповість, а потім розмістить їх у матеріалі. Ну, а якщо взагалі не прочитає?

Ось ту приходить на допомогу форма коментування. Залишаєте коментар і його відразу ж бачать користувачі та автор.

Але не все так добре, як описано вище. Зараз в інтернеті з'явилася дуже велика кількість злих та хитрих оптимізаторів, які просувають свої проекти за рахунок спамних коментарів на інших сайтах, а вся сіль у тому, що wordpress блоги піддаються цій атаці найбільше.

Особисто мені не дуже подобається, коли в адмін панелі проходять сотні коментарів на день з різною рекламою або не потрібною інформацією, яка на додачу не відповідає тематиці моїх статей.

Ну а якщо веб-майстр вирішив створити сайт-візитку, односторінник або сайт-рекламу. Що їм усім робити? Для того, щоб перетворити свій ресурс на статистичний вам знадобиться прибрати коментарі до постів. А ось як це зробити і йтиметься далі.

Як прибрати коментарі у wordpress

У движку Wordpress автоматично вбудована функція, що дає можливість залишати коментарі на сторінках та статтях.

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

Розглянемо два приклади, як це можна зробити:

1) Заходимо в консоль свого wordpress сайту і тиснемо на вкладку «Параметри» — «Обговорення» та прибираємо галочку «Дозволити залишати коментарі на нові статті».

Але так ви досягнете того, що до нових постів коментарі не зможуть залишати люди, а от у старих вони залишаться, тому дивимось другий спосіб.

2) Тут нам потрібно буде прибрати кілька команд у файлах index.php, single.phpі archive.php. Для цього заходимо у вкладку "Зовнішній вигляд" - "Редактор". І прибираємо з даних файлів, які я наголосив нижче, наведені рядки:

У файлі index.phpприбираємо рядок

У файлі archive.phpприбираємо рядок

3

Про те залишати коментарі на блозі можна говорити довго. Особисто моя думка у цій справі така, що без коментарів блог виходить якийсь неживий та нудний.

На цьому я закінчую статтю, залишається лише вислухати вашу думку на цю тему. Бувай!

Давненько я нічого не писав про WordPress. Тому сьогодні я поділюся з Вами тим, як можна вручну змінити форму коментування у ВордПресі. Думаю, що ці знання можуть стати в нагоді будь-якому блогеру-початківцю, адже форма коментування це, часом, єдиний засіб спілкування відвідувачів і автора. Не проходьте повз:)

Перед тим, як ми почнемо будь-які маніпуляції з кодом, хочу заздалегідь попередити, що ми будемо правити файли самого WordPress'a, а не файли теми. Так, це може бути здасться комусь небезпечним, комусь безглуздим, комусь просто не сподобається:) Але Я зробив це саме так і жодних проблем у мене не виникло. Раджу перед початком зробити бекап файлу, що редагується.
Щодо безпеки попередив, то тепер хочу показати результат, до якого я прийшов.


Як ми бачимо, було прибрано рядок «Ваш e-mail не буде опублікований. Обов'язкові поля позначені *». Не треба вважати відвідувачів безмозкими ідіотами. Вони розуміють, що потрібно заповнювати, а що ні. Також я сховав назви полів усередину самих полів. Навіщо ці жирні записи? Більшість відвідувачів вже і без назв полів може «на око» визначити, яке до чого стосується. Але внутрішні хінти все-таки мають бути присутніми. Та й підпис до поля коментаря втратив свою непотрібну жирноту. На мій погляд, так стало набагато краще та вільніше.

Тож давайте ж швидше все міняти! ;)
Йдемо в папку свого сайту та знаходимо у ньому файл wp-includes/comment-template.php. Шукаємо в ньому рядок 1522, та й саме його. Як я сам її знайшов це ціла історія, розповім про це трохи пізніше:)
Отже, відкриваємо файл на редагування і переходимо до 1522 рядка. Зараз вона і наступні (до 1529-ї) приблизно такі:

$fields = array("author" => "

" . "" . ($req ? " *" : "") . "

", "email" => " ", "url" => "

" . "

",);

Як усе й зрозуміло. Достатньо просто вирізати все зайве і трохи дописати. Дописувати буде параметр

Placeholder="Текст підказки" !}

Цей параметр дозволяє виводити усередині полів будь-який текст. Використовуємо його для виведення підказок:

"

" "

" "

"

Видалятимемо ж рядки:

"

" . "" . ($req ? " *" : "") "

"

Вони відповідають за виведення підписів над полями.
В результаті всіх цих маніпуляцій, отримуємо наступне:

$fields = array("author" => "

", "email" => "

", "url" => "

",);

Залишається лише видалити дурну підказку «Ваш e-mail не буде опубліковано. Обов'язкові поля позначені *». Для цього видаляємо рядок (приблизно 1537):

"comment_notes_before" => "

" . __("Your email address will not be published.") . ($req ? $required_text: "") .

",

Ось начебто б і все, тепер наша форма стала трохи привабливішою. Сподіваюся ця інформація комусь знадобиться:)

Підписуйтесь, коментуйте, буду радий будь-яким адекватним зауваженням. Може бути я сам чогось не знаю і можна це зробити по-іншому, поділіться своїми міркуваннями.

Лізти в код чи не лізти? Раніше ми вже говорили, що форма коментарів трохи складна і тому творці все максимально спростили.

Функція виклику коментарів проста і не має параметрів

Виглядає просто, але робить дуже багато. Фактично вона створює величезну кількість html коду та використовує купу php коду. Т.к. ця функція генерує весь готовий html код, нам доведеться мати з ним справу без можливості якось відрегулювати або налаштувати використанням параметрів. Це може бути певною проблемою, з огляду на те, що ми не дуже можемо цей html код змінити. Чи не подобаються класи div? Чи не хочете використовувати граватори? Бажаєте змінити порядок виведення рядків?

З усім цим доведеться упокоритися і приховувати непотрібні речі за допомогою css. З цієї точки зору вам потрібно буде визначитися - яким шляхом переваг ви підете:

wp_list_comments

  • легко використовувати
  • вбудований функціонал коментування
  • вбудований функціонал розбиття на сторінки
  • вбудований функціонал деревоподібного відображення
  • css класи за промовчанням для базових завдань

користувальницька функція коментарів

  • абсолютний повний контроль над усім
  • стандартні та користувальницькі css класи
  • наявність плагінів для додавання потрібного функціоналу

Вибір методу формування коментарів залежить від багатьох факторів. Загалом ми рекомендуємо використовувати wp_list_comments і не морочити голову. Якщо ж вам потрібно зробити щось своє, особливе і специфічне, з бажаним функціоналом і можливостями, і це бажання підкріплюється знаннями, то використання циклів користувача дасть можливість це все втілити.

Крім цього, є старий добрий метод виведення коментарів за допомогою циклу foreach, тому нам ще є з чим розібратися.

wp_list_comments() або користувальницький цикл?

До версії 2.7 цикл виведення коментарів був на базі запитів до бази даних і відображався дещо звивистим, але добре зрозумілим шляхом.

Потім коментарі були збагачені додатковим функціоналом – посторінковою навігацією та деревоподібною вкладеністю. Ці можливості активувалися через адмінку, і цикл foreach був замінений на вже показану функцію wp_list_comments. Однак цей цикл, як і раніше, залишається працездатним, правда зі зрозумілої причини не підтримуючи додатковий функціонал.

Хоча wp_list_comments і не виглядає як цикл, але вона робить все те саме, повторює раз-по-раз запити і виведення коментарів, поки вони не закінчаться, розмічаючи їх відповідними тегами.

Зазвичай готовий хтмл код одного коментаря виглядає приблизно так:

  1. Ім'я коментатора says:

    Дякую, у вас супер сайт!

Як видно, цикл виведення коментаря містить картинку-граватор, кілька див, багато різних css класів, посилання на автора і власне текст коментаря. Якщо це вас влаштовує, то це добре, більше нічого робити і не потрібно.

У цьому випадку ви можете простягнути свої руки тільки до доступних параметрів wp_list_comments:

  • розмір аватари за замовчуванням 32 пікселі
  • стилі css — використовуючи їх назви, можна змінити параметри на потрібні
  • стиль виведення списку коментарів style. За промовчанням коментарі виводяться тегами неупорядкованого списку
      , але якщо ви натомість хочете використовувати впорядкований список
        , то використовуйте такий параметр "ol")); ?>
      1. тип type — рядковий параметр, що відповідає за коментарі, що відображаються. Доступні параметри - all, comment, trackback, pingback, pings. Pings означає, що виводитимуться разом і трекбеки, і пінгбеки. За умовчанням параметр дорівнює all, тобто. усі коментарі відображаються.
      2. текст відповіді reply_text - визначальний, що буде написано на посиланні відповіді на коментар, зазвичай "Відповісти"
      3. текст авторизації login_text — відображається у випадку, якщо для відповіді необхідно авторизуватися на сайті, зазвичай «Авто-ресурс для коментування»
      4. callback — ім'я функції користувача для відображення коментарів.
      5. Додаткові параметри доступні

    Це небагато, але здебільшого достатньо для мінімально необхідних модифікацій. Якщо потрібно більше, то доведеться використовувати цикл користувача або втручатися в php код, написаний в comments.php, або додавати потрібний функціонал у functions.php.

    Шаманім у functions.php

    Для початку вкажемо в comments.php, що ми будемо використовувати свою функцію користувача

    Тепер створимо в functions.php свою функцію користувача

  • id="li-comment-">
    ");?> %s says:"), get_comment_author_link()); ?>
    comment_approved == "0") : ?>
    $depth,"max_depth" => $args["max_depth"]))); ?>
    Зверніть увагу, що ми не закриваємо тег
  • , т.к. вордпрес автоматично створить теги, що закривають, залежно від розмітки вкладених коментарів.

    Будучи розміщеним, дана функція буде викликатися при генерації коментарів і дозволяє вносити будь-які потрібні правки. Фішка в тому, що ми зробили все, що нам потрібно, використовуючи стандартну та досить обмежену в налаштуваннях wp_list_comments()

    А тепер давайте струсимо старовиною - разом з wp_list_comments поставимо цикл foreach

    Таке використання дозволить шаблону бути сумісним зі старими версіями вордпресу.

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

    Реалізуємо посторінкові коментарі

    Наперед ніхто не знає, що контент на сайті може залучити сотні коментарів. До чого я хиляю - ми всі суперзірки і успіх може прийти зненацька. Запис із сотнею коментарів може бути шалено довгим для перегляду та перемотування. Загалом ми звичайно не боїмося вертикальної прокрутки (на відміну від горизонтальної), але кордони повинні бути у всього. Типовий пост із 60 коментарями може бути до 20 тис. пікселів у висоту!

    Чудовий спосіб навести порядок – це розбивати стрічку коментарів на сторінки та відображати їх посторінково.

    Увімкнувши сторінкову навігацію, не забудьте додати до файлу comments.php функції для виведення посилань «Раніше» «Пізніше»

    Ці посилання автоматично з'являтимуться та розбиватимуть простирадло коментарів, при перевищенні заданої кількості коментарів на одну сторінку. Якщо коментарів менше цього числа, посилання не відображатимуться.

    І тут є одна каверза. Виникає відома сео проблема дублювання контенту із посторінковими коментарями. Це відбувається через те, що створюються однакові урли для кожної сторінки коментарів

    • https://yoursite.com/ghost-dad-rocked/
    • https://yoursite.com/ghost-dad-rocked/comments-page-1/
    • https://yoursite.com/ghost-dad-rocked/comments-page-2/
    • https://yoursite.com/ghost-dad-rocked/comments-page-3/

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

    Щоб уникнути дублювання, є кілька рішень:

    1. Не використовувати посторінкові коментарі
    2. Використовувати мета-теги для створення канонічних урл для кожного запису
    3. Використовувати плагін

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

    SEO for Paged Comments застосовує ще радикальніший спосіб — прибираючи вміст запису зі сторінок коментарів і замінюючи на цитату або урізану версію запису.

    Реалізуємо вкладені коментарі

    Вкладені деревоподібні коментарі дають змогу відвідувачам писати відповідь обраному існуючому коментарю, створюючи розгорнуте обговорення діалог. Після активації цієї можливості в налаштуваннях, біля кожного коментаря з'явиться посилання «Відповісти», що дозволяє висловитись за конкретним коментарем.

    До появи такої можливості існував стиль відповіді обраному автору, використовуючи в тексті коментаря його ім'я та знак @ типу «@Вася ти не правий!» З деякою трансформацією цей спосіб прижився в багатьох додатках в інтернеті і живе й досі, наприклад, у твіттері. А у сучасних версіях вордпресу таку згадку не потрібно використовувати.

    Тепер досить просто натиснути на відповідне посилання «Відповісти» та висловитись. Після схвалення тексту коментаря він з'явиться відразу ж під коментарем, на який було написано.

    Якщо ваш шаблон не підтримує такий вид коментування, є легкий спосіб додати таку можливість:

    1. Робимо резервні копії файлів, що за ідеєю має вже увійти до звички
    2. Включаємо вкладені коментарі у налаштуваннях Параметри→Налаштування обговорення→Дозволити деревоподібні коментарі
    3. Додаємо наступний код в header.php відразу перед wp_head()
    4. Додаємо до comments.php безпосередньо перед закриваючим тегом
    5. Перевіряємо, що