私はプラグインの開発を開始しており、Wordpress Codexサイトのチュートリアルに従っています。私は今、立ち往生しています - 私はwp_
を使用して挿入された「wp_imlisteningto」と呼ばれるデータベース、持っている:
$table_name = $wpdb->prefix . "imlisteningto";
プラグインが有効化されます。
データベース自体は、プラグインが起動されたときにセットアップ、3つの列を有している:
$sql = "CREATE TABLE $table_name (
id mediumint(9) AUTO_INCREMENT,
album VARCHAR(50),
artist VARCHAR(50),
PRIMARY KEY (id)
);";
私はPHPフォームからこのデータベースに(新しい行を作成することによって)データを挿入しようとしています。
Wordpressの管理の中で、私は非常に単純な形状を有している新規ページ作成:
あなたは通話formhtml.php
、見ることができるよう
<form action="/wp-content/plugins/listeningto/formhtml.php" method="post">
Album: <input type="text" name="album" />
Artist: <input type="text" name="artist" />
<input type="submit">
</form>
:私が提出した場合
<?php
global $wpdb;
$wpdb->insert($table_name, array('album' => $_POST['album'], 'artist' => $_POST['artist']), array('$s', '$s'));
?>
を私はIIS7.0
のWorpdressでプラグインを実行するとError 500.0
、apache
を実行する別のWebサーバーでは"Page Not Found"
を実行します。
私はformhtml.php
に変更する場合:
<?php
echo $_POST['album'];
echo $_POST['artist'];
?>
作品罰金 - 私は形に入れたアルバムやアーティストを取得します。明らかに、データを(新しい行に)データベースに挿入するときに間違っていることです。
それは何かについて考えていますか?
UPDATE
オクラホマので、私はこれでformhtml.php
を更新した場合:
<?php
require_once('../../../wp-config.php');
$table_name = $wpdb->prefix . "imlisteningto";
$wpdb->insert($table_name, array('album' => $_POST['album'], 'artist' => $_POST['artist']), array('$s', '$s'));
?>
私はもはや、エラーメッセージが出ていないが、データはまだデータベースに入れて取得していません。
UPDATE 2
これが私の仕事:
<?php
require_once('../../../wp-config.php');
global $wpdb;
$table_name = $wpdb->prefix . "imlisteningto";
$wpdb->insert($table_name, array('album' => $_POST['album'], 'artist' => $_POST['artist']));
?>
この行ったように:私はどちらか必要でない限り
<?php
require_once('../../../wp-load.php');
global $wpdb;
$table_name = $wpdb->prefix . "imlisteningto";
$wpdb->insert($table_name, array('album' => $_POST['album'], 'artist' => $_POST['artist']));
?>
だから、何らかの理由で$wpdb
働いていませんでしたwp-config
またはwp-load.php
。 wp-load.php
を含めると、$wpdb
が値を取得し、すべて正常です。
require_once(ABSPATH。 'wp-settings.php');うまくいくはずです。 ABSPATHは@ wp-load.phpと定義されています – enam