Робимо супер форму коментарів WordPress. Шаблон коментарів WordPress Хрестовий додати коментар comment

Головна / Корисне ПЗ

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

Спосіб №1

Для першого способу, ви повинні у папці з темою, що встановлена ​​у вас на сайті, знайти файл comments.php . Якщо такий є, відкрити його та пошукати в ньому масив, який відповідає за налаштування та виведення змісту форми коментарів. Виглядає він приблизно так:

$args = array("comment_notes_before" => "

", "comment_field" => "

Коментар *

", "id_submit" => "comm_subm", "label_submit" =>

Так ось, до цього масиву потрібно додати новий параметр з потрібним значенням і все. У нашому випадку, це:

"title_reply" => "Залишити свій відгук",

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

$args = array("title_reply" => "Залишити свій відгук", "comment_notes_before" => "

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

", "comment_field" => "

Коментар *

", "id_submit" => "comm_subm", "label_submit" => "Надіслати",);comment_form($args);

Додано на початок і тепер, на сторінках записів буде виводиться рядок - Залишити свій відгук. Цей спосіб не складний та вимагає мінімальних сил, головне правильно визначити масив. Але іноді так буває, що всередині теми немає файлу comments.php або в ньому немає масиву і ви не знаєте, як правильно його туди додати, тоді вам допоможе другий спосіб.

Спосіб №2

Суть другого способу полягає в тому, щоб додати нову функцію, яка зробить заміну назви. Для цього в папці з активною темою, потрібно знайти файл function.php з функціями користувача і в зручне місце, якщо не знаєте такого, то в самий кінець перед закриваючим тегом PHP - ?> , якщо такого немає, то просто в самий кінець, додати ось такий код:

Function wph_change_submit_label($defaults) ( $defaults["title_reply"] = "Залишити свій відгук"; return $defaults; ) add_filter("comment_form_defaults", "wph_change_submit_label");

Бонус

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

Ще хочу запропонувати та звернути увагу на відмінювання слова Коментарі. Якщо у вас виводить у формі рядок - Опубліковано 1 коментар або Коментарів: 10. Можете скористатися функцією зі статті . Якщо ви вже користуєтеся нею, то рекомендую у рядку з масивом:

Array("коментар","коментар","коментарів")

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

Ось таку інформацію хотів сьогодні вам надати. Можливо, комусь вона стане корисною.

На цьому все, дякую за увагу. 🙂

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

Сподіваюся, що стаття виявиться корисною для власників блогів на WordPress, знайомих з HTML, CSS та PHP.

***

У WordPress для підключення шаблону коментарів на пост або сторінку використовується функція comments_template() , яка приймає два параметри:

  • перший - шлях до файлу шаблону, за промовчанням це comments.php у папці з поточною темою
  • другий служить для поділу коментарів за типом (звичайні, трекбеки та пінгбеки), за замовчуванням false

Вставимо comments_template() після виведення запису в шаблон посту single.php або сторінки page.php.

Опис та аргументи функції comments_template() та інших згадуваних у статті шукайте в Кодексі WordPress .

Підготовка шаблону

Спробуємо розібратися в шаблонах коментарів WP і власноруч зробимо файл для виведення коментарів на пости та сторінки блогу. Як приклади для ознайомлення можна взяти шаблони зі стандартних тем WordPress. Створимо новий документ у будь-якому текстовому редакторі, назвемо його comments.php та почнемо редагувати.

  • В принципі назвати файл можна як завгодно, а потім в comments_template() прописати шлях до цього файлу, проте краще дотримуватися стандартної назви
  • Редагувати файл можна і в адмінці WP, до речі
  • Найкраще звичайно писати код і відразу перевіряти його дію на своєму блозі або на локальному сервері.

У WordPress можна заборонити коментарі для окремих постів, тому перед їх виведенням потрібно провести перевірку на «відкритість»:

Це код-обгортка для наших подальших дій. Тепер підготуємо контейнер для блоку коментарів з семантично коректним класом або ідентифікатором (клас звичайно краще):

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

"

Тут ми вказали одну з функцій WordPress - the_title(), результатом виконання цієї функції стане виведення заголовка поточного посту або сторінки. Якщо ви не хочете виводити заголовок, можна написати просто «Коментарі читачів».

Далі, як виводити коментарі, необхідно переконатися у тому наявності, тобто. провести перевірку, якщо є — вивести повний список, якщо ні — можна показати користувачеві щось на кшталт «». Так відвідувачу вашого посту/сторінки буде зрозуміло, що ніхто ще нічого не писав, а мотивуюча фраза «Ви можете бути першим» збільшить ймовірність того, що вам швидше щось напишуть.

Отже, після такої постановки завдання стає зрозумілим, що для реалізації нам знадобляться конструкції if/else та функція виведення кількості коментарів get_comments_number() . Якщо функція повертає 0 (нуль), то виводимо «Коментарів поки що немає…», інакше «Коментарі читачів…»:

Коментарів поки немає, але ви можете стати першим Коментарі читачів до статті "" Обговорення закриті для цієї сторінки

Висновок коментарів

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

  • тому слід додати обгортку з присвоєнням класу.commentlist:

    wp_list_comments() приймає масив аргументів, за допомогою яких можна гнучко налаштувати висновок коментарів. Наприклад, можна змінити розмір аватара, текст відповіді на коментар та інші налаштування, передавши ключове слово та значення:

    $args = array("avatar_size" => 64, // розмір аватара 64*64px, за замовчуванням 32 "reply_text" => "Відповісти" // текст відповіді на коментар "callback" => "my_comments" // функція формування зовнішнього виду коментаря)

    На окремий розгляд заслуговує параметр callback , який набуває значення імені користувача функції виведення коментаря. З її допомогою можна гнучко налаштувати зовнішній вигляд кожного коментаря. Так виглядає стандартна функція виведення з файлу comment-template.php:


    Крок 5 . Налаштування коментарів для певних типів записів

    Іноді потрібно використовувати поля у коментарях лише для певних типів записів. Змінимо код для виведення поля віку тільки для запису типу book:

    Function add_comment_fields($fields) ( if(is_singular("books")) ( $fields["age"] = "

    " . __("Age") . "" . "

    "; ) return $fields; ) add_filter("comment_form_default_fields","add_comment_fields");

    Крок 6. Створюємо зворотну функцію для виведення коментарів

    Функція wp_list_comments використовується для виведення коментарів у записах. У кодексі WordPressфункцію докладно описано.

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

    У темі Twenty Eleven у файлі comments.php можна знайти рядок:

    Wp_list_comments(array("callback" => "twentyeleven_comment"));

    Змінимо її на:

    Wp_list_comments(array("callback" => "my_comments_callback"));

    Функція my_comments_callback буде викликатись для кожного запису.

    Крок 7. Стилізація коментарів

    Тепер ми трохи змінимо стиль коментарів. Просто будемо виводити зміст запису та поле віку, яке було додано нами раніше. Ми також змінимо колір фону для коментарів.

    Код функції 'my_comments_callback':

    Function my_comments_callback($comment, $args, $depth) ( $GLOBALS["comment"] = $comment; ?>

  • © 2023 androidas.ru - Все про Android