WordPress上級ガイド:カスタムデータベーステーブルの作成と管理

まずは、カスタム・データベース・テーブルの作成に必要なリソースへの秘密のパスを見つけましょう。ステップバイステップのガイドで、これらのテーブルを一歩ずつ構築する方法を学ぶことができると思います。最後に、新しく作成されたデータベース・テーブルと効果的にやり取りし、このデータをスムーズに管理・利用できるようにする方法を見ていきます。全工程を順を追って説明していきますので、初心者の方でも、ある程度の基礎知識をお持ちの開発者の方でも、貴重な知識とスキルを身につけることができるでしょう。

なぜカスタム・データベース・テーブルを作成するのか?

WordPressのデフォルトのデータベース・アーキテクチャは、ほとんどすべてのタイプのコンテンツ・ニーズに対応できる。カスタム投稿タイプを登録し、投稿メタデータを利用することで、必要なデータのほとんどを簡単に扱うことができる。

イメージ[1] - WordPress上級ガイド:カスタムデータベース・テーブルの作成と管理 - Photon Flux|プロフェッショナル・ワードプレス修理サービス、グローバル展開、迅速な対応

しかし、標準的なアーキテクチャーでは不十分な特殊な状況に遭遇することもある。

eコマースサイトの場合、カスタム投稿タイプは商品に適しています。タイトル、画像、詳細な説明など、商品ページに必要な情報は通常の投稿とほとんど同じだからです。追加情報が必要な場合は、投稿のメタデータを通して追加することもできます。

これは、通常の投稿とはまったく異なる情報を含む注文の場合ではないので、注文情報をカスタムデータベーステーブルに置く方が適切でしょう。

要するに、デフォルトのデータベース・スキーマに収まらないデータを扱う必要がある場合、独自のカスタム・データベース・テーブルを作成するのは良い選択肢です。

情報の入手先

WordPressの開発者向けドキュメントにはカスタムデータベーステーブルに関する記述はありませんが、Codexと呼ばれる古いバージョンの開発者向けドキュメントには記述されています。Codex のプラグインでテーブルを作成するページで、カスタム・データベース・テーブルに関するすべての情報を見つけることができる。

カスタム・データベース・テーブルの作成

画像[2] - WordPress上級ガイド:カスタムデータベーステーブルの作成と管理 - Photonflux.com|プロフェッショナルなWordPress修理サービス、グローバルリーチ、迅速な対応

まず最初に気づくのは、これは通常プラグインで行われるということだ。

さらに、プラグインを有効化する際に、関数を使用してカスタマイズを作成することが可能であり、推奨されます。登録_activation_hook けい.

これにより、この関数はプラグインがロードされるたびに実行されるのではなく、一度だけ実行されるようになる。

テーブル作成

プラグインを有効にしたカスタムテーブルを作成するには、いくつかのものを使用する必要があります。

まず、テーブル作成を管理する関数を作成する:

関数wp_learn_create_database_table() { {
}

次に$wpdb治安情勢WordPressデータベースオブジェクトなぜなら、データベースとやりとりするのに必要なメソッドがすべて含まれているからだ。

これにより、WordPressデータベースの接頭辞を使用して新しいテーブル名を設定できます。

関数wp_learn_create_database_table() {
    function wp_learn_create_database_table() { global $wpdb.

    $table_name = $wpdb->prefix . 'custom_table';
}

にもアクセスできる。get_charset_collate方法論このメソッドは、データベースの正しい文字セットとソートルールを返します。

    $charset_collate = $wpdb->get_charset_collate();

テーブルを作成するには、データベース上でSQL文を実行するためにSQLを理解する必要があります。これはdbデルタ 関数完了した。dbデルタこの機能は通常、WordPressの更新時にデフォルトのWordPressテーブルを更新または変更する必要がある場合に使用されます。現在のテーブル構造をチェックし、希望するテーブル構造と比較し、必要に応じてテーブルを追加または変更します。

画像[3] - WordPress上級ガイド:カスタムデータベーステーブルの作成と管理 - Photonflux.com|プロフェッショナルなWordPress修理サービス、グローバルリーチ、迅速な対応

を使用する。dbデルタSQL文を特定の方法で書く必要がある。

コーデックスでご覧いただけます。これらの要件の詳細については、このページの「フォームの作成または更新」セクションを参照してください。

SQL文を作成したら、それを関数dbデルタ.これはwp-admin/includes/upgrade.php関数宣言を含むファイルがそれを行う。

関数wp_learn_create_database_table() {
    function wp_learn_create_database_table() { global $wpdb.

    $table_name = $wpdb->prefix . 'custom_table';

    $charset_collate = $wpdb->get_charset_collate();

    $sql = "CREATE TABLE $table_name (
        id mediumint(9) NOT NULL AUTO_INCREMENT、
        time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL、
        name tinytext NOT NULL、
        text text NOT NULL, url varchar(55)
        url varchar(55) DEFAULT '' NOT NULL, PRIMARY KEY (id)
        PRIMARY KEY (id)
    ) $charset_collate;";

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

この例では、次のような名前の新しいテーブルが作成されている。カスタムテーブル5つのフィールドを持つ5つのフィールドを持つ: an id時間名称aテキストそして urlそうだ。そうだ。id自動インクリメント整数、はい時間日付時間フィールド, はい名称tinytextフィールドテキストテキストフィールド、urlはvarcharフィールドである。これはidは主キーである。

この関数をプラグインの有効化フックにフックすることで、プラグインが有効化されたときにテーブルが作成されるようになります。

register_activation_hook( __FILE__, 'wp_learn_create_database_table' ).

データ挿入

プラグインの有効化フックを使って、プラグインが有効化されたときにテーブルにデータを挿入することもできます。

そのためには、オブジェクトインサート方法論$wpdb挿入されるフィールドの名前と値の配列を渡す。

例を挙げよう。

register_activation_hook( __FILE__, 'wp_learn_insert_record_into_table' );
関数 wp_learn_insert_record_into_table(){
    function wp_learn_insert_record_into_table(){ global $wpdb.

    $table_name = $wpdb->prefix . 'custom_table';

    $wpdb->insert(
        $table_name、
        array(
            'time' => current_time( 'mysql' )、
            'name' => 'John Doe'、
            'text' => 'Hello World!
            'url' => 'https://wordpress.org'
        )
    );
}

更新データ

カスタム・テーブルのデータを更新するには更新このオブジェクトのメソッド$wpdb更新されるフィールドの名前と値を渡す配列と、更新されるレコードのフィールドの名前と値を見つける配列。

関数 wp_learn_update_record_in_table() { {
    global $wpdb.

    $table_name = $wpdb->prefix . 'custom_table';

    $wpdb->update(
        $table_name、
        array(
            'time' => current_time( 'mysql' )、
            'name' => 'Jane Doe'、
            'text' => 'Hello Planet!
            'url' => 'https://wordpress.org'
        ),
        array( 'id' => 1 )
    );
}

この例では、id 1のレコードが新しい値で更新される。

データを選択

オブジェクトの使用結果を得るカスタム・テーブルからデータを選択するメソッド$wpdb.結果を得る有効な SELECT SQL 文を受け付けます。

関数 wp_learn_select_records_from_table() { {
    global $wpdb.

    $table_name = $wpdb->prefix . 'custom_table';

    $results = $wpdb->get_results( "SELECT * FROM $table_name" );

    foreach ( $results as $result ) { $result->$result->$result->$result
        echo $result-&gt;name . ' . $result-&gt;text . '<br>';
    }
}

デフォルトでは、get_resultsはオブジェクトの配列を返し、それをループして行フィールドにプロパティとしてアクセスすることができる。

クリーン

カスタマイズしたフォームを削除することも可能です。これを行うにはクエリーこのオブジェクトのメソッド$wpdbにテーブルを削除するSQL文を渡します。

関数 wp_learn_delete_table() { {
    global $wpdb.

    $table_name = $wpdb->prefix . 'custom_table';

    $wpdb->query( "DROP TABLE IF EXISTS $table_name" );
}

ねばなりませんクエリーメソッドは有効なSQLクエリを実行しますが、この関数はクエリのクリーンアップを行わないので、データの挿入や更新を行わないクエリにのみ使用するのがベストです。

あなたの要件またはプラグインユーザーの要件に応じて、2つの方法でテーブルを削除することができます。

プラグインを無効化した後、プラグインのユーザーがこのテーブルのデータを必要としない場合は、そのデータをプラグイン停止フックこのアクションは

register_deactivation_hook( __FILE__, 'wp_learn_delete_table' ).

しかし、そのテーブルのデータが重要で、プラグインが無効化されてもユーザーがそれを保持したい場合は、プラグインの利用可能なつのアンインストール方法そのうちのひとつがテーブルを削除する。

例えば登録_アンインストールフック.

register_uninstall_hook( __FILE__, 'wp_learn_delete_table');

あるいは、テーブルをそのままにしておいて、ユーザーがそれをどうするか決めることもできる。

通常、プラグインをアンインストールする際に、ユーザーがテーブルを保持したいかどうかを確認し、アンインストール方法のいずれかを使用することをお勧めします。

はんけつをくだす

このチュートリアルでは、カスタムテーブルの基本について簡単に説明しました。今後のチュートリアルでは、これらのテクニックを実際のプロジェクトでどのように適用するかについて、より深く掘り下げていきます。


お問い合わせ
チュートリアルが読めない?無料でお答えします!個人サイト、中小企業サイトのための無料ヘルプ!
カスタマーサービス WeChat
カスタマーサービス WeChat
電話:020-2206-9892
QQ咨询:1025174874
Eメール:info@361sale.com
勤務時間: 月~金、9:30~18:30、祝日休み
© 複製に関する声明
この記事はハリーが執筆しました。
終わり
好きなら応援してください。
クドス0 分かち合う
おすすめ
解説 ソファ購入

コメントを投稿するにはログインしてください

    コメントなし