REGISTER_ACTIVATION_HOOK不创建表

时间:2018-09-03 作者:Puspalata Panigrahi

由于我的问题是重复的,我仍然是代码中的东西,没有找到解决方案。

我在插件中创建了一个函数,以便在激活插件后创建一个表。但激活插件后,表不会创建。我已将此代码放在插件的主文件中。

请忽略我的代码:

register_activation_hook(__FILE__,\'like_dislike_counter_install\');

function like_dislike_counter_install() {
    global $wpdb;

    $table_name = $wpdb->prefix . \'subpostvotingcount\';
    $charset_collate = $wpdb->get_charset_collate();

    $sql = "CREATE TABLE $table_name (
          sno int(10) NOT NULL AUTO_INCREMENT,
          postid int(50) NOT NULL,
          subpostid varchar(5) NOT NULL,
          votingcount varchar(50) NOT NULL,
          postclicktime timestamp(5) NOT NULL DEFAULT CURRENT_TIMESTAMP
        )  $charset_collate;";

    require_once( ABSPATH . \'wp-admin/includes/upgrade.php\' );
    dbDelta( $sql );        
}

1 个回复
SO网友:nmr

创建自动列sno int(10) NOT NULL AUTO_INCREMENT, 忘记将其定义为键,添加PRIMARY KEY (sno) 到您的sql。

$sql = "CREATE TABLE $table_name (
      sno int(10) NOT NULL AUTO_INCREMENT,
      postid int(50) NOT NULL,
      subpostid varchar(5) NOT NULL,
      votingcount varchar(50) NOT NULL,
      postclicktime timestamp(5) NOT NULL DEFAULT CURRENT_TIMESTAMP,
      PRIMARY KEY (sno)
    )  $charset_collate;";
如果仍然无法工作,请尝试更换postclicktime timestamp(5) 具有postclicktime timestamp. Before MySQL 5.6, MySQL不支持将分数秒存储为时间戳数据类型的一部分。

结束

相关推荐

插件放置在/wp-content/plugins内的文件夹中时不保存值

我得到了WordPRess插件的以下代码,它在每个页面/后期编辑屏幕上添加了两个自定义输入。然后将这些值保存并输出到前端页面的标题中。如果代码位于内部,则可以正常工作。php文件并直接放入“wp内容/插件”。然而,如果我把它放在插件(如“wp-content/plugins/myplugin”)中自己的文件夹中,那么在通过编辑屏幕保存帖子/页面时,输入字段不会保存。此外,它不会向前端页面html标题部分输出任何内容。这似乎是一个被放弃的项目,所以我无法与原始开发人员一起制定解决方案。然而,代码中的某些内容