Вторая вещь, которая меня поражает в WordPress — это невозможность даже для зарегистрированных пользователей редактировать свои комментарии (первая — невозможность установить свой аватар без сторонних сервисов).
Эта инструкция и посвящена тому, как разрешить посетителям редактировать свои комментарии в WordPress.
Simple Comment Editing for WordPress
Нам нужен плагин Simple Comment Editing. Устанавливаете и активируете его. Теперь каждый автор комментария видит для своего комментария обратный отсчёт, показывающий, сколько времени у него осталось для редактирования комментария. По умолчанию, это пять минут.
Если вас это устраивает — отлично. Если хотите что-то изменить, то вас ждёт сюрприз — страницы настроек у плагина нет. Тем не менее, настройки можно менять. Перейдите к списку плагинов (Плагины -> Установленные), найдите там Simple Comment Editing и выберите «Изменить».
Откроется исходный код одной из страницы плагинов — он то нам и нужен. Если вы хотите увеличить доступное для редактирования время, то найдите строку
В ней цифру 5 замените на любое желаемое время. Максимальное значение — 90.
Если посмотреть следующие строчки
То становится понятно, как с лёгкостью это ограничение снять.
Есть ещё один полезный фильтр — sce_allow_delete. Он устанавливает, могут ли пользователи удалять свои комментарии. По умолчанию он включен на «пользователи могут удалять свои комментарии». Если вы хотите это изменить, то строку
поменяйте на
Даже при включенной этой настройки нет никакой кнопки для удаления комментария. Оказывается, порядок удаления следующий: пользователь сохраняет пустой комментарий, при этом у него возникает запрос — хочет ли он его удалить. Согласитесь, если бы я не сказал, не каждый бы догадался.
Мы можем проинформировать пользователей об этой возможности. Для этого найдите строку
И сразу после неё добавьте ещё одну:
Получается так:
Понятно, что можно переместить надпись в другое место, настроить стили для неё и прочее.
Важное замечание — поскольку мы редактируем исходный код, а не файл с настройками, то при обновлении плагина все изменения будут теряться!
Для этого плагина доступны следующие фильтры:
Эта инструкция и посвящена тому, как разрешить посетителям редактировать свои комментарии в WordPress.
Simple Comment Editing for WordPress
Нам нужен плагин Simple Comment Editing. Устанавливаете и активируете его. Теперь каждый автор комментария видит для своего комментария обратный отсчёт, показывающий, сколько времени у него осталось для редактирования комментария. По умолчанию, это пять минут.
Если вас это устраивает — отлично. Если хотите что-то изменить, то вас ждёт сюрприз — страницы настроек у плагина нет. Тем не менее, настройки можно менять. Перейдите к списку плагинов (Плагины -> Установленные), найдите там Simple Comment Editing и выберите «Изменить».
Откроется исходный код одной из страницы плагинов — он то нам и нужен. Если вы хотите увеличить доступное для редактирования время, то найдите строку
PHP:
$comment_time = absint( apply_filters( 'sce_comment_time', 5 ) );
В ней цифру 5 замените на любое желаемое время. Максимальное значение — 90.
PHP:
$comment_time = absint( apply_filters( 'sce_comment_time', 90 ) );
Если посмотреть следующие строчки
PHP:
if ( $comment_time > 90 ) {
$this->comment_time = 90;
} else {
$this->comment_time = $comment_time;
}
Есть ещё один полезный фильтр — sce_allow_delete. Он устанавливает, могут ли пользователи удалять свои комментарии. По умолчанию он включен на «пользователи могут удалять свои комментарии». Если вы хотите это изменить, то строку
PHP:
private $allow_delete = true;
PHP:
private $allow_delete = false;
Мы можем проинформировать пользователей об этой возможности. Для этого найдите строку
PHP:
$textarea_buttons .= sprintf( '<button class="sce-comment-cancel">%s</button>', esc_html__( 'Cancel', 'simple-comment-editing' ) );
PHP:
$textarea_buttons .= '<div>Для удаления комментария просто сохраните пустой комментарий.</div';
Понятно, что можно переместить надпись в другое место, настроить стили для неё и прочее.
Важное замечание — поскольку мы редактируем исходный код, а не файл с настройками, то при обновлении плагина все изменения будут теряться!
Для этого плагина доступны следующие фильтры:
- sce_loading_img — Изменение загрузочного изображения
- sce_comment_check_errors — Добавление пользовательских сообщений ошибок
- sce_allow_delete — Позволять удалять комментарии или нет
- sce_get_comment — Добавить дополнительные данные в объект комментария
- sce_extra_fields — Добавить дополнительный HTML в интерфейс редактирования
- sce_buttons — Добавить дополнительные кнопки в интерфейс редактирования (помимо Отмена и Сохранить)
- sce_content — Модифицировать отредактированный вывод HTML
- sce_save_before — Модифицировать объект комментария перед сохранением через AJAX
- sce_can_edit — Может пользователь редактировать комментарий или нет
- sce_security_key_min — Как много ключей безопасности будут сохранены как метаданные поста
- sce_load_scripts — Загружать скрипт SCE или нет
- sce_comment_time — Как долго разрешать редактировать комментарий (в минутах)