J'étais en train de faire preuve de créativité et je l'ai mis dans l'un des fichiers chargés avec mon plugin. Y a-t-il des implications à stocker les noms de table de cette façon?
global $wpdb;
if(!defined('DB_ARTISTS'))
define('DB_ARTISTS', $wpdb->prefix . "artists");
if(!defined('DB_RELEASES'))
define('DB_RELEASES', $wpdb->prefix . "releases");
EDIT: Au départ, je n’avais pas inclus toute l’information à laquelle je pensais. Les tables et les variables portent le préfixe ABC (ABC_DB_ARTISTS
& $wpdb->prefix . 'abc_artists'
).
Le préfixe constant DB_
dans WordPress est généralement considéré comme réservé à DB_NAME
, DB_Host
, DB_USER
et DB_PASS
. L’utiliser pour des constantes spécifiques à un plugin n’est, à mon avis, pas une bonne idée. La seule implication que cela pourrait poser est si d’autres plugins essaient d’utiliser les constantes, mais c’est purement théorique.
Pour ce faire, la méthode appropriée consiste à stocker les noms de table dans l'objet WPDB stocké dans le $wpdb
global.
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';
}
Il est important d'utiliser un préfixe approprié (dans ce cas, myplugin_
pour votre plugin). Par exemple, pour les champs personnalisés avancés, il s’agit généralement de acf_
( , plus de préfixes ).