web-dev-qa-db-fra.com

magasin personnalisé WP noms de table dans une variable globale

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').

1
Jacob Raccuia

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 ).

1
engelen