我正在尝试对插件中显示的安装路径进行故障排除。php作为我在自己的网站上安装的插件,我最初并没有编写该插件。当我的站点的其余部分是HTTPS时,此插件引用和安装的所有资源都会显示为混合内容HTTP。
我一直在玩弄下面的代码段,但它似乎没有起到什么作用,也没有解决问题。有人能指出我遗漏了什么吗?
/**
* registers scripts and stylesheets
*/
public function register_assets() {
$theme = strtolower( get_option( \'wp-plugintheme\', \'default\') );
// scripts
wp_register_script( \'wpa-functions\', plugins_url() . \'resources/scripts/wpa-functions.js\' );
wp_register_script( \'wpa-custom\', WPA_PLUGIN_URL . \'resources/scripts/wpa-custom.js\' );
}
我知道我所做的编辑正在发挥作用,而且我已经能够添加额外的
\\
s到路径。
/**
* Creates plugin globals and manages version number
*/
public function setup() {
// define global variables
if (!defined(\'WPA_THEME_DIR\') )
define(\'WPA_THEME_DIR\', ABSPATH . \'wp-content/themes/\' . get_template() );
if (!defined(\'WPA_PLUGIN_NAME\') )
define(\'WPA_PLUGIN_NAME\', trim(dirname(plugin_basename(__FILE__) ), \'/\') );
if (!defined(\'WPA_PLUGIN_DIR\') )
define(\'WPA_PLUGIN_DIR\', WP_PLUGIN_DIR . WPA_PLUGIN_NAME . \'/\');
if (!defined(\'WPA_PLUGIN_URL\') )
define(\'WPA_PLUGIN_URL\', WP_PLUGIN_DIR . WPA_PLUGIN_NAME . \'/\');
if (!defined(\'WPA_PLUGIN_BASENAME\') )
define(\'WPA_PLUGIN_BASENAME\', plugin_basename(__FILE__) );
但我还是继续得到这些:
Blocked loading mixed active content http://website.org/wp-content/plugins/wp-plugintheme/resources/scripts/wpa-functions.js?ver=4.0.1
除了为这一个插件强制使用SSL之外,还有什么帮助或想法吗?
最合适的回答,由SO网友:CRSouser 整理而成
我的问题的根源不是上述任何一个,而是Wordpress内部变量工作方式的改变。
我尝试排除故障的插件使用了以下功能:
define(\'WPA_PLUGIN_DIR\', WP_PLUGIN_DIR . \'/\' . WPA_PLUGIN_NAME);
define(\'WPA_PLUGIN_URL\', WP_PLUGIN_URL . \'/\' . WPA_PLUGIN_NAME);
根据这两个链接声明的新代码
do not use the internal Wordpress variables 和至
use these instead 在主插件PHP文件中处理它。
define(\'WPA_PLUGIN_DIR\', plugin_dir_path( __FILE__ ));
define(\'WPA_PLUGIN_URL\', plugin_dir_url( __FILE__ ));
检查Wordpress抄本是我需要做的事情,以确定正在使用的方法,论坛也很有帮助。后来,我发现我之前因为SSL问题而停止使用的几个插件也在做类似的事情。