为什么plugin_url要附加绝对文件路径?

时间:2019-12-19 作者:TARKUS

我,正在将插件url参数传递给我的。js文件使用:

wp_enqueue_script(\'nova-payflow-plugin\');
wp_localize_script(\'my-payflow-plugin\', \'pluginValues\', array(
    \'pluginUrl\' => plugins_url(__DIR__),
));
在我的脚本中,我检索到插件文件夹的url,但它如下所示:

http://mysubdomain.mydomain.local/wp-content/plugins/C:/xampp/htdocs/mywebfolder/wp-content/plugins/my-plugin
在Linux生产服务器上,它执行类似的操作:

https://mysubdomain.mydomain.online/wp-content/plugins/homepages/40/d107997204/htdocs/mywebfolder/wp-content/plugins/my-payflow
请注意,在插件url中,在wp内容/插件之后会立即附加一个完全限定的Windows路径/

为什么plugins\\u url会添加绝对文件路径,但更重要的是,我不希望它附加到url字符串中。

如果这与问题有关,下面是我将脚本排队的方式:

add_action(\'wp_enqueue_scripts\', \'npf_styles_and_scripts\');
function npf_styles_and_scripts() {
    wp_register_style(\'nova-payflow-plugin\', plugins_url(\'css/npf.css\',__FILE__ ));
    wp_enqueue_style(\'nova-payflow-plugin\');
    wp_register_script( \'nova-payflow-plugin\', plugins_url(\'js/npf.js\',__FILE__ ));
    wp_enqueue_script(\'nova-payflow-plugin\');
    wp_localize_script(\'nova-payflow-plugin\', \'pluginValues\', array(
    \'pluginUrl\' => plugins_url(),
    ));
}

1 个回复
SO网友:TomC

首先。看起来你没有使用$src 为您的wp_enqueue_script然后从Codex 我发现了以下类似代码:

wp_enqueue_script(\'my-script\', get_stylesheet_directory_uri() . \'/js/my-script.js\');
wp_localize_script(\'my-script\', \'myScript\', array(
    \'pluginsUrl\' => plugins_url(),
));
或许可以尝试以下方法:

wp_enqueue_script(\'nova-payflow-plugin\', get_stylesheet_directory_uri() . \'/js/my-script.js\');
wp_localize_script(\'nova-payflow-plugin\', \'pluginValues\', array(
    \'pluginUrl\' => plugins_url(),
));
但更改$src值,其上方为:

/js/我的脚本。js公司