查询某个目录下的所有js文件时出错

时间:2014-12-11 作者:Sadia Mehjabin

我正在使用\\u的主题。我有js文件夹下的所有js文件。我的代码

function _s_scripts() {
$js_dir = get_template_directory_uri() . "/js/";
foreach(glob($js_dir.\'/*.*\') as $file) {
$label = str_replace(".", "", $file);
wp_enqueue_script($label, $js_dir . $file . \'.js\', array(\'jquery\'), \'1.0.0\');
}
}
add_action( \'wp_enqueue_scripts\', \'_s_scripts\' );
检查后,我发现没有加载jquery文件。PS我想使用glob函数。

2 个回复
SO网友:Brandt Solovij

我认为您在文件和路径字符串上添加了太多额外的位。

尝试以下操作:

function _s_scripts() {
$js_dir = get_template_directory_uri() . "/js/";
foreach(glob($js_dir.\'*.*\') as $file) {
$label = str_replace(".", "", $file);
wp_enqueue_script($label, $file , array(\'jquery\'), \'1.0.0\');
}
}
add_action( \'wp_enqueue_scripts\', \'_s_scripts\' );
当我在本地针对dir运行类似的函数时,您添加的额外“/”和额外“.js”可能会导致找不到文件。另外-您添加了$js_dir 第二次,当$file 已经有相关信息了

编辑:

为了更好地解释:$file 当您附加第二个“.js”时,名称中已经有“.js”-这些文件在逻辑上不存在(除非您有未提及的命名约定)。

也-在$js_dir - 您已经有了尾随的正斜杠,但是当您尝试搜索/*.* - 这不是一个有效的模式,因此它进一步混淆了glob。

至少我是这样理解的。我编写的测试线束是:

<?php
error_reporting(E_ALL);
error_reporting(-1);
ini_set(\'error_reporting\', E_ALL);
$js_dir = "/Users/MYUSER/Sites/";
$fileglob = glob($js_dir.\'*.*\');
echo count($fileglob);
foreach( $fileglob as $file) {
    $label = str_replace(".", "", $file);
    echo $file; 
    }
    echo "done";
?>
再编辑一次:

使其成为更好的搜索,而不是*.* 这样做:。。。。

foreach(glob($js_dir.\'*.js\') as $file) {
这样,如果您有其他系统文件(如缩略图图标、文本文件等)他们不会和地球仪在一起

SO网友:MikeiLL

古老的线。

上面有帮助,但是get_template_directory_uri() 无法工作,因为glob需要路径名,而不是URI(url)。

我们需要get_template_directory().

$js_files = get_template_directory() . \'/ng/\';
foreach(glob($js_files.\'*.js\') as $file) {
  $labelarray = explode("/", $file);
  $label = str_replace(".", "", substr(array_pop($labelarray), 0, -3));
  wp_enqueue_script($label + \'-js\', $file , array(\'jquery\'), \'1.0.0\');
}

结束

相关推荐

<head>中的额外代码-空白jQuery函数

我最近注意到,在我的网站(goinspire.com)的中,出现了两次以下代码:<script>jQuery(function(){});</script> 它看起来像一个带有空白jquery函数的脚本。我的问题是:1)这段代码是否有任何作用,如果没有,2)我如何找出它的来源,以便摆脱它。我希望我已经包括了所有相关/必要的信息。如果没有,请通过下面的评论让我知道。这是正在进行的清理我的网站并试图提高页面速度的项目的一部分。谢谢你的帮助!