Заміни додати коментар comment. Тонка настройка форми коментування

Нещодавно копався у файлах своїй теми 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:

    1. id="li-comment-">
      "); ?> %s says:"), get_comment_author_link()) ?>
      comment_approved == "0") : ?>
      $depth, "max_depth" => $args["max_depth"]))) ?>

      Найпростіше взяти цю функцію і правити її під себе, а потім викликати як користувальницьку, прописавши її у файлі comments.php або functions.php.

      Після виведення списку коментарів можна змінювати їх зовнішній вигляд через стилі CSS. Деякі параметри wp_list_comments() дублюються в адмінці WP, вкладка Параметри → Обговорення, зокрема наявність деревоподібних коментарів, сортування за датою тощо.

      Форма відправлення коментаря

      Для додавання форми коментарів використовується функція comment_form(). Додамо її під список коментарів:

      Коментарів поки що немає, але ви можете стати першим

      Коментарі читачів до статті"

      1. 64, "reply_text" => "Відповісти", "callback" => "my_comments"); wp_list_comments($args); ?>

      Обговорення закриті для цієї сторінки

      За такого виклику comment_form() завантажить стандартний код із файлу WordPress comment-template.php . Функція приймає два параметри:

      Comment_form($args, $post_id);

      • $args - масив налаштувань виведення форми
      • $post_id — id посту, до якого буде застосована функція, за промовчанням поточний пост

      Давайте, наприклад, зробимо валідацію на HTML5 полям форми, додамо текстові підказки. Створимо масив $args для введення потрібних налаштувань:

      $args = array(); comment_form($args);

      У масив необхідно прописати ключі налаштувань:

      $args = array("fields" => apply_filters("comment_form_default_fields", $fields));

      Тепер нам необхідно заповнити змінну-масив $fields , яка включає поля форми. Найпростіше взяти стандартний код WordPress з comment-template.php і трохи його змінити:

      "

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

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

      " . "

      "); $args = array("fields" => apply_filters("comment_form_default_fields", $fields)); comment_form($args); ?>

      Тут значення параметрів author, email та url — html-код полів «Ім'я», «Пошта» та «Сайт відповідно». Ці значення потрібно редагувати.

      Для полів нам потрібно додати такі атрибути:

      • required — робить поля обов'язковим для заповнення, додаємо його для полів «Ім'я» та «Сайт»
      • placeholder — додає текстову підказку до поля
      • pattern="(3,)" для поля "Ім'я" - вказуємо ім'я літерами латинського або російського алфавіту і довжину не менше 3 символів
      • type="email" для поля "Пошта" - тим самим ми додамо валідацію HTML5 електронної пошти
      • autocomplete - включає автозаповнення для полів
      • type="url" для поля "Сайт"

      Не забудьте, що у старих браузерах нові атрибути HTML5 не працюватимуть. Ті браузери, які розуміють нові типи полів, просто виводитимуть їх як текстові, тобто. .

      До того ж я для свого блогу де-не-де поміняв місцями теги, додав класи для стилізації, в результаті у мене вийшов такий код масиву $fields:

      "

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

      "); ?>

      Ми змінили поля введення даних. Тепер підредагуємо саму форму коментарів

      " ?>

      Це стандартний код WordPress, я лише трохи видозмінив його — додав текстову підказку та прописав додатковий клас для стилізації.

      Ось що я в результаті отримав із застосуванням стилів CSS:

      Форма коментарів WordPress з використанням атрибутів HTML5

      Підсумок

      Насамкінець скину свій код comments.php:

      читачів статті"

      • Залишіть перший коментар - автор намагався
      1. id="li-comment-">
        "); ?> %s пише:"), get_comment_author_link()) ?>
        comment_approved == "0") : ?>
        $depth, "max_depth" => $args["max_depth"]))) ?>
        "Відповісти", "callback" => "verstaka_comment"); wp_list_comments($args); ?>
      "

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

      "); $args = array("comment_notes_after" => "", "comment_field" => "

      ", "label_submit" => "Надіслати", "fields" => apply_filters("comment_form_default_fields", $fields)); comment_form($args); ?>

      Обговорення закриті для цієї сторінки

      FAQ за коментарями

      Як виділити коментарі автора та користувача?

      Іноді дуже зручно задати окремий зовнішній вигляд для авторських коментарів, для цього є навіть спеціальні плагіни. Однак можна обійтися без усіляких плагінів - просто прописавши стилі для класу.bypostauthor у css-файлі. Аналогічно можна задати стилі для коментарів користувача — .bypostuser:

      Як встановити стилі для деревоподібних коментарів?

      Для включення деревоподібних коментарів потрібно зайти в адмінку WP, Параметри → Обговорення → Дозволити деревоподібні коментарі. Тепер дочірні коментарі матимуть деревоподібну структуру, їм можна задати окремі стилі, наприклад, зробити відступи. Все, що потрібно - встановити правила в css для списку з класом.

      Commentlist .children ( padding: 0 0 0 40px; /* відступ зліва для дочірніх коментарів */ )

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

      WordPress за умовчанням дає непарним коментарям клас.even, парним.odd. Через ці класи легко ставити свої стилі:

      Commentlist .even ( /* стилі для непарних коментарів */ ) .commentlist .odd ( /* стилі для парних коментарів */ )

      Як закрити коментарі на окремому пості?

      Дуже легко - заходимо на сторінку написання посту, Налаштування екрана → Обговорення, під полем посту з'являється блок Обговорення, зняти виділення Дозволити коментарі.

      • При складанні власного шаблону коментарів можна користуватися файлами comments.php із стандартних та інших платних та безкоштовних тем WordPress
      • Альтернатива стандартним коментарям — сторонні плагіни форм коментування, наприклад, популярна DISQUS
      • Цілком можливо правити код прямо в самому файлі comment-template.php , проте у разі оновлення WordPress весь код буде перезаписаний - доведеться правити знову
      • Пам'ятайте - ідеального шаблону коментарів не буває

      Допомога проекту

      65 голосів, у середньому: 4,46 із 5)

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

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

      Ось що ми зробимо:

      • Повне налаштування користувача
      • Оформлення зовнішнього вигляду
      • Нумерація коментарів
      • Підрахунок повідомлень кожного користувача
      • Присвоїти статус кожному користувачеві
      • І інше дрібниці

      Розберемо кожен пункт окремо, а наприкінці статті буде повністю зібрані всі функції в один готовий код.

      Налаштування користувача коментарів

      У WordPress'e виведення коментарів здійснюється через функцію wp_list_comments, зазвичай у файлі comments.php. А формування окремих функцій так само, як і сам цикл, використовується із шаблону системного файлу comment-template.php. Але в окремих випадках буває, що налаштування може бути в темі WordPress, файл functions.php або comments.php .

      Так от, якщо ваша тема не потрапляє в рідкісний випадок і є потреба зробити свої налаштування, тоді відкриваємо файл functions.php і перед знаком?> додаємо наступний код:

      If (! function_exists("my_comment")) : function my_comments($comment, $args, $depth) ( global $commentnumber; $GLOBALS["comment"] = $comment; pingback" : case "trackback" : ?>

    2. ", ""); ?>
    3. id="li-comment-">
      comment_parent) $avatar_size = 39; echo get_avatar($comment, $avatar_size); /* translators: 1: comment author, 2: date and time */ printf(__("%1$s %2$s", "my_press"), sprintf(" %s", get_comment_author_link()), sprintf(" ", esc_url(get_comment_link($comment->comment_ID)), get_comment_time("c"), /* translators: 1: date, 2: time */ sprintf(__("%1$s %2$s", " my_press"), get_comment_date(), get_comment_time()))); ?>
      comment_approved == "0") : ?>
      __("Reply", "my_press"), "depth" => $depth, "max_depth" => $args["max_depth"])))); ?>
      ", ""); ?>

      Потім у файлі comments.php додати функцію виклику:

        "my_comments")); $commentnumber = 0; ?>

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

      Підрахунок коментарів кожного користувача

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

      Відкриваємо вже знайомий нам файл functions.php і прописуємо наприкінці перед знаком?> наступний код:

      //підрахунок повідомлень користувачів function bac_comment_count_per_user() ( global $wpdb; $comment_count = $wpdb->get_var("SELECT COUNT(comment_ID) FROM ". $wpdb->comments. " WHERE comment_author_email = "" . get_comment_aut AND comment_approved = "1" AND comment_type NOT IN ("pingback", "trackback")"); if ($comment_count == 1) ( echo " 1 Повідомлення"; ) else ( echo " " . $comment_count . ";))

      Тепер залишилося додати функцію виклику в потрібне місце:

      Підрахунок повідомлень відбуватиметься на основі e-mail користувача як зареєстрованих, так і ні. Коментарі враховуються лише підтверджені адміністратором сайту, а в режимі очікування та віддалені немає.

      Надаємо статус кожному користувачеві залежно від кількості його коментарів

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

      Знову відкриваємо файл functions.php і перед знаком?> додаємо наступний код:

      //статус користувача function get_author_class($comment_author_email, $user_id)( global $wpdb; $adminEmail = get_option("admin_email"); $author_count = count($wpdb->get_results("SELECT comment_ID as author_count FROM $wpdb "; if($author_count>=1 && $author_count<50 && $comment_author_email !==$adminEmail) echo "Прохожий"; else if($author_count>=50 && $author_count<100 && $comment_author_email !==$adminEmail) echo "Новичок"; else if($author_count>=100 && $author_count<250 && $comment_author_email !==$adminEmail) echo "Знающий"; else if($author_count>=250 && $author_count<400 && $comment_author_email !==$adminEmail) echo "Опытный"; else if($author_count>=400 &&$author_count<800 && $comment_author_email !==$adminEmail) echo "Бывалый"; else if($author_count>=800 && $author_count<1200 && $comment_author_email !==$adminEmail) echo "СуперПупер"; else if($author_count>Професор"; )

      І в бажаному місці виводимо функцію виклику:

      comment_author_email,$comment->user_id)?>

      Пояснення:функція, як і попередня, пов'язана з електронною поштою користувача. Тільки тут основним завданням є непросто рахунок повідомлень, а кількість і залежно від встановленого числа. І як тільки користувач досягає його він отримує певну посаду. Усього статусів є 7, плюс адмін і відзнака для зареєстрованих учасників.

      Повністю готовий код коментарів

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

      Відкриваємо файл functions.php і в кінці перед знаком?> додаємо наступний код:

      //підрахунок повідомлень користувачів function bac_comment_count_per_user() ( global $wpdb; $comment_count = $wpdb->get_var("SELECT COUNT(comment_ID) FROM ". $wpdb->comments. " WHERE comment_author_email = "" . get_comment_aut AND comment_approved = "1" AND comment_type NOT IN ("pingback", "trackback")"); if ($comment_count == 1) ( echo " 1 Повідомлення"; ) else ( echo " " . $comment_count . "; ) ) //статус користувача function get_author_class($comment_author_email, $user_id)( global $wpdb; $adminEmail = get_option("admin_email"); $author_count = count($wpdb->get_results("SELECT comment_ID as author_count wpdb->comments WHERE comment_author_email = "$comment_author_email" ")); if($comment_author_email ==$adminEmail) echo "Адмін"; if($user_id!=0 && $comment_author_email ; ($author_count>=1 && $author_count<50 && $comment_author_email !==$adminEmail) echo "Прохожий"; else if($author_count>=50 && $author_count<100 && $comment_author_email !==$adminEmail) echo "Новичок"; else if($author_count>=100 && $author_count<250 && $comment_author_email !==$adminEmail) echo "Знающий"; else if($author_count>=250 && $author_count<400 && $comment_author_email !==$adminEmail) echo "Опытный"; else if($author_count>=400 &&$author_count<800 && $comment_author_email !==$adminEmail) echo "Бывалый"; else if($author_count>=800 && $author_count<1200 && $comment_author_email !==$adminEmail) echo "СуперПупер"; else if($author_count>=1200 && $comment_author_email !==$adminEmail) echo "Професор"; ) // Налаштування користувача коментарів if (! function_exists("wordsmall_comment")) : function wordsmall_comment($comment, $args, $depth) ( global $commentnumber; >comment_type) : case "pingback" : case "trackback" : ?>

    4. id="li-comment-">
      %s", get_comment_author_link()); ?> comment_parent)( $comment_parent_href = htmlspecialchars(get_comment_link($comment->comment_parent)); $comment_parent = get_comment($comment->comment_parent); ?> @ Відповідь для:comment_author;?>
      comment_parent) $avatar_size = 60; echo get_avatar($comment, $avatar_size); ?> comment_author_email,$comment->user_id)?>
      comment_approved == "0") : ?>
      ", ""); ?> __("Відповісти", "wallpress"), "depth" => $depth, "max_depth" => $args["max_depth"])))); ?>

      Тепер відкрийте файл comments.php, знаходимо в ньому функцію виклику коментарів. Виглядає приблизно так:

      Змінюємо на цю:

        "wordsmall_comment")); ?>

      Заключний крок. Відкриваємо файл style.css і наприкінці прописуємо наступні стилі:

      My_commentlist( border-top:none; ) .my_commentlist .comment( padding:0 0 15px 0; border:none; ) .my_commentlist .pingback( padding:0 0 15px 0; border:none; ) .my_commentlist .comment list-style-type: none; padding:0px; margin-left:0px;/*якщо потрібний відступ для деревоподібних ком. none; padding: 0; ) #comments ( background: #fff; ) #comments .my_commentlist ( margin: 10px 0; padding: 0; list-style:none; .comment ( margin:0; padding: 0 0 10px; background: #fff; ) #comments .my_commentlist .my_comment-author ( display: inline; border-right: 1px solid #e0e0e0; width: 100px; float: left; : 0px 15px 10px 0; ) #comments .my_commentlist .commentmetadata ( float:left; ) #comments .my_commentlist p ( clear:none; color: #555; font: 14px arial; .comment-conte nt (margin-left: 116px; padding-right: 10px; ) #comments .my_commentlist .reply (text-align:right; ) #comments .my_commentlist .reply a( background: #f5f5f5; border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 2px; color : #515456; display: inline-block; font-size: 13px; font-weight: normal; line-height: 30px; margin-right: 15px; min-height: 30px; padding: 0 12px; ; text-decoration: none; ) .my_commentlist .avatar( border: medium none; border-radius: 50%; float: none; margin: 5px auto; padding: 0px; height: 30px; background: #DEE5EB; margin-bottom: 15px; ) .my_commentlist cite.fn( color: #444; font: bold 13px/30px arial; 8ca0b5; font: normal 13px/30px arial; float: right; padding-right: 15px;) .my_commentlist .commentnumber ( color: #8ca0b5; float: right; .my_commentlist .comment-body ( overflow: hidden; position: relative; background: #fff; ) .my_commentlist .rep-authorcom ( color: #25394e; font-size: 13px; line-height: 30px; ) .my_commentlist .edit-link a ( background: none !important; 0 !important;color: #999!important;display: inline-block;font-size: 11px !important;font-weight: normal;line-height: 30px; padding: 0 !important;text-align: center;text-decoration: none; ) .com_per ( border: medium none; .vip1,.vip, .vp, .vip2, .vip3, .vip4, .vip5, .vip6, .vip7 ( border: medium none; bottom: 5px; text-decoration: none; . color: #658a18;) .vip5 (color: #00A56D;) .vip6 (color: #e35d28;) .vip7 (color: #99A400;) .vip (color: #4c5176;font-size: 11px;margin: 0 ;)

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

      Привіт, друзі! На зв'язку Володимир Савельєв. Сьогодні я покажу Вам як зробити, налаштувати та красиво оформити форму коментарів WordPress, з плагінами та без... І розберемо дуже важливе питання: Чи впливають коментарі на ранжування блогу у пошукових системах? Але про все по порядку...

      У цій статті я розберу такі питання:

      • Як налаштувати форму коментарів WordPress під потреби аудиторії;
      • Як красиво оформити коментарі за допомогою CSS;
      • Як виділити коментарі автора блогу без плагіна;
      • Як зробити собі граватор для відображення Вашого фото, при коментуванні на своєму та інших блогах;
      • Які важливі плагіни встановити для модуля коментарів, щоб додати функціонал;
      • Як вставити смайлики у форму коментарів та замінити їх на більш оригінальні;

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

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

      Гаразд, давайте тепер повернемося до теми!

      Почну з того, як WordPress коментарі впливають на ранжування блогу у пошукових системах?! Відповідь очевидна - це вплив ПФ, тобто поведінкові фактори!

      Розглянемо приклад, чи є два блоги на одному з них є форма коментарів wordpress, на іншому немає! Відвідувач зайшов на блог, де прочитав цікаву статтю і все, навряд, він знову повернеться на сторінку матеріалу, ви зі мною згодні?

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

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

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

      Ну, вистачить теорії, переходимо до практичної частини!

      Як налаштувати форму коментарів WordPress

      Насправді, налаштування модуля коментарів дуже просте і не займе у Вас багато часу. Все, що вам потрібно зробити це встановити галочки там, де це зробив я! Виконуйте інструкції і у Вас все вийде в кращому вигляді!

      Як красиво оформити форму коментарів

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

      Щоб змінити оформлення коментарів, потрібно знайти в налаштуваннях, Зовнішній вигляд – Редактор – Таблиця стилів (style.css), приблизно такий код:

      Commentlist div.comment(background:#f6f6f6;margin-bottom:15px;padding:10px 10px 10px 80px;position:relative;border: 1px solid #bbb; border-radius: 8px;)

      Коротше, шукаємо всі стилі, які починаються на comment, і змінюємо їх значення на свій смак та колір Експериментуємо!

      Як виділити коментарі автора без плагіна

      Навіщо це потрібно?! Ну по-перше, це дає подання відвідувачу, хто є автором блогу, серед інших коментаторів! Також буде простіше орієнтуватися і автору блогу!

      Вирішити це завдання допоможе плагін - Highlight Author Comments , але я не прихильник плагінів, тому що їхня велика кількість негативно впливають на роботу блогу! Тому, наскільки це можливо, я намагаюся все робити кодом, чого і Вам раджу!

      Щоб реалізувати цю можливість кодом без плагіна, потрібно в налаштуваннях: Зовнішній вигляд – Редактор – Таблиця стилів (style.css), додати новий клас стилю, з логіном адміністратора блогу.

      У моєму випадку код має такий вигляд:

      Commentlist div.comment-author- Ваш логін при вході в адмінку(background-color:#f5f5e1!important;margin-bottom:15px;padding:10px 10px 10px 80px;position:relative;border: 1px solid #bbb; border-radius: 8px;)

      І змінити оформлення, яке відрізняється від інших коментарів! Все просто!

      Щоб зловмисник не дізнався Ваш реальний логін, пропишіть код у functions.php

      function del_login_css ($css) (
      foreach ($css as $key => $class) (
      if (strstr ($class, «ВАШ РЕАЛЬНИЙ ЛОГІН»)) (
      $css[$key] = "ПРИДУМАЙТЕ ВИМИЛЕНИЙ"; )
      return $css;
      }
      add_filter ("comment_class", "del_login_css");

      Як зробити свій граватор (фото в коментах)

      Якщо Ви хочете, щоб при коментуванні на своєму або інших блогах виводилася Ваша фотографія, а не порожня картинка, то потрібно зробити наступне. Реєструємось на https://ua.gravatar.com

      Заповнюємо всі необхідні поля та все! Тепер Ваша фотографія завжди буде з Вами, де Ви вкажете email, до якого прив'язана картинка! Важливо зареєструватися на email, який ви зазвичай вписуєте під час коментування.

      Важливі WordPress плагіни для коментування

      Перерахую три основні плагіни для коментування, які стоять у мене на блозі. Рекомендую і встановити їх!

      • Comment Redirect by Yoast – плагін подяки за перший коментар! Попередньо потрібно створити сторінку подяки та вписати її шлях у налаштування плагіна!
      • WordPress Zero Spam – невидима капча, призначена для захисту від спаму, не напружує коментаторів вирішувати арифметичні приклади, вони просто її не бачать.
      • - Підписка на коментарі. Принцип роботи: відвідувач написавши коментар, може підписатися на їх оновлення, а також управління підписками.

      Смайли у форму коментарів wordpress

      Прочитайте статтю про те, як зробити, а також замінити стандартні смайлики на інші.

      На цьому все! Сподіваюся у Вас все вдалося налаштувати, якщо Ви не знайшли своє питання про форму коментарів wordpress, то сміливо пишіть комент і я з радістю на нього відповім! Сподобалася стаття, підпишіться на оновлення блогу та рекомендуйте її своїм друзям, потикавши кнопочки соціальних мереж, що знаходяться нижче! Буду дуже вдячний! Незабаром у новій статті!


      З повагою, Володимир Савельєв

      Преміум-уроки від клубу webformyself

      Це новий революційний продукт у галузі навчання сайтобудування! Усі найкращі відео-уроки зібрані в одному місці та поділені на категорії: WordPress, Joomla, PHP, HTML, CSS та JavaScript... База постійно поповнюється і вже зараз у ній понад 200 уроків! Всього за один рік – Ви зможете стати досвідченим веб-майстром "з повного нуля"!

      Детальніше

      Давненько я нічого не писав про 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: "") .

      ",

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

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

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

      Крок 1. Розбираємось у функцією comment_form та її аргументами

      Розглянемо функцію WordPress comment_form. Вона відповідає за виведення форми коментарів, яка відображається на сторінці або запису. Виклик цієї функції в основному можна зустріти у файлі comments.phpу папці теми. Цей файл включається в різних місцях, наприклад, у файлах single.phpі page.phpбезпосередньо або через виклик функції comments_template .

      Опис функції можна знайти в кодексі WordPress.

      Якщо використовувати функцію comment_form для виведення форми, то вона буде виводитися з використанням параметрів за замовчуванням і міститиме такі поля як ім'я, email (обидва поля є обов'язковими), веб-сайт і зміст коментаря. У темі за замовчуванням Twenty Eleven форма виглядатиме так.

      Деякі важливі аргументи функції comment_form:

      • fields -з його допомогою можна керувати виведенням полів у формі коментаря.
      • comment_notes_before та comment_notes_after - використовуються для виведення інформації перед і після форми.
      • title_reply - використовується для зміни назви відповіді, яка за умовчанням має значення Leave a Reply.
      • label_submit – використовується для зміни тексту на кнопці відправки коментаря.

      Крок 2. Налаштовуємо форму коментаря за допомогою функції comment_form

      Тепер налаштуємо нашу форму коментаря за допомогою передачі аргументів на функцію comment_form .

      Якщо нам потрібно налаштувати поля у формі коментарів, потрібно передати їх список у функцію comment_form . За промовчанням для функції використовується наступний список полів:

      $fields = array("author" => "

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

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

      " . "

      ",);

      Якщо нам потрібно видалити поле, наприклад website, потрібно просто виключити його з масиву і передати масив у функцію comment_form.

      $commenter = wp_get_current_commenter(); $req = get_option("require_name_email"); $aria_req = ($req ? " aria-required="true"" : ""); $fields = array("author" => "

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

      ", "email" => " ",); $comments_args = array("fields" => $fields); comment_form($comments_args);

      На додаток також змінимо назву форми на 'Please give us your valuable comment', а напис на кнопці на 'Send My Comment'.

      Для виконання завдання передаємо у функцію comment_form такі аргументи:

      $commenter = wp_get_current_commenter(); $req = get_option("require_name_email"); $aria_req = ($req ? " aria-required="true"" : ""); $fields = array("author" => "

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

      ", "email" => " ",); $comments_args = array("fields" => $fields, "title_reply"=>"Please give us your valuable comment", "label_submit" => "Send My Comment"); comment_form($comments_args);

      Тепер форма коментаря виглядатиме так:

      Крок 3 Видаляємо поля з форми за допомогою гака

      Також форма коментаря WordPress може бути змінена за допомогою гаків та фільтрів. Таке налаштування може бути особливо корисним при роботі з плагіном, коли потрібно налаштувати кілька елементів, але не змінювати файли теми. Фільтр для додавання йди видалення полів з форми - 'comment_form_default_fields'

      Видалимо поле URL-адреси за допомогою фільтра. Наведений код можна використовувати у плагіні або файлі functions.phpактивну тему.

      Function remove_comment_fields($fields) ( unset($fields["url"]); return $fields; ) add_filter("comment_form_default_fields","remove_comment_fields");

      Крок 4. Додаємо дані у форму коментаря за допомогою гака

      Ми можемо додати поля у форму за допомогою фільтра 'comment_form_default_fields'. Додамо поле віку автора за допомогою фільтра та збережемо дане поле додаткові дані та будемо їх виводити у коментарі.

      Додаємо поле наступним чином:

      Function add_comment_fields($fields) ( $fields["age"] = "

      " . "

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

      #respond .comment-form-author label, #respond .comment-form-email label, #respond .comment-form-url label background: #eee;-webkit-box-shadow: 1px 2px 2px rgba(204,204,204,0.8); 0.8);color:#555;display:inline-block;font-size:13px;left:4px;min-width:60px;padding:4px 10px;position:relative;top:40px;z-index:1;

      Тепер наша форма коментаря буде виглядати так:

      Тепер вік зберігається як додаткова інформація. Потрібно використовувати гак в 'comment_post':

      Function add_comment_meta_values($comment_id) ( if(isset($_POST["age"])) ( $age = wp_filter_nohtml_kses($_POST["age"])); add_comment_meta($comment_id, "age", $age, false); ) ) add_action ("comment_post", "add_comment_meta_values", 1);

      Як тільки дані збережені, їх можна виводити в коментарі так:

      comment_ID, "age", true); ?>

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

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

      Function add_comment_fields($fields) ( if(is_singular("books")) ( $fields["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; ?>

    5. id="li-comment-">

      comment_ID, "age", true); ?>

      __("Reply ↓", "twentyeleven"), "depth" => $depth, "max_depth" => $args["max_depth"])))); ?>
    6. Змінюємо колір тла таким чином:

      Commentlist > li.comment ( background: #99ccff; border: 3px solid #ddd; -moz-border-radius: 3px; border-radius: 3px; margin: 0 0 1.625em; padding: 1.625em; position: relative; )



  • Завантаження...
    Top