Обновления plugina References, v1.1

Времени придумывать что то самому последние полгода вообще нет, потому дорабатываю свои плагины по заявкам пользователей :).

References в плане доработок — это такая заброшка, которую я делал в рамках доработок сайта obrazovanie66.ru. Там требовалось установить множество связей между разными типами публикаций, а стандартного функционала не было.

Но недавно в support форум написал один чувак и попросил сразу кучу доработок, которые я бы сам вряд ли стал делать для себя (меня всё устраивало). Таким образом, пользователь подопнул прогресс доработок.

В итоге в версию 1.1 были добавлены два существенный дополнения — набор API функций и поддержка shortcode

API функции

Плагин получил набор собственный функций я-ля API. Они позволяют, в дополнении к настройке из админки, конфигурировать связи из PHP кода, к примеру, после регистрации кастомных типов материалов и работать собственно с данными.

Все функции являются статикой класса REFShraAPI. Вот их список и краткое описание (подробнее смотрите в коде файла модуля references.php).

REFShraAPI::config_load($postType = NULL, $refKey = NULL);
// Возвращает текущий массив конфигурации связей. Параметры позволяют отфильтровать список.

REFShraAPI::config_add($postType, $refKey, $linkedTypes, $title)
// Добавляет/Обновляет связь.

REFShraAPI::config_remove($postType, $refKey);
// Удаляет связь (но не трогает данные, которые храняются в post meta) по паре postType / refKey.

REFShraAPI::get($postID = NULL);
// Получает список связей для указанного post->ID. Если ID не указан, функция пытается получить текущий ID сама.

REFShraAPI::update($postID = NULL, $refkey, $postIDs);
// Обновляет данные для связей указанного материала.

Shortcode REF

В плагин добавлена поддержка шот-кода ref. Этот шоткод позволяет вставить список ссылок в нужное место статьи в виде unordered list (<ul>…</ul>). Шоткод может принимать два атрибута и позволяет зацепиться с помощью двух фильтров (apply_filter).

[ref id=»POST_ID» key=»REFERENCE_KEY»]

Т.е есть возможность указать напрямую ID публикации и ключ связи. Если атрибуты не заданы, то используется текущая публикация и выводятся списки всех связей.

Фильтр reference_shortcode_items

Первый фильтр вызывается для массива ссылок, предоставляя возможность переопределить его. Элементы массива — объекты вида:

Если вы захотите поменять данные, то вам нужно будет добавить код вида:

Фильтр reference_shortcode_output

Этот фильтр вызывается, когда уже собран шаблон списка ссылок, прямо перед его выводом. В фильтр передаются те же доп. параметры. Зацепиться вы можете вот так:

Мало букафф? Читайте есчо !

Глючный фильтр shortcode_unautop в Wordpress

Июнь 25, 2010 г.

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

Читать

Получение кода публикации, со страницы которой была отправлена форма WPCF7

Июнь 9, 2018 г.

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

Читать

Анти CSRF в WP

Май 31, 2023 г.

В поддержку по плагину Inactive User Deleter недавно написали, что Wordfence считает мой плагин уязвимым к CSRF. Я всегда пытаюсь реагировать на запросы юзеров, но сначала мне показалось, что опять какая то параноидальная тулза что то там отрапортовала, ...

Читать

Получить ID публикации по адресу (slug, path, name) в WP

Февраль 8, 2018 г.

Wordpress API очень разрослось, и почти на каждый случай есть своя функция. И в этой куче функций найти то, что нужно, бывает не просто. Задача - получить ID публикации по её адресу, а вернее значению slug или post_name. В кодексе есть подходящая ...

Читать
 

Комментарии к «Обновления plugina References, v1.1»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: