Изменение порядка полей комментариев


Есть ли способ сначала отобразить поле комментария, а затем поля Имени/электронной почты/веб-сайта? Я использую

<?php comment_form( ); ?>

В моей теме. Я не ищу CSS-решение.

Author: Florian, 2012-01-21

2 answers

Некоторая свободная реализация того, с чего я бы начал. Крючки 'comment_form_default_fields', 'comment_form_defaults', и крючки 'comment_form_{location}' выглядят многообещающе. Строка 1569 из comment-template.php делает поля, а строка 1575 делает основное поле, вы могли бы "обмануть" wordpress, чтобы поместить поле комментария сверху... но все это, похоже, потребует много усилий и времени, чтобы добиться совершенства, CSS, вероятно, лучший способ сделать это, к сожалению.

 0
Author: mor7ifer, 2012-01-22 17:09:54

Хотя это, возможно, не самый подходящий для Wordpress способ сделать это, я не смог найти другого решения.

Я пошел копать в поисках места, где отображается фактическая форма комментария. Я нашел его в:

/wp-includes/comment-template.php

Поиск:

function comment_form(...

Это функция, которая создает форму комментария и применяет все фильтры, которые вы можете установить.

Итак, я просто пошел дальше и скопировал эту функцию в свою тему functions.php и переименовал его во что-то другое например:

function mytheme_comment_form(...

Затем в моем шаблоне я вызываю <?php mytheme_comment_form() ?>

С помощью моей собственной функции я могу переключать поля по своему усмотрению.

Чем больше я играл с comment_form(), тем меньше я действительно видел в этом смысл. Наличие всего html-кода формы в comments.php, как это было изначально, просто казалось более разумным для этого случая, так как я мог легко перемещать вещи по своему усмотрению, и это заставляло меня чувствовать себя немного менее грязным, чем при выполнении вышеперечисленного:)

В любом случае, это возможное решение, нет идея, если это в конечном итоге что-то сломает, но я думаю, что это довольно разумно, и я собираюсь работать с этим!

 1
Author: Ben, 2012-03-03 21:37:07