Php-开发Wordpress插件
我正在开发我的第一个Wordpress插件,现在,它应该做的就是:Php-开发Wordpress插件,php,wordpress,plugins,Php,Wordpress,Plugins,我正在开发我的第一个Wordpress插件,现在,它应该做的就是: 安装时:创建表 我的代码: if ( ! class_exists ( 'My_Plugin' ) ) { class My_Plugin { /** * Construct the plugin object **/ public function __construct () { // register actions } /** * Ac
if ( ! class_exists ( 'My_Plugin' ) )
{
class My_Plugin
{
/**
* Construct the plugin object
**/
public function __construct ()
{
// register actions
}
/**
* Activate the plugin
**/
public static function activate ()
{
global $wpdb;
$tableName = tableName ( $wpdb );
if ( ! tableExists ( $wpdb , $tableName ) )
{
$sql = "CREATE TABLE " . $tableName . " (
id INT(9) UNSIGNED NOT NULL AUTO_INCREMENT,
any_column VARCHAR(255) NOT NULL,
UNIQUE KEY id (id)
);";
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql);
}
}
/**
* Deactivate the plugin
**/
public static function deactivate ()
{
// Nothing
}
// Return table name
public function tableName ( $wpdb , $tableName = 'new_table' )
{
$tableName = $wpdb->prefix . $tableName;
return $tableName;
}
// Check if table already exists
public function tableExists ( $wpdb , $tableName )
{
try
{
$result = $wpdb->query("SELECT 1 FROM $tableName LIMIT 1");
}
catch ( Exception $e )
{
return FALSE;
}
return $result !== FALSE;
}
}
}
if ( class_exists ( 'My_Plugin' ) )
{
// Activation and Deactivation hooks
register_activation_hook ( __FILE__ , array ( 'My_Plugin' , 'activate' ) );
register_deactivation_hook ( __FILE__ , array ( 'My_Plugin' , 'deactivate' ) );
// Instantiate the plugin class
$plugin_template = new My_Plugin ();
}
但返回此错误:
Fatal error: Call to undefined function tableName() in /www/htdocs/path/to/file.php on line
但我看不出我的错误,我真的不知道为什么这个函数是未定义的…有人可以帮我吗
你好 tableName()
不是一个全局函数,它是myu插件的一种方法。简单的方法是将activate()
和deactivate()
转换为非静态函数,并使用$this->tableName()
及
否则,您需要在activate()
中构造一个新的My\u Plugin
实例,然后通过该-$class->tableName()
访问它
您可以查看以了解更多信息。tableName()
不是一个全局函数,它是myu插件的一种方法。简单的方法是将activate()
和deactivate()
转换为非静态函数,并使用$this->tableName()
及
否则,您需要在activate()
中构造一个新的My\u Plugin
实例,然后通过该-$class->tableName()
访问它
您可以查看以了解更多信息。tableName()
不是一个全局函数,它是myu插件的一种方法。简单的方法是将activate()
和deactivate()
转换为非静态函数,并使用$this->tableName()
及
否则,您需要在activate()
中构造一个新的My\u Plugin
实例,然后通过该-$class->tableName()
访问它
您可以查看以了解更多信息。tableName()
不是一个全局函数,它是myu插件的一种方法。简单的方法是将activate()
和deactivate()
转换为非静态函数,并使用$this->tableName()
及
否则,您需要在activate()
中构造一个新的My\u Plugin
实例,然后通过该-$class->tableName()
访问它
您可以查看以了解更多信息。此处是插件激活中创建表的函数
注册激活挂钩(\uuuuu文件\uuuuu,“创建表”)
函数create_tabletag()
{
require_once(ABSPATH.'wp admin/includes/upgrade.php');
$query=“创建表(如果不存在)选项卡列表(
tab_id INT非空自动增量主键,
名字VARCHAR(40),
isvisible VARCHAR(20)
)ENGINE=MYISAM字符集utf8校对utf8_常规_ci;“;
dbDelta($query);//此函数用于创建表
}
这里是插件激活中创建表的函数
注册激活钩子(\uuuu文件\uuuu,“创建表”)
函数create_tabletag()
{
require_once(ABSPATH.'wp admin/includes/upgrade.php');
$query=“创建表(如果不存在)选项卡列表(
tab_id INT非空自动增量主键,
名字VARCHAR(40),
isvisible VARCHAR(20)
)ENGINE=MYISAM字符集utf8校对utf8_常规_ci;“;
dbDelta($query);//此函数用于创建表
}
这里是插件激活中创建表的函数
注册激活钩子(\uuuu文件\uuuu,“创建表”)
函数create_tabletag()
{
require_once(ABSPATH.'wp admin/includes/upgrade.php');
$query=“创建表(如果不存在)选项卡列表(
tab_id INT非空自动增量主键,
名字VARCHAR(40),
isvisible VARCHAR(20)
)ENGINE=MYISAM字符集utf8校对utf8_常规_ci;“;
dbDelta($query);//此函数用于创建表
}
这里是插件激活中创建表的函数
注册激活钩子(\uuuu文件\uuuu,“创建表”)
函数create_tabletag()
{
require_once(ABSPATH.'wp admin/includes/upgrade.php');
$query=“创建表(如果不存在)选项卡列表(
tab_id INT非空自动增量主键,
名字VARCHAR(40),
isvisible VARCHAR(20)
)ENGINE=MYISAM字符集utf8校对utf8_常规_ci;“;
dbDelta($query);//此函数用于创建表
}
// Instantiate the plugin class
$plugin_template = new My_Plugin ();
register_activation_hook ( __FILE__ , array ( $plugin_template , 'activate' ) );
register_deactivation_hook ( __FILE__ , array ( $plugin_template , 'deactivate' ) );
public function activate ()
{
global $wpdb;
$tableName = $this->tableName ( $wpdb );
if ( ! $this->tableExists ( $wpdb , $tableName ) )
{
$sql = "CREATE TABLE " . $tableName . " (
id INT(9) UNSIGNED NOT NULL AUTO_INCREMENT,
any_column VARCHAR(255) NOT NULL,
UNIQUE KEY id (id)
);";
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql);
}
}