Створюємо нові поля для коментарів WordPress
Як краще створювати нові поля?
Заходимо в розділ адмінки "Плагіни" і бачимо наш плагін:
Його вже можна активувати, але на даний момент він "порожній" і жодних функцій поки що не виконує.
Код чудово працює, але якщо не потрібно змінювати вигляд дефолтних полів, то його можна спростити, а саме додати тільки своє поле:
Створення полів для всіх користувачів


Тобто. в результаті потрібно вивести поля в момент спрацювання однієї з подій: comment_form_logged_in_after або comment_form_after_fields .
Щоб відобразити 5 радіокнопок для рейтингу, запускаємо цикл. Цю ділянку коду можна змінити під себе, наприклад замість 5 вказати 10.
Збереження даних із полів у фронт-енді
Зауважте, що для захисту ми очищаємо поля через sanitize_text_field().
меню
Перевірка заповнення обов'язкових полів
Відображення вмісту метаполів у фронт-енді
Змінити код форми і додати потрібні дані можна через фільтр comment_text.
Два варіанти виведення рейтингу
Розглянемо два варіанти, як можна було б відобразити рейтинг.
Зірки рейтингу із власних картинок
У першому варіанті ми будемо відображати зображення зірок, які мають бути у вигляді картинок у папці плагіна:
Якщо, наприклад, користувач поставив четвірку, шлях до картинки буде: http://site.ru/wp-content/plugins/extend-comment/images/4star.gif . Звичайно, картинки повинні існувати.
Зірки рейтингу з іконного шрифту Dashicons
Другий варіант за алгоритмом такий самий, але тут будемо використовувати рідну функцію WordPress wp_star_rating(), яка сама додасть красиві іконки зірок:
У фронт-енді функція wp_star_rating() непрацює, її треба підключити. Також потрібно підключити шрифти 'dashicons'.
Шрифт 'dashicons' має об'єм 45,3Кб без gzip стиснення і 28.3Кб з включеним на сервері стиском. А скільки займатимуть місця ваші картинки? Який із способів вибрати – вирішувати вам.
Виведення метаполів у адмінці
Отримує дані метаполів.
wp_nonce_field() виводить перевірочне (захисне, одноразове) приховане поле форми, підвищуючи безпеку.
Очищає вміст метаполів за допомогою esc_attr() та виводить на екран. Нічого не перевіряє. Якщо даних немає, поле буде порожнє.
Збереження метаполів в адмінці
Тут ми підключимося до хука edit_comment і робимо таке:
Перевіримо nonce-код і якщо перевірка не пройде – зупинимо виконання функції.
Єдине, правилом хорошого тону вважається видалення даних, створювані плагіном, у разі - наших метаполів. Адже, якщо видалити плагін, то дані плагіна залишаться нікому не потрібними.
Ми вже розповідали, як правильно видалити плагін WordPress, тому докорінно плагіна створимо файл uninstall.php і пропишемо в нього:
Висновок середнього рейтингу
У цій статті ми розібралися: