第一个wordpress插件制作

时间:2015-09-25 05:28:34

标签: wordpress plugins wordpress-plugin

我正在制作我的第一个wordpress插件,因为我想在激活插件时在我的数据库中创建表格。我编写的代码正是wordpress社区所说的,但它不起作用。我尝试了几次,但结果是一样的。我也想知道我的插件在我的主插件菜单中显示2个子菜单​​,就像

我的插件     - 我的插件     - 我的子菜单页

请帮助我对插件开发很新。

res_ols = sm.OLS(y, statsmodels.tools.add_constant(X)).fit()

2 个答案:

答案 0 :(得分:1)

我也找到了问题的解决方案,我面临着与主菜单同名的额外子菜单。

解决方案

//Main admin menus
add_action('admin_menu', 'add_my_custom_menu');

function add_my_custom_menu() {

    //add an item to the menu
    add_menu_page(
        'My Plugin',
        'My Plugin',
        10,
        plugin_dir_path(__FILE__).
        'admin/plugin-form.php',
        '',
        plugin_dir_url(__FILE__).
        'img/contact.png'
    );
    add_submenu_page(
        'my-plugin-name/admin/plugin-form.php',
        'Plugin Setting',
        'Plugin Setting',
        10,
        plugin_dir_path(__FILE__).
        'admin/plugin-form.php',
        'myplugin_options_page'
    );
    add_submenu_page(
        'my-plugin-name/admin/plugin-form.php',
        'Plugin Entries',
        'Plugin Entries',
        10,
        plugin_dir_path(__FILE__).
        'admin/entries.php',
        ''
    );
}

原因是每个第一个子菜单的目标页面/功能将与主菜单目的地相同。

答案 1 :(得分:0)

好的,我自己得到了答案

// Registering plugin
register_activation_hook(__FILE__, 'myplugin_activate');

//Deactivate plugin
register_deactivation_hook(__FILE__, 'myplugin_deactivate');


function myplugin_activate() {

    global $wpdb;
    $table_name = $wpdb - > prefix.
    'my-plugin-table';


    //nstalled_ver = get_option('my-voting-version');

    if ($wpdb - > get_var("show tables like '$table_name' ") != $table_name) {
        require_once(ABSPATH.
            'wp-admin/upgrade-functions.php');
        $sql = "CREATE TABLE  IF NOT EXISTS `".str_replace('`', '', $table_name).
        "` (
        id mediumint(9) NOT NULL AUTO_INCREMENT,
            time datetime DEFAULT '0000-00-00 00:00:00'
        NOT NULL,
        name tinytext NOT NULL,
        text text NOT NULL,
        url varchar(55) DEFAULT ''
        NOT NULL,
        UNIQUE KEY id(id)
    );
    ";
}
require_once(ABSPATH.
    'wp-admin/includes/upgrade.php');
dbDelta($sql);
}