gpt4 book ai didi

php - 修复 PHP 中 Wordpress 插件的 HTTPS 错误,当我知道是哪些文件导致错误时出现混合内容错误?

转载 作者:太空宇宙 更新时间:2023-11-03 14:57:47 25 4
gpt4 key购买 nike

我正在尝试修复我想使用的另一个开发人员的 Wordpress 插件,但作为我的 wordpress 博客是 100% HTTPS(带 CDN 的共享 SSL 证书),它会在管理面板上以及显示在网站。我不是 PHP 专家,但多年来我编写了大量代码并进行了代码审查,因此我想尝试解决这个问题。

我网站上的所有其他插件都不需要我使用任何强制 SSL 方法,而且我已经遵循了实现 SSL/HTTPS 的指南。我没有其他 SSL/HTTPS 或混合内容错误,我不想回到不得不使用它的状态,因为它会产生其他问题。

我使用过 Firefox Inspector 并知道是哪些文件产生了问题:http:///wp-content/plugins//resources/scripts/.jshttp:///wp-content/plugins//resources/css/themes/default/jquery-ui.css它还以 HTTP 的形式为插件提供图像。

我在 Firefox 中打开的 Plugins.php 文件显示它注册为 HTTP 与 HTTPS。

我看过的:我已经扫描了 HTTP 的代码,但没有在 header 文档之外找到任何 HTTP,并确认该插件从 https://www.google.com/jsapi 获取了它的 GoogleFonts 和 Google CoreChart。 .

我读了一些书,但不清楚“this.url”的用法,或者这是否是来源,但读过其他人有问题。

我扫描了代码,没有看到任何不是以 \ 结尾的路径,这些路径本身不是特定文件的参数。

     * sets up the object with the AJAX url and security nonce, also retrieves language properties
*/
setup: function(url, nonce, pluginUrl, userId, callbackFn, skipLoadGlobals) {
if(!PI.ajaxSetup) {
// create custom widgets
initPICustom();

PI.globals.pluginUrl = pluginUrl;
PI.userId = userId;
this.url = url;
this.nonce = nonce;

if(!skipLoadGlobals) {
this.loadGlobalData(callbackFn);
}
else {
callbackFn();
}
}
else {
alert('Ajax setup function already called');
}
},

所有其他对该 URL 的引用如下所示:

    getUserOldestResultYear: function(userId, callbackFn) {
jQuery.ajax({
type: "post",
url: PI.Ajax.url

至少有一个被报告的文件是 Datatables plug-in大约两岁,JQueryUI 1.6 or 1.7那至少是6岁。

我目前不使用该插件但愿意使用。这个插件还在更新中,大约一年更新一到两次,开发者在 GitHub 上有他们的免费软件代码。因此,我想尝试修复它,或者至少为开发人员提供非常具体的指导,说明如何修复它(如果我使用我的测试站点解决了大部分问题的话)。

我目前无法提供指向特定站点的链接,因为我只在我积极使用它时才激活该插件,因为它会导致我在激活它时站点的其余部分出现错误。我正在寻找有关如何进一步诊断问题以及如何解决问题的指导。

所以我的问题是:

  1. 我是否应该在代码中寻找其他任何特定的东西来识别这些 HTTP 调用的来源,我可以在代码中相对容易地修复这些东西?
  2. 是否可以简单地升级 JQueryUI 和 DataTables 并可能解决问题,或者这是一个转移注意力的问题?
  3. 如果 #2 是肯定的,我下载了 DataTables 和最新的 JQueryUI 会尝试升级应用程序以使用它,因为它们远远落后可能最终完全重写或者它是相对易于管理的东西? (即我有一些时间但不是很多时间来尝试解决这个问题)。
  4. 如果与 AJAX 相关,我该如何解决?

最佳答案

我的问题的根源不是以上任何一个,而是 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__ ));

但回顾一下我的问题:

  1. 检查 wordpress codex 是我需要做的以确定使用了贬值的方法。
  2. 是的,旧版本是转移注意力,与它无关。
  3. 不适用
  4. 不适用

关于php - 修复 PHP 中 Wordpress 插件的 HTTPS 错误,当我知道是哪些文件导致错误时出现混合内容错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27111120/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com