Благодаря умным разработчикам движка Wordpress, каждый желающий легко может написать свой собственный плагин. Для этого вам нужно знать php на среднем уровне и знать, что вы хотите сделать.
В предыдущем уроке я писал о том, как сделать основу для плагина.
Создадим рабочий плагин блокнота, в котором вы сможете оставлять заметки о чем либо для себя (они не будут публиковаться как обычные записи).
Для этого нам понадобится тело плагина anblog-bloknot.php, и файл для работы с админкой anblog-bloknot-admin.php и anblog-bloknot-admin_autor.php.
Содержание anblog-bloknot.php:
Начало файла
/*
Plugin Name: Блокнот
Description: Плагин позволяет вести свои заметки, которые доступны только вам, в админке. Подробнее о плагине: <a target=”_blank” href=”https://blogjquery.ru/sozdaem-wordpress-plagin-s-adminkoj” >здесь</a>
Version: 1.0
Author: Андрей Н
Author URI: https://blogjquery.ru/
Plugin URI: https://blogjquery.ru/sozdaem-wordpress-plagin-s-adminkoj
License: GPL2
*/
Здесь мы инициировали все данные плагина – его название, описание, автора далее ставим переменные путей для удобства работы:
define(‘ANBLOG_MASSR_DIR’, plugin_dir_path(__FILE__)); //полный путь к корню папки плагина (от сервера)
define(‘ANBLOG_MASSR_URL’, plugin_dir_url(__FILE__)); //путь к корню папки плагина (лучше его использовать)
Добавляем в админку WordPress пункт меню на файл плагина
add_action(‘admin_menu’, ‘anblog_bloknot_menu’ );
Здесь важный момент, anblog_bloknot_menu это название функции что ниже описана:
function anblog_bloknot_menu() {
add_menu_page(‘Блокнот – плагин произвольных записей в админке’, ‘Блокнот’, ‘manage_options’, ‘anblog-bloknot/anblog-bloknot-admin.php’, ”, ‘dashicons-edit’ );
if ( function_exists ( ‘add_menu_page’ ) ) {
add_submenu_page(‘anblog-bloknot/anblog-bloknot-admin.php’, ‘Блокнот – все заметки’, ‘Все заметки’, ‘manage_options’, ‘anblog-bloknot/anblog-bloknot-admin.php’);
add_submenu_page(‘anblog-bloknot/anblog-bloknot-admin.php’, ‘Блокнот – о плагине’, ‘Автор плагина’, ‘manage_options’, ‘anblog-bloknot/anblog-bloknot-admin_autor.php’);
} }
В anblog_bloknot_menu() я добавляю новый пункт меню в админке WordPress за счет функции add_menu_page. В нее я передаю title плагина, затем название пункта меню в админке, права доступа к плагину, путь до файла, который откроется при нажатии на это меню и иконку карандаша.
Также здесь я создаю два подпункта за счет add_submenu_page – они работаю по аналогии с add_menu_page.
Конец файла
Теперь если вы сделаете сборку всего плагина даже с пустыми файлами anblog-bloknot-admin.php и anblog-bloknot-admin_autor.php, то он будет работать.
Из-за нехватки времени я не буду останавливаться на подробном содержании этих файлов – если вам понадобится такой функционал, вы его сможете сделать самостоятельно. Я лучше расскажу об особенностях работы с БД.
Если вы будете править anblog-bloknot-admin.php, то для работы с БД не нужно ее подключать – она автоматически подключается движком. Однако инициализируйте глобальную переменную global $wpdb; После чего вам станут доступны функции (примеры):
UPDATE
$wpdb->query(“UPDATE $wpdb->posts SET post_parent = 7 WHERE post_status = ‘static'”);
INSERT
$wpdb->insert(‘wp_postmeta’, array( ‘post_id’ => $mylastid, ‘meta_key’ => ‘wpcr3_f1’, ‘meta_value’ => $movefile[‘url’]), array( ‘%s’, ‘%s’, ‘%s’ ) );
SELECT
$sel = $wpdb->get_results(“SELECT * FROM wp_postmeta WHERE meta_key = ‘_wp_page_template’ AND meta_value = ‘metrika10.php'”);
if (!empty($sel)) foreach ($sel as $sel_one) {
echo $sel_one->meta_key;
}
и многие другие.
Если вы попробуете запустить php файл админки напрямую из браузерной строки, то выдаст ошибку.
Однако, каталог файлов легко просмотреть, чтобы это исправить, в корневой директории создайте пустой index.html
Как оказалось, разрабатывать плагины для WordPress намного проще, чем например, модули на Joomla. Поэтому этот движок мне нравится все больше и больше.