Плагин для WordPress — Terms Descriptions (версия 1.2.0)

Владимир | | WordPress, Разное.

Приветствую всех!

На днях доделал очередную версию моего плагина для WordPressTerms Descriptions. Скачать вы её можете на отсюда. Либо, если вы уже используете этот плагин, через систему обновлений WP.

Source

После выхода предыдущего релиза прошло довольно много времени и накопилось большое количество замечаний и предложений по его доработке. Сразу хочу сказать большое спасибо всем, кто помогал советами и идеями, присылал подробные отчеты об ошибках. Эта информация очень пригодилась!

В этой версии, конечно, реализованы не все пожелания и она не идеальна, но, надеюсь, что работать с ней будет удобнее, чем с предыдущими 😉

Примечание. Посмотреть описание предыдущих версий плагина можно в статье: Плагин WordPress: Terms Descriptions.

Рассмотрим по порядку все основные изменения.

Интерфейс

Переделан практически полностью. Надеюсь, будет удобнее 😉

В предыдущих версиях плагин создавал всего одну страницу в админке WP. На которой были расположены форма создания новых терминов, таблица с терминами и форма с настройками. Для первых версий плагина этого было достаточно. Но добавлять новые формы было сложно, т.к. страница получалась очень загроможденной.

Сейчас плагин создаёт три административных страницы, которые находятся в меню «Термины».

На первой странице (рис.1) размещена форма добавления новых терминов и таблица с уже существующими терминами.

terms_descriptions_1

Рис.1.

Принцип создания термина остался тем же, но форма изменилась. Во-первых, сейчас добавлена нормальная поддержка произвольных типов записей WP (custom post types). Во-вторых, для выбора записи (поста) используется поле с автокомплитом, а не выпадающий список с заголовками постов (рис. 2). Как оказалось, выпадающий список практически бесполезен, если блог содержит несколько сотен записей.

Рис. 2.

Также добавлена пагинация (листалка) для таблицы с терминами и возможность обновления постоянных ссылок (об этом чуть ниже).

На второй странице находится форма со всеми основными настройками блога (рис. 3).

Рис. 3.

На третьей странице (рис. 4) – инструменты для экспорта/импорта данных плагина и для пакетной загрузки терминов.

Рис. 4.

Хранение терминов

Способ хранения и работы с терминами также был существенно переработан. Поэтому после обновления плагина в админке появится сообщение с кнопкой «Обновить БД». Я настоятельно рекомендую сделать резервную копию базы перед выполнением этой операции.

Причин для внесения этих изменений было две.

1) Оказалось, что часть пользователей создаёт большие списки терминов. И для работы с ними целесообразно создать отдельную таблицу.

2) Функция get_permalink, которая используется в WP для формирования ЧПУ, при определённых структурах ссылок оказывается довольно ресурсоемкой. Чтобы исключить её использование при формировании страниц блога, формирование ссылки теперь осуществляется один раз при создании термина. А для того, чтобы плагин правильно работал после изменения структуры URL, добавлена возможность пакетного обновления ссылок из админки. Кнопка «Обновить ссылки» находится справа над таблицей терминов (рис. 1). Т.е. если меняете структуру ЧПУ не забудьте обновить ссылки терминов.

Парсеры

Одними из самых неприятных проблем, с которыми я столкнулся при поддержке плагина, были конфликты с другими плагинами.

На сегодняшний день, существует множество плагинов и тем, которые изменяют содержимое постов. Предугадать все последствия таких изменений практически не реально. И хоть я и старался свести такие проблемы к минимуму, избежать их не получилось. Чем сложнее становился анализ текста, тем больше проблем возникало.

Например, количество багрепортов увеличилось в несколько раз после того как я добавил поддержку кавычек.

Повторения этой ситуации с новой версией я не хотел, поэтому принял решение добавить поддержку нескольких алгоритмов установки ссылок для терминов.

Сейчас в дистрибутиве плагина есть два парсера.

1) Простой. Ставит ссылку на текст, который полностью совпадает с одним из терминов.

2) Простой с поддержкой кавычек. Работает также как и простой, но дополнительно проверяет символы вокруг найденного термина, и, если они являются кавычками, преобразует термин в ссылку.

Переключение между парсерами осуществляется на странице Термины->Настройки (рис. 3).

Пакетная загрузка терминов

Позволяет загрузить сразу несколько терминов. Удобно, если у вас есть список терминов, сформированный с помощью какой-нибудь программы.

Форма пакетной загрузки находится на странице Термины -> Инструменты.

Формат добавления терминов следующий. Каждый термин должен быть записан в отдельной строке. Можно указать несколько словоформ для терминов. Разделитель словоформ – символ |. Т.е. точно так же, как и при добавлении нового термина. Но есть важное отличие, в качестве последней словоформы нужно указать ссылку. Ссылкой может быть обычный URL (наличие http:// обязательно) или id поста (пост нужно создать до добавления терминов).

Например,

яблоко|яблоки|яблок|яблочный|http://apples.com
груша|груш|груши|24

и т.д.
здесь, 24 – id поста на который нужно поставить ссылку.

Хочу предупредить. Добавление терминов занимает некоторое время. И, при попытке загрузить большой список, время выполнения скрипта может превысить лимит, установленный хостером. В таких случаях единственный вариант решения (если не считать вариант переезда на выделенный сервер) – загружать список по частям.

Заключение

В общем, надеюсь, новая версия вам понравится и позволит сделать работу более комфортной 😉 И, конечно, жду ваших предложений, пожеланий и баг репортов 😉

UPD. Отдельное спасибо Borisa Djuraskovic за перевод на Сербо-Хорватский язык.

Успехов!

Плагин разработан с помощью PhpStorm IDE — лучшим инструментом для профессиональной разработки на PHP.