Intereting Posts
Как заменить по умолчанию вращающиеся изображения заголовков собственными Удалено slug из CPT, теперь Как / где я привязываю фильтр к ссылке на страницы таксономии? разработка плагинов: проблема с функциями Эхо-строка в действии transition_post_status приводит к тому, что «невозможно изменить информацию заголовка – заголовки, уже отправленные» Редактировать результаты изображения в копиях создаваемого файла Вызов wp_signon не регистрирует пользователя в Почему WordPress требует, чтобы ftp-сервер работал на веб-сервере для переноса плагинов? Пользовательский тип сообщения Тип Дисплей Крючок the_post не стреляет для меня Странное число в конце wordpress permalinks Прокси не работает с запросами :: request_multiple ()? Добавлять только пользовательские классы в пункты меню навигации Гравитационные формы – получить атрибут shortcode из сообщения Как я могу скрыть теги на странице дочерней категории, если этот тег не использовался? Вызов функции-члена add_rewrite_tag () на null

Показывать поля комментариев в двух столбцах

Я использую comment_form (); в файле loop-single.php, чтобы показать форму комментария. У меня есть следующие поля: Имя, Электронная почта, Веб-сайт, Название, Комментарий. В настоящее время все эти поля формы отображаются под ними. Я попытался изменить форму таким образом, чтобы все значения текстового поля отображались в левом столбце, и только текстовая область появляется в правом столбце.

Я пытался использовать comment_notes_after, comment_notes_before, comment_form_top и т. Д. До сих пор, но не имел успеха. Итак, как я могу это достичь (какой-нибудь рабочий код будет очень благодарен)?

Solutions Collecting From Web of "Показывать поля комментариев в двух столбцах"

Вам нужны два новых контейнера: один для полей одной строки, один для текстового поля. Если посмотреть на форму комментариев по умолчанию, мы увидим, где должны появиться их начальные и конечные теги. Я добавил несколько комментариев, чтобы сделать это проще:

<form action="<?php echo site_url( '/wp-comments-post.php' ); ?>" method="post" id="<?php echo esc_attr( $args['id_form'] ); ?>"> <?php do_action( 'comment_form_top' ); ?> <?php if ( is_user_logged_in() ) : ?> <?php echo apply_filters( 'comment_form_logged_in', $args['logged_in_as'], $commenter, $user_identity ); ?> <?php do_action( 'comment_form_logged_in_after', $commenter, $user_identity ); ?> <?php else : ?> <?php echo $args['comment_notes_before']; ?> <?php do_action( 'comment_form_before_fields' ); // Fields: author, email, url foreach ( (array) $args['fields'] as $name => $field ) { echo apply_filters( "comment_form_field_{$name}", $field ) . "\n"; } do_action( 'comment_form_after_fields' ); ?> <?php endif; ?> <?php // Field: textarea echo apply_filters( 'comment_form_field_comment', $args['comment_field'] ); ?> <?php echo $args['comment_notes_after']; ?> <p class="form-submit"> <input name="submit" type="submit" id="<?php echo esc_attr( $args['id_submit'] ); ?>" value="<?php echo esc_attr( $args['label_submit'] ); ?>" /> <?php comment_id_fields( $post_id ); ?> </p> <?php do_action( 'comment_form', $post_id ); ?> </form> 
  • Нам нужен первый начальный тег на 'comment_form_top' . Не позже, потому что нам нужно поймать случай пользователя, который вошел в систему.
  • Мы закрываем этот тег и открываем второй на 'comment_form_after_fields' .
  • Наконец, мы закрываем последний тег после 'comment_form_field_comment' . Это фильтр, а не действие.

В следующем примере кода я бросаю элемент style в разметку. В своей теме вы должны поместить CSS в таблицу стилей. И вы должны использовать обработчик clearfix по вашему выбору, а не разметку, которую я использовал здесь. 🙂

 add_action( 'comment_form_top', 'wpse_67805_open_tag' ); function wpse_67805_open_tag() { ?> <style> @media screen and (min-width: 800px) { .wpse-67805-comment-fields, .logged-in-as { float: left; width: 280px; } .wpse-67805-comment-textarea { float: right; width: 280px; } .wpse-67805-textarea-after { clear: both; } } </style> <div class="wpse-67805-comment-fields"> <?php } add_action( 'comment_form_after_fields', 'wpse_67805_open_close_tag' ); add_action( 'comment_form_logged_in_after', 'wpse_67805_open_close_tag' ); function wpse_67805_open_close_tag() { ?></div><div class="wpse-67805-comment-textarea"><?php } add_filter( 'comment_form_field_comment', 'wpse_67805_close_tag' ); function wpse_67805_close_tag( $textarea ) { return "$textarea</div><div class='wpse-67805-textarea-after'></div>"; } 

Результат в TwentyEleven

введите описание изображения здесь

Не совсем красиво, вам нужно настроить CSS. Но общий путь должен быть ясен.