Статья Включение в WordPress возможности редактировать и удалять комментарии посетителями

P

Pirnazar

Well-known member
18.07.2018
162
225
Вторая вещь, которая меня поражает в WordPress — это невозможность даже для зарегистрированных пользователей редактировать свои комментарии (первая — невозможность установить свой аватар без сторонних сервисов).

Эта инструкция и посвящена тому, как разрешить посетителям редактировать свои комментарии в WordPress.

Simple Comment Editing for WordPress

Нам нужен плагин Simple Comment Editing. Устанавливаете и активируете его. Теперь каждый автор комментария видит для своего комментария обратный отсчёт, показывающий, сколько времени у него осталось для редактирования комментария. По умолчанию, это пять минут.

30954


Если вас это устраивает — отлично. Если хотите что-то изменить, то вас ждёт сюрприз — страницы настроек у плагина нет. Тем не менее, настройки можно менять. Перейдите к списку плагинов (Плагины -> Установленные), найдите там 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';
Получается так:
30955


30956


Понятно, что можно переместить надпись в другое место, настроить стили для неё и прочее.

Важное замечание — поскольку мы редактируем исходный код, а не файл с настройками, то при обновлении плагина все изменения будут теряться!

Для этого плагина доступны следующие фильтры:
  • 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 — Как долго разрешать редактировать комментарий (в минутах)
Другие возможности и примеры на официальной странице плагина:
 
explorer

explorer

Red Team
05.08.2018
774
1 679
Всем привет, хочу сделать на сайте поиск, он есть но хочется чтоб менюшка поиска сама лупа была всегда слева по центру экрана на всех страницах сайта, как такое реализовать на wordpress может быть есть какой-то плагин или кодом? гуглил ничего не нашел вот решил тут спросить
Код поиска заключи в div, самому div присвой класс, а класс задай в CSS. Выглядеть будет так:

HTML:
<div class="center">
тут код поиска
</div>
Класс в CSS:

CSS:
.center{display: block;margin: 0 auto;float:none}
Чтобы это было на всех страницах сайта, div нужно делать в шапке сайта, или как вариант в шаблоне страниц.
 
  • Нравится
Реакции: The Codeby
Мы в соцсетях: