web-dev-qa-db-ja.com

カスタムストア WP グローバル変数内のテーブル名

私はクリエイティブであり、私のプラグインでロードされたファイルの1つにこれを入れました。このようにテーブル名を格納することには意味がありますか?

global $wpdb;

if(!defined('DB_ARTISTS'))
    define('DB_ARTISTS', $wpdb->prefix . "artists");

if(!defined('DB_RELEASES'))
    define('DB_RELEASES', $wpdb->prefix . "releases");

編集:私はもともと私が意図していた情報のすべてを含まなかった。テーブルと変数は、ABC(ABC_DB_ARTISTS$wpdb->prefix . 'abc_artists')という接頭辞が付きます。

1
Jacob Raccuia

WordPressのDB_定数プレフィックスは、一般的にDB_NAMEDB_HostDB_USERおよびDB_PASSのために予約されていると見なされます。私の意見では、プラグイン固有の定数にこれを使用するのは賢明ではありません。他のプラグインが定数を使おうとしている場合、それがもたらす可能性がある唯一の影響ですが、それは純粋に理論的なものです。

これを行う正しい方法は、グローバル$wpdbに格納されているWPDBオブジェクトにテーブル名を格納することです。

global $wpdb;

if ( ! isset( $wpdb->myplugin_artists ) && ! isset( $wpdb->myplugin_releases ) ) {
    $wpdb->myplugin_artists = $wpdb->prefix . 'myplugin_artists';
    $wpdb->myplugin_releases = $wpdb->prefix . 'myplugin_releases';
}

適切なプレフィックスを使用することが重要です(この場合、プラグインにmyplugin_)。たとえば、高度なカスタムフィールドの場合、これは通常acf_です( 接頭辞の詳細 )。

1
engelen