我很有创意,把它放在插件加载的一个文件中。以这种方式存储表名是否有影响?
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\'
).
最合适的回答,由SO网友:engelen 整理而成
这个DB_
WordPress中的常量前缀通常被认为是为DB_NAME
, DB_HOST
, DB_USER
和DB_PASS
. 在我看来,将其用于插件特定常量不是一个好主意。它可能带来的唯一含义是,如果其他插件尝试使用这些常量,但这纯粹是理论上的。
正确的方法是将表名存储在全局$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_
(
more on prefixing).