3

私はワードプレスに不慣れです。テーブルを作成し、そのテーブルにデータを挿入しようとしています。そのため、wordpressデータベース内に「album」というテーブルを作成し、次に「my-codes」というディレクトリを作成しました(ルートディレクトリ内/「wp-admin」、「wp-content」、「wp-includes」ディレクトリと同じレベル)

私が作成したそのディレクトリ内に、insert.php次のコードを追加しました

<?php       
global $wpdb;
$wpdb->insert($wpdb->album , array("ID"=>1, "Name"=>'something'), array("%d", "%s"));

 ?>

しかし、それは私がした間違いが何であるかこのエラーを与えますFatal error: Call to a member function insert() on a non-object in C:\wamp\www\wordpress\my-codes\insert.php、私を助けてください。

4

3 に答える 3

1

$wpdbWordpressのオブジェクトにアクセスできるように、スクリプト内でWordpressファイルをロードする必要があります。

require_once( '../wp-load.php' );

これにより、不要な機能も含め、すべてのWordpressが読み込まれます。データベース部分のみをロードする場合は、この記事をお読みください


更新-メソッドの最初の引数insertは、テーブルの名前である必要があります。

$wpdb->insert(
    'album',
     array("ID"=>1, "Name"=>'something'),
     array("%d", "%s")
);
于 2012-11-16T02:32:25.220 に答える
0
require (dirname(dirname(__FILE__)) . '/wp-blog-header.php');
require (ABSPATH . WPINC . '/compat.php');
require (ABSPATH . WPINC . '/functions.php');
require (ABSPATH . WPINC . '/classes.php');

require_wp_db();
global $wpdb; // Look look! Over here! line 270 in wp-settings.php

if ( !empty($wpdb->error) )
        dead_db();

 //Execute your query here
于 2012-11-16T02:35:35.783 に答える
0

オプションがニーズに合わない場合を除いて、カスタムテーブルを作成する代わりにWordPressオプションAPIを使用することをお勧めします。また、すべてのコードをテーマのに配置します。そうすれば、他のWordPressファイルを外部からロードする必要がなくなります。コードがfunctions.phpにある場合、それらはすでに自動的にロードされています。functions.php

オプションを使用してデータベースにデータを保存する方法の簡単な例を次に示します(上記のリンク先のWP Codexの記事から引用)。

// Create an option to the database
add_option( $option, $value = , $deprecated = , $autoload = 'yes' );

// Removes option by name.
delete_option( $option );

// Fetch a saved option
get_option( $option, $default = false );

// Update the value of an option that was already added.
update_option( $option, $newvalue );

オプションは、データベースに直接アクセスするよりも実装がはるかに簡単で、一般的にエラーが発生しにくくなります。:)

于 2012-11-16T02:41:50.720 に答える