在函数中声明函数可能会导致以下问题:https://stackoverflow.com/a/1631579/1228379
要解决远程文件的问题,可以使用其他参数来指示远程文件(或本地文件),并相应地调用get\\u theme\\u file\\u uri/path。或者,您可以直接调用wp\\u enqueue\\u script/style并使用标准版本号,或者只需在本地保存文件。
此外,如果您觉得更简单,还可以将这两个函数合并为一个函数,并将一些参数作为关联数组传递($参数只需包含要更改的值):
function myenqueuer($handle, $src, $args) {
$defaults = array(\'type\' => \'script\',
\'local\' => true,
\'deps\' => array(),
\'media\' => \'all\',
\'in_footer\' => true,
\'ver\' => false);
$args = wp_parse_args($args, $defaults);
if($args[\'local\']) {
$args[\'ver\'] = md5(filemtime(get_theme_file_path($src)));
$src = get_theme_file_uri($src);
}
if($args[\'type\'] == \'style\') {
wp_enqueue_style($handle, $src, $args[\'deps\'], $args[\'ver\'], $args[\'media\']);
} else if($args[\'type\'] == \'script\') {
wp_enqueue_script($handle, $src, $args[\'deps\'], $args[\'ver\'], $args[\'in_footer\']);
}
}
您可以这样称呼它:
myenqueuer(\'_normalize\', \'/assets/css/normalize.css\', array(\'type\'=>\'style\'));
myenqueuer(\'_base\', \'/assets/css/base.css\', array(\'type\'=>\'style\'));
myenqueuer(\'_fonts\', \'//fonts.googleapis.com/css?family=Open+Sans:400,600\', array(\'type\'=>\'style\', \'local\'=>false));
myenqueuer(\'_lightbox2\', \'//cdnjs.cloudflare.com/ajax/libs/lightbox2/2.9.0/js/lightbox.min.js\', array(\'deps\'=>array(\'jquery\'), \'local\'=>false));
myenqueuer(\'_base\', \'/assets/js/base.js\', array(\'deps\'=>array(\'jquery\')));