Как добавить placeholder в поля комментария comment_form()

placeholder comment_form()Хак для WordPress, который позволит прописать внутри полей комментария (input) поясняющий для посетителя текст. Другими словами: сделаем placeholder для шаблонов с comment_form().

После этого внутри полей "Имя", "Почта" и "Url" будет написан поясняющий текст. Смотрите скриншоты ниже.

Повторюсь: решение для тех, у кого форма комментариев выводится функцией comment_form() (ищите в comments.php что-то типа такого <?php comment_form(); ?>)

Пример с первого попавшегося блога в сети:

пример

Клик для увеличения

Здесь видим слова "Имя", "Email" и пр. за пределами самих полей ввода данных.

У меня же на блоге это выглядит так:

Клик для увеличения

Клик для увеличения

Надписи появились уже внутри полей.

Вставляем в functions.php следующий код и правим его под себя (текст, стили):

// placeholder в поля комментариев
function my_update_fields($fields) {
    $commenter = wp_get_current_commenter();
    $req = get_option( 'require_name_email' );
    $aria_req = ( $req ? " aria-required='true'" : '' );
 
    $fields['author'] =
        '<p class="comment-form-author">
            <input required minlength="3" maxlength="30" placeholder="Ваше имя*" id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) .
    '" size="30"' . $aria_req . ' />
        </p>';
 
    $fields['email'] =
        '<p class="comment-form-email">
            <input required placeholder="Ваш Email*" id="email" name="email" type="email" value="' . esc_attr(  $commenter['comment_author_email'] ) .
    '" size="30"' . $aria_req . ' />
        </p>';
 
    $fields['url'] =
        '<p class="comment-form-url">
            <input placeholder="Ваш сайт (если есть)" id="url" name="url" type="url" value="' . esc_attr( $commenter['comment_author_url'] ) .
    '" size="30" />
        </p>';
 
    return $fields;
}
add_filter('comment_form_default_fields','my_update_fields');

Если не знаете в какое место functions.php вставлять код, то делайте это сразу в начале файла с новой строки после <?php.

В качестве бонуса хак, который позволит также поместить текст в поле ввода комментария.

function my_update_comment_field($comment_field) {
 
    $comment_field =
        '<p class="comment-form-comment">
            <textarea required placeholder="А сюда пишем свой комментарий..." id="comment" name="comment" cols="45" rows="8" aria-required="true"></textarea>
        </p>';
 
    return $comment_field;
}
add_filter('comment_form_field_comment','my_update_comment_field');

Привет. Меня зовут Виталик и я автор этого блога, а так же Магазина WordPress https://wp-r.ru/.

Отблагодарить Z888279575784 R109400923968 или ЯД 41001651742138

Оказываю услуги по созданию и настройке сайтов на WordPress (верстка, натяжка).

Мои Контакты. Я в Twitter @mojWP. Смотри на Youtube. Читай RSS блога.

Опубликовано 11 комментариев
  1. Артём Черкасов (83 комм.):
    http://blog-artema.ru/

    Полезная статья, сейчас замучу у себя такую фишечку.

  2. Максим (30 комм.):
    http://seoslim.ru

    Уж очень форма комментирования похожа на форму моего блога ) Очень полезная статья Виталий, сегодня же постараюсь внедрить твои рекомендации. Спасибо.

    • Виталий (1674 комм.):
      http://mojWP.ru/

      Да. Твой. Зашел новую статью почитать и скрин сделал заодно для примера.

      • Максим (30 комм.):
        http://seoslim.ru

        Очень жалко не у меня данный код не заработал ((

        • Виталий (1674 комм.):
          http://mojWP.ru/

          значит не под твой шаблон. нужно смотреть. читай каммент ниже

  3. Серега (5 комм.):
    http://sevelweb.ru

    Спасибо за отличное решение размещение надписей внутри полей, на сайте где я разместил надписи внутри полей для комментариев мне пришлось добавить только required placeholder="Ваш Email*" в строку отвечающей за ввод и все, остальной код мне оказался не нужен, вот часть строки кому интересно
    <input required placeholder="Ваш Email" type="text" name="email" id="email" value="" size="22" tabindex="2" />

    Еще раз спасибо Виталий за решение!!!

    • Виталий (1674 комм.):
      http://mojWP.ru/

      Значит у вас сразу прописаны функции полей в файле, а не общая форма. Так то placeholder работает для любых полей, будь то стандартные input шаблона, либо плагинов (тот же Contact Form 7).

  4. Дима (4 комм.):
    http://business-opening.ru/

    Виталий подскажите как изменить или удалить в форме комментирования надпись - добавить комментарий. У вас это надпись - "Не держи в себе. Выскажись."

    • Дима (4 комм.):
      http://business-opening.ru/

      Спасибо, уже разобрался

    • Неллу (3 комм.):
      http://hochu-vse-znat.ru/

      А я нет подскажите как.

  5. Неллу (3 комм.):
    http://hochu-vse-znat.ru/

    У меня тоже не заработал

Не держи в себе. Выскажись.

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

© 2011-2016 | mojwp.ru | Копирование материала разрешено только с письменного согласия
WordPress: 12.73MB | MySQL:76 | 0,421sec
Премиальные плагины для CMS WordPress
Магазин WordPress WP-R.ru
Спасибо, не показывайте мне эту штуку больше!
Смотри мои обучающие видео на YouTube
Иван только что купил плагин ELT
https://wp-r.ru/plaginy/elt.html