mojwp.ru
Назад

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

Опубликовано: 07.02.2014
13
2831

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'] =
        '

'; $fields['email'] = ''; $fields['url'] = '

'; return $fields; } add_filter('comment_form_default_fields','my_update_fields');

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

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

function my_update_comment_field($comment_field) {
 
    $comment_field =
        '

'; return $comment_field; } add_filter('comment_form_field_comment','my_update_comment_field');
Автор:
Виталий
Поделиться
Похожие записи
Черкани пару строк
  • Артём Черкасов
    Опубликовано: 08.02.2014 Ответить на сообщение

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

  • Максим
    Опубликовано: 08.02.2014 Ответить на сообщение

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

    • Виталий
      Опубликовано: 08.02.2014 Ответить на сообщение

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

      • Максим
        Опубликовано: 08.02.2014 Ответить на сообщение

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

        • Виталий
          Опубликовано: 08.02.2014 Ответить на сообщение

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

  • Серега
    Опубликовано: 08.02.2014 Ответить на сообщение

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

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

    • Виталий
      Опубликовано: 08.02.2014 Ответить на сообщение

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

  • Дима
    Опубликовано: 30.09.2014 Ответить на сообщение

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

    • Дима
      Опубликовано: 30.09.2014 Ответить на сообщение

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

    • Неллу
      Опубликовано: 12.12.2014 Ответить на сообщение

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

  • Неллу
    Опубликовано: 12.12.2014 Ответить на сообщение

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

  • Слава
    Опубликовано: 30.01.2017 Ответить на сообщение

    Если у кого код не работает попробуйте удалить из строки слово default
    add_filter('comment_form_default_fields','my_update_fields');

    чтобы получилось так add_filter('comment_form_fields','my_update_fields');

  • Lex_Luter
    Опубликовано: 21.07.2020 Ответить на сообщение

    Работает, спасибо большое

Имя
Укажите своё имя и фамилию
E-mail
Без СПАМа, обещаем
Текст сообщения
Отправляя данную форму, вы соглашаетесь с политикой конфиденциальности и правилами нашего сайта.