Административная страница плагина

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

Регистрация функций, выполняемых при активации и деактивации плагина:

register_activation_hook($file, 'testplugin_install');
register_deactivation_hook($file, 'testplugin_uninstall');

$file - путь к файлу плагина, полный или в папке wp-content/plugins

Начало кода плагина: опции и таблица плагина в базе данных

<?php
/*
Plugin Name: Test Plugin
Plugin URI: http://mblogm.ru/
Description: Testing
Author: MBlogM
Version: 1
Author URI: http://mblogm.ru/
*/
add_option("testplugin_version", "1.0"); // версия плагина
register_activation_hook(__FILE__, 'testplugin_install');
register_deactivation_hook(__FILE__, 'testplugin_uninstall');
function testplugin_install(){
  global $wpdb;
  $table_name = $wpdb->prefix . "test_tblname";
  // создание таблицы данных плагина в базе данных
  if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) {
 $sql = "CREATE TABLE " . $table_name . " (
  id mediumint(9) NOT NULL AUTO_INCREMENT,
  time bigint(11) DEFAULT '0' NOT NULL,
  name tinytext NOT NULL COLLATE utf8_general_ci,
  text text NOT NULL COLLATE utf8_general_ci,
  UNIQUE KEY id (id)
 );";
  require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
  dbDelta($sql);
 // добавление записи в таблицу
  $the_name="name";
  $the_text="text";
  $x = $wpdb->insert( $table_name,
                      array('time' => current_time('mysql'),
                             'name' => $the_name,
                             'text' => $the_text ) );
}
...
  }?>

Подробнее о создании таблиц в базе данных

Добавление страницы опций плагина в админку

В коде плагина нужно

  • Создать и зарегистрировать функцию создания меню (ссылки на страницу настроек плагина) с помощью хука admin_menu
  • Создать HTML-код страницы опций плагина, которая выводится по щелчку на ссылке в меню
Ссылка на страницу плагина

Плагин может создать в админке свое меню верхнего уровня и подменю

<?php add_menu_page( $page_title, $menu_title, $capability,
                     $menu_slug, $function, $icon_url, $position ); ?>
<?php add_submenu_page( $parent_slug, $page_title, $menu_title,
                        $capability, $menu_slug, $function); ?>

Здесь parent_slug - это имя родительского меню плагина или стандартного
файла админки WordPress, например,
для меню Параметры (Settings): add_submenu_page ('options-general.php',...)

Для добавления подменю (ссылки на страницу плагина) в стандартные меню есть функции-оболочки

add_dashboard_pageadd_pages_pageadd_users_page
add_posts_pageadd_comments_pageadd_management_page
add_media_pageadd_theme_pageadd_options_page
add_links_pageadd_plugins_page

например:
<?php add_options_page( $page_title, $menu_title, $capability, $menu_slug, $function); ?>
Подробнее

Продолжение кода плагина: административная страница плагина
<?php
add_action('admin_menu', 'testplugin_menu'); // регистрация

// 8 - права доступа не ниже администратора
function testplugin_menu() {
  add_options_page('Test Plugin Options', 'Test Plugin', 8, __FILE__, 'testplugin_options');
}

function testplugin_options() {
  if (!current_user_can('8'))  {
  wp_die( __('У вас нет прав доступа на эту страницу.') );
  }
  echo '<div class="wrap">';
  echo '<p>Здесь выводится HTML-форма для выбора опций.</p>';
  echo '</div>';
}
?>
  • Функция add_action вызывает "хук", который регистрирует функцию testplugin_menu()
  • Функция testplugin_menu() добавляет ссылку на страницу плагина (Test Plugin') в админку в меню Параметры (Settings) с помощью функции add_options_page.
  • Функция testplugin_options() создает отображаемые элементы страницы настроек плагина и PHP-код для обработки.

Roles and Capabilities

Функции WordPress для работы с опциями плагина, хранящимися в базе данных:

add_option($option_name, $value, $deprecated, $autoload); // создает новую запись в таблице wp_options
get_option($option_name); // извлекает значение настройки
update_option($option_name, $newvalue);// обновляет настройку (автоматически добавляет)
delete_option(option_name) //удаляет настройку

Подробнее

Запросы к базе данных

Creating Options Pages

register_setting()

Удаление настроек плагина при деактивации:

function testplugin_uninstall () {
	global $wpdb, $test_tblname;
	delete_option('testplugin_version');
	$sql = "DROP TABLE $test_tblname";
	$wpdb->query($sql);
}
<!--nextpage-->
Опубликовано в рубрике Создание плагина |

Один комментарий на «Административная страница плагина»

  1. Алексей говорит:

    нечего не понил!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *