WordPress. Написание плагина. Как вывести работу плагина на страницу
Я знаю 2 способа решения этой задачи: 1 — это фильтры и 2 — шорткоды.
Постараюсь в этой статье коротко и доступно описать оба способа.
Вывод результата работы плагина через фильтры.
Этот способ предпочтителен в случае если Вы содираетесь изменять данные на многих страницах блога или сайта, если же вам нужно вывести работу плагина на одной странице — лучше воспользуйтесь шоркодами.
И так. Предположем нам надо добавить определенный тект в конец текста каждой страницы. В таком случае наш плагин должен выглядеть следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php /* Plugin Name: ChangeText-filter Description: Плагин изменяет текст всех страниц. Version: 1.0 Author: Kritsky Anton (krion) */ add_filter('the_content', 'my_content_filter'); function my_content_filter($text) { // Изменяем изначальное значение текста $text = $text."дополнительный текст :)"; } ?> |
Результатом работы этого плагина будет добавление в конец текста каждой страницы блога строчки — «дополнительный текст
».
Вывод результата работы плагина через шорткоды.
Этот способ в отличие от вывода через филтры позволяет более удобно выводить работу плакина на определенной странице, и даже на определенном месте.
Шорткод — это что-то типо спец-тега или макросса. В WordPress шорткоды имеют следующий вид — [chorcodename attr1="val1"].
Для начала вставьте в любом месте любой записи или страницы вашего блога эту строку — «[chorcodename attr1="val1"]».
Теперь, чтобы этот шорткод обрабатывался нашим плагином наш плагин должен выглядеть так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php /* Plugin Name: ChangeText-shortcode Description: Плагин изменяет текст всех страниц. Version: 1.0 Author: Kritsky Anton (krion) */ add_shortcode('chorcodename', 'my_shortcode'); function my_shortcode($attr) { return "attr1 = {$attr['attr1']}"; } ?> |
Результатом работы этого плагина будет изменение строки «[chorcodename attr1="val1"]» на «attr1 = val1».
Вот в принцыпе и все, дальше расширяйте эти плагины как Вам угодно
.
