私はすでに正常テーブルを作成しました:なぜこのようにWordPressで新しく作成したテーブルにアクセスできないのですか?
function jal_install() {
global $wpdb;
global $jal_db_version;
$table_name = $wpdb->prefix . "liveshoutbox";
if($wpdb->get_var("show tables like '$table_name'") != $table_name) {
$sql = "CREATE TABLE " . $table_name . " (
id mediumint(9) NOT NULL AUTO_INCREMENT, time bigint(11) DEFAULT '0' NOT NULL, name tinytext NOT NULL, text text NOT NULL, url VARCHAR(55) NOT NULL, UNIQUE KEY id (id));";
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql);
$welcome_name = "Mr. Wordpress";
$welcome_text = "Congratulations, you just completed the installation!";
$insert = "INSERT INTO " . $table_name .
" (time, name, text) " .
"VALUES ('" . time() . "','" . $wpdb->escape($welcome_name) . "','" . $wpdb->escape($welcome_text) . "')";
$results = $wpdb->query($insert);
}
}
jal_install();
をしかし、私はWPが$wpdb->posts
のような内部テーブルを参照する方法として、この表を参照しようとすると:
var_dump($wpdb->liveshoutbox);
出力は次のとおりです。
null
なぜですか?
$wpdb->liveshoutbox
とonly internal table have direct accessにはサポートされていません
テーブルプレフィックスはありますか?何を期待していますか?var_dump($ wpdb-> liveshoutbox); ?テーブルのすべてのエントリ? –
100%ではありませんが、WPはデータベースに新しいテーブルがあることをどのように知っていますか。 $ wpdb-> postsは、WPがobject($ wpdb)の作成時に存在し、割り当てられていることを知っているので動作します。 wpサイトのwpdbクラスは次のとおりです:http://goo.gl/We4o –
'$ wpdb-> wp_liveshoutbox'と' null'を試しました。 – wp2