我正在写一个WordPress插件。在插件文件的顶部,我定义了一些常量。我可以省略if ( ! defined( \'THE_CONSTANT\' ) )
测试?
我研究过的其他一些插件包括if ( ! defined
测试,有些没有。就个人而言,我不知道为什么我的插件文件会被包含两次?
我不想包括的原因if ( ! defined ...
我认为这很难理解:
(XYZABC将是插件名称)
if ( ! defined( \'XYZABC_PLUGIN_BASENAME\' ) )
define( \'XYZABC_PLUGIN_BASENAME\', plugin_basename( __FILE__ ) );
if ( ! defined( \'XYZABC_SETTINGS_SLUG\' ) )
define( \'XYZABC_SETTINGS_SLUG\', \'xyzabc_comments_options\' );
if ( ! defined( \'XYZABC_ENABLED_QUERY_PARAM\' ) )
define( \'XYZABC_ENABLED_QUERY_PARAM\', \'xyzabc-comments-enabled\' );
但这本书读起来相对不错:
define( \'XYZABC_PLUGIN_BASENAME\', plugin_basename( __FILE__ ) );
define( \'XYZABC_SETTINGS_SLUG\', \'xyzabc_comments_options\' );
define( \'XYZABC_ENABLED_QUERY_PARAM\', \'xyzabc-comments-enabled\' );
<小时>
Update:
Workaround. 我定义了这个函数,然后重复的常量名称问题基本上消失了。
function myplugin_define_default($constant_name, $value) {
if (! defined($constant_name))
define($constant_name, $value);
}
现在我的代码是这样的:
define( \'XYZABC_PLUGIN_BASENAME\', plugin_basename( __FILE__ ) );
xyzabc_define_default( \'XYZABC_SETTINGS_SLUG\', \'xyzabc_comments_options\' );
xyzabc_define_default( \'XYZABC_ENABLED_QUERY_PARAM\', \'xyzabc-comments-enabled\' );