Разрешатель
В старых версиях ВП, чтобы комментарии закрывались автоматически по прошествии определенного количества времени, приходилось писать небольшой хак или пользоваться специальным плагином. В новой версии разрабы наконец это учли и переписали его тютелька в тютельку в обновленный код движка.
Естественно, это принесло новую проблему — а что делать с постами, к которым не хочешь закрывать комментарии, даже если пройдет сто-тыщь-миллионов лет? Конечно, таких актуальных тем немного — котятки, да сиськи, — но кому-то это ведь важно, да? Меня вот всегда бесило автозакрывание комментариев у Бирмана только начнется самое интересное. Да и Роман Настенко тут жалуется.
В общем, по-быстрому накатал еще один маленький хак под этот странный движок, плагин «Разрешатель».
Теперь, если какому-то посту добавить произвольное поле с названием «allow_comments» и любым непустым значением, комментарии — о, чудо! — останутся открытыми.
При этом, заметьте, простое убирание проверок в шаблоне бы ничего не дало, как и подключение через function.php, т.к. защита от дурака двухуровневая — и в wp-comments-post.php.
Также пришлось учесть, что в разных шаблонах могут использоваться разные подходы к проверке — либо ('open' == $post->comment_status), либо comments_open($post->ID) (второй, конечно, правильнее). Но все работает и без изменений в шаблоне.
Впрочем, вы напишите, если плагин не так как-то будет работать, да?
Слушайте, раз так — может, у вас есть собственное недовольство какими-то мелкими особенностями движка? Делитесь! На большое что-то время не найду, а маленькое — всегда пожалуйста.




О, спасибо, попробую :)
Мое недовольство мелким недостатком движка: мне не нравится то, что есть: iskariot.ru/category/process/
и есть iskariot.ru/process/. Хотелось бы избавится от этого лишнего /category/
lilumi, просто, в настройках укажи вместо «/category» «/...» или как-то так — я у себя так сделал и отлично работает.
@lilumi: да, спасибо. Я все забываю похачить свой ВП — там надо, на самом деле, надо подепить хуком некоторые функции, выводящие категории и убирать лишнюю папку.
Роман не прав, т.к. если оставить
"/"или"", то такие ссылки будут оставаться (по крайней мере, в 2.6).В зависимости от ЧПУ, будет по-разному. Но для /%category%/%postname%/ все просто — можно не мучиться плагинами, а добавить в functions.php следующее:
По идее, этого хватит, так как все связанные функции для построения ссылки используют get_category_link (). И без /category/ ссылка все же будет спокойно работать.
Хотя, может быть, есть решение проще, или в 2.7 проблему действительно пофиксили.
Ага, посмотрел. Правильно писать просто «.». Работает, и раньше, чем в версии 2.7.
О, спасибо, вот и простое решение.
Ээээ, там же вроде можно убрать галочку с опции: «Автоматически отключать комментирование для записей старше ХХ дней». Зачем хаки?
Эээээ, но тогда можно будет комментировать все записи старше XX дней???
Сейчас заливая на wordpress.org/extend/plugins/allowcomments/ обнаружил маленький косяк в плагине, так что обновил версию. Доступна и по старой ссылке, и на официальном сервере ВП.
@Роман Настенко: попробовал с просто точкой «.» — не работает. ссылки действительно такими становятся, но при открытии — 404
@lilumi: я себе на 2.6 поставил, работает, как ни странно. Попробуй поставить сначала другой шаблон (любой, или «/»), потом обнови.
Если не работает, хук, написанный вверху, тоже не поможет.
да на 2.6.3. проверил — работает, а на 2.7 — нет. обидно, досадно. Может еще какие-то варианты есть?
Не вижу ничего страшного в некропостерах...
Если это не спам, то на здоровье — мало ли какое политическое событие пятилетней давности неожиданно могло всколыхнуть сознательного гражданина %)
@lilumi: так у меня в 2.7 на локалхосте работает. Ты сбрасывал настройки пермалинков? Можно еще попробовать залезть в rewrite.php и на 1008 строке
$this->category_structure = trailingslashit( $this->front . 'category' );заменить на
$this->category_structure = trailingslashit( $this->front );Если это работает, то можно попробовать захучить это, чтобы не вмешиваться в файлы ВП.
Прекращайте засорять эфир :-)
Всё уже давно разложено по полочкам.
Все фильтры и хуки испробованы. Ничего не поможет если вы используете подкатегории.
То бишь иерархическую схему — одна категория внутри другой. Нужно лезть в нагромождение хлама в RewriteRules. А там экстрим :-)
Если короче то:
URL подкатегорий вида /category1/category2/categoryn без /category/ (или какие вы там символы ввели в админке WP) не работают.
Одномерные, не вложенные работают.
Интересный плагин, а можно использовать ваш код для написания своего плагина под flatpress?
@Styler: если он подойдет, то — почему бы и нет.
А я вообще не закрываю комментарии — большинство постов на «вечные» темы. :D Хотя, может просто потому, что мой блог слишком молод еще. Вот будет годик- посмотрю стоит или нет :)
Обновил плагин. Теперь разрешать комментарии к посту навсегда можно не только устанавливая вручную кастомфилд, но и просто щелкая по соответствующему чекбоксу (там новая панелька появляется в форме создания/редактирования поста).
Обратная совместимость есть, со старыми постами ничего не случится.