我安装了一个使用javascript文件的WordPress插件,它有自定义过滤器。下面是它使用的代码:
wp_register_script( 'pw-cities', apply_filters( 'woo_my_cities', PW()->plugin_url( 'assets/js/my_cities.min.js' ) ), false, PW_VERSION, true );我想要创建一个插件,使用这个自定义钩子,并给出另一个javascript文件的地址给它。我在插件主php文件中使用这段代码。
function myCityFilter($path){
$path= dirname(__FILE__) . "/assets/js/myCityList.js";
return $path;
}
add_filter('woo_my_cities', 'myCityFilter');它似乎不能正常工作,因为主插件提示缺少javascript文件。但是当我改变路径https://localhost/wp-content/plugins/myCityFilter/assets/js/myCityLits.js时,它就能工作了。如果是在主机服务器上,那么地址必须从https://example.com开始。我如何使用php自动生成这样的东西?以/var/www/html开头的地址也会产生错误
发布于 2018-12-31 20:31:38
对dirname(__FILE__)的调用是将完整的文件系统路径返回到JavaScript文件。相反,您需要的是相对于应用程序的文档根的JavaScript文件的路径。
WordPress有一个内置的plugins_url()方法,您可以使用它来获取所需的路径。应该是这样的:
$path = plugins_url('/assets/js/myCityList.js', __FILE__);发布于 2019-01-01 00:35:04
您可以对代码使用plugin_dir_url()函数,如下所示
function myCityFilter($path){
$path= plugin_dir_url(__FILE__) . "assets/js/myCityList.js";
return $path;
}
add_filter('woo_my_cities', 'myCityFilter');https://stackoverflow.com/questions/53990931
复制相似问题