Изменение порядка полей комментариев
Есть ли способ сначала отобразить поле комментария, а затем поля Имени/электронной почты/веб-сайта? Я использую
<?php comment_form( ); ?>
В моей теме. Я не ищу CSS-решение.
2 answers
Некоторая свободная реализация того, с чего я бы начал. Крючки 'comment_form_default_fields'
, 'comment_form_defaults'
, и крючки 'comment_form_{location}'
выглядят многообещающе. Строка 1569 из comment-template.php делает поля, а строка 1575 делает основное поле, вы могли бы "обмануть" wordpress, чтобы поместить поле комментария сверху... но все это, похоже, потребует много усилий и времени, чтобы добиться совершенства, CSS, вероятно, лучший способ сделать это, к сожалению.
Хотя это, возможно, не самый подходящий для Wordpress способ сделать это, я не смог найти другого решения.
Я пошел копать в поисках места, где отображается фактическая форма комментария. Я нашел его в:
/wp-includes/comment-template.php
Поиск:
function comment_form(...
Это функция, которая создает форму комментария и применяет все фильтры, которые вы можете установить.
Итак, я просто пошел дальше и скопировал эту функцию в свою тему functions.php и переименовал его во что-то другое например:
function mytheme_comment_form(...
Затем в моем шаблоне я вызываю <?php mytheme_comment_form() ?>
С помощью моей собственной функции я могу переключать поля по своему усмотрению.
Чем больше я играл с comment_form()
, тем меньше я действительно видел в этом смысл. Наличие всего html-кода формы в comments.php
, как это было изначально, просто казалось более разумным для этого случая, так как я мог легко перемещать вещи по своему усмотрению, и это заставляло меня чувствовать себя немного менее грязным, чем при выполнении вышеперечисленного:)
В любом случае, это возможное решение, нет идея, если это в конечном итоге что-то сломает, но я думаю, что это довольно разумно, и я собираюсь работать с этим!