Поддержка Проблемы и решения Форма комментирования

  • После обновления до версии 4.4 в форме комментирования для неавторизованных пользователей поменялись местами поля идентификации комментатора и поле ввода текста. Т.е. раньше сначала шли поля (имя, email), а потом textarea. Теперь наоборот — сначала поле ввода, а затем всё остальное. Как вернуть прежний порядок?

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Можно добавить фрагмент в functions.php активной темы:

    function wp34731_move_comment_field_to_bottom( $fields ) {
    	$comment_field = $fields['comment'];
    	unset( $fields['comment'] );
    	$fields['comment'] = $comment_field;
    
    	return $fields;
    }
    add_filter( 'comment_form_fields', 'wp34731_move_comment_field_to_bottom' );

    Спасибо большое. Всё встало на свои места. Вопрос чисто из любопытства, для понимания. Название функции ( wp34731_move_comment_field_to_bottom ) — произвольное или оно имеет значение? И, если это не затруднительно, объясните пожалуйста, что за манипуляции происходят внутри неё. Я в скриптах не сильна, но обычно более-менее понятно что происходит, а здесь — как баран на новые ворота. )))

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Называние произвольное, может быть любым другим. #34731 — это номер тикета, в котором был добавлен фильтр comment_form_fields.

    Функция берёт текстовое поле из массива всех полей формы, удаляет его текущую позицию и добавляет поле в конец массива.

    А что означает строчка unset( $fields['comment'] ); ?

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Удаление элемента 'comment' из массива $fields. Без этой строки поле осталось бы на прежнем месте, потому что в массиве уже есть такой элемент.

    Ещё раз большое спасибо. )

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Тема «Форма комментирования» закрыта для новых ответов.