1

私はWordPressを初めて使用します。プラグインを作成して、クライアントが既存のWPサイトとiPhoneアプリの動的情報をすべて1か所で更新できるようにします。これには、2つのテーブルを作成する必要があります。これらのテーブルを作成する必要があると思うものを書きましたが、プラグインをアクティブにすると、テスト用のWordPressサイトでこのエラーがスローされます。

The plugin generated 1 characters of unexpected output during activation. If you notice “headers already sent” messages, problems with syndication feeds or other issues, try deactivating or removing this plugin.

データベースを調べると、テーブルが作成されていないこともわかります。私はここや他の場所で他のいくつかの投稿を見てきましたが、どこが間違っているのかを特定することはできません。助言がありますか?:

<?php
// Plugin info omitted

register_activation_hook(_FILE_, 'event_manager_install');
register_deactivation_hook(_FILE_, 'event_manager_uninstall');

// Installer
function event_manager_install() {
global $wpdb;

// Builds queries for custom event and speakers tables
$event_table = $wpdb->prefix . 'events';
$eventSql = "CREATE TABLE $event_table (
  id mediumint(9) NOT NULL AUTO_INCREMENT,
  venueName VARCHAR(250) DEFAULT '' NOT NULL,
  date datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
  address text NOT NULL,
  registrationDeadlineDate datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
  UNIQUE KEY id (id)
);";

$speaker_table = $wpdb->prefix . 'speakers';
$speakerSql = "CREATE TABLE $speaker_table (
  id mediumint(9) NOT NULL AUTO_INCREMENT,
  eventID mediumint(9) NOT NULL,
  speaker text NOT NULL,
  UNIQUE KEY id (id)
);";

// Executes queries
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($eventSql);
dbDelta($speakerSql);
}

// Uninstaller
function event_manager_uninstall() {
global $wpdb;

// Creates queries to delete custom tables
$event_table = $wpdb->prefix . 'events';
$speaker_table  = $wpdb->prefix . 'speakers';
$eventSql = "DROP TABLE " . $event_table . ";";
$speakerSql = "DROP TABLE " . $speaker_table . ";";

// Executes deletion queries
$wpdb->query($eventSql);
$wpdb->query($speakerSql);
}
?>
4

1 に答える 1

2

__FILE__問題は、定数の名前のつづりを間違えたことです。(注:2つのアンダースコア)に置き換えるだけ_FILE_で、問題なく機能するはずです。__FILE__

于 2012-08-17T20:27:51.903 に答える