
Итак, мы уже умеем вносить нужные нам коррективы в тег head страниц WordPress, изменять заголовки станиц и устанавливать свой значок favicon, при формировании этих самых страниц. В этом рецепте мы сделаем плагин, который будет в конце каждого поста или страницы добавлять ссылку-иконку, которая позволит пользователям отправлять ссылку на текущую страницу по почте своим друзьям.
Этот функционал можно реализовать также путем использования filter хука WordPress, к которому мы привяжем нашу функцию, которая в свою очередь будет получать содержимое поста, и сможет внести в него необходимый код, перед тем как пост попадет на страницу.
Как это сделать…
- Перейдите в каталог плагинов WordPress: wp-content/plugins
- Создайте новую директорию для плагина под названием email-page-link
- Зайдите в директорию плагина и создайте php-файл: email-page-link.php
- Откройте ваш новый файл в редакторе кода и добавьте заголовок в верхней части файла плагина:
/*
Plugin Name: Plugin Email Page Link
Plugin URI:
Description: Этот плагин добавляет Email ссылки в конец страницы.
Version: 1.0
Author: Somebody
Author URI: http://xxxxxx.xx/
License: GPLv2
*/
- Иконку email сылки можно поискать здесь:iconarchive.com. Нам понадобится изображение 32х32 пикселя в PNG формате. Сохраните файл иконки в директории плагина: wp-content/plugins/email-page-link под именем mailicon.png
- Добавьте следующую строку кода, которая зарегистрирует callback-функцию в filter хукеthe_content, который инициализируется, когда WordPress будет подготавливать данные перед их размещением в посте или на странице:
add_filter(
'the_content'
,
'email_page_filter'
);
- Далее пропишем реализацию callback-функции:
function
email_page_filter (
$the_content
) {
// Получаем путь к ресурсу-изображению иконки:
$mail_icon_url
= plugins_url(
'mailicon.png'
,
__FILE__
);
$new_content
=
$the_content
;
$new_content
.= "<a title=
'E-mail article link'
href='mailto:someone @somewhere.com?subject=Check out
this interesting article entitled ";
// Получаем заголовок текущей страницы/поста:
$new_content
.= get_the_title();
$new_content
.= "&body=Hi!%0A%0AI thought you would enjoy
this article entitled ";
$new_content
.= get_the_title();
$new_content
.=
".%0A%0A"
;
// Получаем постоянную ссылку текущей страницы/поста:
$new_content
.= get_permalink();
$new_content
.=
"%0A%0AEnjoy!'><img src='"
.
$mail_icon_url
.
"' />Отправить на email</a>"
;
return
$new_content
;
}
- Сохраните и закройте файл плагина. Больше кода в нем не будет.
- Идем в админку нашего WordPress сайта, во вкладку Plugins.
- Находим наш плагин в списке и активируем его.
- Теперь перейдите на страницу вашего WordPress сайта и обновите её чтобы увидеть что в конце каждого поста или страницы появится иконка со ссылкой "отправить на email". Если теперь кликнуть на ссылку — должен инициироваться ваш email — клиент с функцией "написать письмо".
Как это работает…
Подобно предыдущему рецепту, этот WordPress плагин так же использует функцию add_filter для регистрации нашей callback-функции, которая будет вызвана WordPress — ом, когда он будет подготавливать контент перед тем как отобразить его на странице. Когда вызывается наша функция первое, что мы в ней делаем это создаем e-mail иконку со ссылкой. Функция модифицирует оригинальное содержимое поста, добавляя к нему HTML-код нашей иконки-ссылки.
Подобная техника может использоваться для создания блоков ссылок "Поделиться…" с необходимым JavaScript кодом для того что бы посетители могли делиться ссылками со своими друзьями в социальных сетях.
Как только функция возвращает обработанные данные при помощи инструкции return — WordPress передаст эти данные на вход следующей по очереди callback-функции фильтра (мы же помним, что callback-функции привязанные к одному и тому же фильтру выстраиваются в очередь согласно приоритету, указанному в функции add_filter третьим параметром), что бы та в свою очередь могла внести в него свои изменения и так пока данные не пройдут сквозь весь строй callback-функций фильтра. Что бы в итоге представиться пользователю.
В этом рецепте нами использовались помимо прочего еще парочка полезных утилитарных функций WordPress. Хотя они используются в основном при работе с шаблонами, они могут также использоваться плагинами, чтобы мы могли получить доступ к информации об элементах, содержимое которых обрабатываются в текущий момент:
- get_the_title(): Получить заголовок поста/страницы
- get_permalink(): Получить постоянную ссылку на пост/страницу (URL-адрес всегда связан с постом или страницей, даже если, он больше не показывается на на главной странице веб-сайта)