prefix . "myplug_prefs";
}


//Создаёт таблицу настроек плагина, устанавливает настройки по умолчанию.
//Вызывается в момент активации плагина
function myplugin_set_options() {
    global $wpdb;

    //Установить опции по умолчанию (они будут храниться в таблице настроек WP)
    add_option('myplug_version', '0.42');
    //1. Будет ли плагин по умолчанию обрабатывать заголовки записей. 0 - нет
    add_option('myplug_modify_title', 0);
    //То же для тела записей. 1 - да
    add_option('myplug_modify_content', 1);


    //Вызов функции повторяется, т.к. данные действия происходят на этапе установки плагина,
    //когда вызов в теле еще не может быть осуществлён
    $myplugin_prefs_table = myplugin_get_table_handle();

    //Установить кодировку таблицы (пустая - использовать умолчальную кодировку MySQL
    $charset_collate = '';

    //Если версия MySQL не ниже указанной - установить кодировку для хранения
    //и сравнения как UTF-8
    if ( version_compare(mysql_get_server_info(), '4.1.0', '>=') )
        $charset_collate = "DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci";

    //Если в БД блога еще нёт таблицы настроек плагина - создать её.
    if($wpdb->get_var("SHOW TABLES LIKE '$myplugin_prefs_table'") != $myplugin_prefs_table) {
        $sql = "CREATE TABLE `" . $myplugin_prefs_table . "` (
            `id` INT NOT NULL AUTO_INCREMENT,
            `title` VARCHAR(255) NOT NULL default '',
            `body` VARCHAR(255) NOT NULL default '',
            UNIQUE KEY id (id)
        )$charset_collate";
        require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); //обращение к функциям WP для
        dbDelta($sql); //работы с БД. создаём новую таблицу
    }
} //Конец функции установки настроек плагина


//При деактивации плагина удаляет настройки и очищает таблицу настроек
function myplugin_unset_options() {
    global $wpdb, $myplugin_prefs_table;
    delete_option('myplug_version');
    delete_option('myplug_modify_title');
    delete_option('myplug_modify_content');
    $sql = "DROP TABLE $myplugin_prefs_table";
    $wpdb->query($sql);
}


//Создаёт кнопку для перехода к страницу настроек плагина в админке WP
function myplugin_admin_page() {
    add_options_page('MyPlugin', 'MyPlugAdminPage', 8, __FILE__, 'myplugin_options_page');
}


//Подгружает перевод плагина из указанной директории
function init_textdomain() {
    if (function_exists('load_plugin_textdomain')) {
        load_plugin_textdomain('example_plugin', 'wp-content/plugins/wp-example_plugin');
    }
}


//Выводит таблицу настроек плагина, обрабатывает изменения настроек, сделанные
//пользоваетеле (обновить настройки, показать обновлённые)
function myplugin_options_page() {
    global $wpdb, $myplugin_prefs_table;

    //Создаём массив с настройками плагина
    $myplugin_options = array(
        'myplug_modify_title',
        'myplug_modify_content',
    );

    //Обработка пользовательского ввода в случае изменения настроек
    $cmd = $_POST['cmd'];

    //Обходим массив с настройками и получаем их значения из таблицы настроек
    foreach ($myplugin_options as $myplugin_opt) {
        $$myplugin_opt = get_option($myplugin_opt);
    }

    //Если пользователь решил сбросить настройки - очищаем таблицу настроек
    if ($cmd == "del_prefs") {
        $sql = "TRUNCATE TABLE $myplugin_prefs_table";
        $wpdb->query( $sql );
?>


query($sql); } ?>

My Plugin

>
>

  • dimio','example_plugin'); ?>


get_var($sql); return $phrase; } //Конец плагина ?>