- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在尝试对插件进行逆向工程:http://wordpress.org/extend/plugins/wordpress-social-login/
其中的一部分,有这样一行:
(我很难理解第一个,其余的仅供引用,如果他们有事可做。)
require_once( dirname( dirname( dirname( dirname( __FILE__ )))) . '/wp-load.php' );
define( 'WORDPRESS_SOCIAL_LOGIN_PLUGIN_URL', plugins_url() . '/' . basename( dirname( __FILE__ ) ) );
define( 'WORDPRESS_SOCIAL_LOGIN_HYBRIDAUTH_ENDPOINT_URL', WORDPRESS_SOCIAL_LOGIN_PLUGIN_URL . '/hybridauth/' );
我的问题是……这个wp-load.php
文件中到底有什么是代码需要的?通过查看它,我所了解的是它加载了网站正确运行的关键核心 wordpress 文件(functions.php
、wp-settings.php
、wp-config.php
等等...)
插件运行的事实不是已经加载了 wp-load.php
吗?
这也是对资源的完全浪费,因为它包含如此多的文件,这些文件可能还包含其他文件,它就像一个无限循环的所需文件,每个文件都在另一个文件中,被加载两次..(如果其他插件使用它,甚至更多)也是一种方法)
那么它到底有什么作用呢?
附言;我通过 Google-ing 发现的只是如何正确包含它(因为路径是可变的)——但这不是我的问题。
最佳答案
My question is... what exactly is in this
wp-load.php
file that it needs to be required by the code?
所有核心 WordPress 功能。这包括主题文件、事件插件的所有文件等。但是以这种方式加载 WordPress 不会解析请求的 URL,也不会运行 WordPress 查询(通过初始化 WP 对象,也不是 WP_Query 对象)。
By looking at it, all I understand is that it loads crucial core wordpress files for the site to be running correctly (
functions.php
,wp-settings.php
,wp-config.php
etc...)
是的,你没看错。
Doesn't the fact that the plugin runs already means wp-load.php is loaded?
如果插件代码被 WordPress 调用(例如为了显示管理页面,或者它包含在最初加载的插件文件中)- 那么是的,这意味着 wp-load.php
已经加载。
有时,插件会将请求定向到单个文件(例如 http://example.com/wp-content/plugins/my-plugin/sample.php
),而不是某些 WordPress支持页面(例如 http://example.com/?my_plugin_action=sample
或 http://example.com/wp-admin/admin-ajax.php
).
查看第一个 URL 如何引用 my-plugin
插件目录中的特定文件,第二个 URL 如何通过添加特定查询参数转到站点主页,或者第三个示例,其中引用的文件是 wp-admin
目录下的 admin-ajax.php
- 这是一个特殊的文件,它使得插件很容易发出 AJAX 请求(这个文件还会加载 WordPress 核心并触发一些操作 Hook )。
在第一个引用的情况下,如果插件想要使用一些 WordPress 功能(用于引用数据库、操作帖子等),它需要通过包含 wp-load.php 来加载 WordPress 核心文件
。
Also it's a complete waste of resources since it includes so many files that may include other files as well and it's like an endless loop of required files, each within another, which are being loaded twice.. (or even more if other plugins use this kind of method too)
请注意 require_once(...
中的 _once
部分 - 这告诉 PHP 仅 包含尚未包含的文件已经。因此不会发生冲突,PHP 也不会使用太多内存。尽管 - 如果您处于 WordPress 已经启动的上下文中,则不应调用 require
函数。
所以,基本上插件作者希望对您在其中找到此代码的插件文件发出一些请求。由于作者想在此文件中使用 WordPress 功能,因此他调用了 wp-load.php
文件以加载核心功能。
我假设这样做是为了减少服务器上的负载,尽管在 plugins_loaded
操作 Hook 和自定义 $_GET
上运行了几个 Hook > 添加到主页 url 的参数,结果应该仍然非常接近。
我个人更喜欢第二种选择,但就像我说的,包括 wp-load.php
将 阻止 WordPress 运行一些复杂的东西(URL 解析和数据库查询/是)。
如果还有什么地方您不太了解 - 请在此处发表评论,我会尝试进一步解释。
关于php - WordPress wp-load.php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13860577/
我正在 div 中加载一个 php 页面,该页面采用发布的变量来显示正确的内容。它的工作原理是这样的: $(".mainArea").load("page.php", {'folder': 'a'})
我是 AWS 新手。我开始学习 ALB 和 NLB。我知道 ALB 在第 7 层协议(protocol)中工作,而 NLB 在第 4 层协议(protocol)中工作。 谁能解释一下ALB和NLB的实
这是来自 this Article . filter(loaded => !loaded) 有什么作用?我没有在任何地方看到该变量的定义。 我明白这个方法的目的是什么,只是不是那一行。 canActi
我应该在 Constructor 还是 FormLoad() 中加载子表单? 我有一些代码调用在控件中嵌入表单的自定义类。我最初是在 Constructor 之外声明我的子窗体,然后在 FormLoa
目录 1、图解 2、json.loads()用法 3、json.load()用法 4、此外还有一种json.dumps 语法
我正在使用 PhoneGap 为 iPad 编写应用程序,我想在不触发 Safari 或使用 ChildBrowser 等内部 Web 浏览器的情况下加载外部 URL。 我正在使用 PhoneGap
人们经常在他们的(与优化和性能相关的)问题和答案中谈论“重载”。 我试图在典型服务器上的常规 Web 应用程序的上下文中量化这一点(以 SO 及其相当小的基础设施为例),假设它们立即返回(以简化和提高
有人可以写这段代码吗: this.Loaded += (s, e) => this.loaded = true; 分成几行代码以便我可以追溯其含义? 在我的代码示例中没有 s 或 e 吗? 最佳答案
我正在使用 jQuery 的 .load()方法和Loading Page Fragments 。以下是我当前的代码: $("#submit").click(function() { $("#
我想实现的是,当单击图像时,在该图像所在的 div 中,加载了一个包含来自另一个 .html 的其他内容的 div,但我无法完成。 如果我这样做,下面的代码将完美运行: $('#windows_lin
我使用 qt 开发了一个 c++ 库。在本文中,我使用 QSqlDatabase 从 SQLite 数据库中查询信息。注意:我的库在 qt 桌面应用程序中运行良好(我在 Linux 上开发)。 现在我
演示:http://jsfiddle.net/FyrRm/1/ 当我们向下滚动时,您会注意到...在滚动到文章标题到 之后我正在展示一个共享小部件。我正在使用 $(window).on("load"
我在 html(PC) 中使用的图像正确加载,我使用了 img 标签。我已将此文件连同图像一起保存并发送到我的手机,但它不会加载到手机上。我对图像大小或任何东西没有任何问题。我认为它与图像位置有关。
我将 .load() 广泛用于 AJAX 内容。很棒,但如果它做得更多一点,我会喜欢它: 如果为了响应用户操作,我多次调用同一个 div 上的 .load(),我可能会在 div 中得到错误的数据。当
我知道很多方法需要调用它的父类(super class)方法,有些方法不需要, 我正在寻找关于方法调配的东西。它在加载方法中初始化,并且在教程中没有[super load]。 我想知道是不是错了,还是
几个月来,我一直在使用pyGame 2.0.1。今天,我升级到最新版本(2.1.2)后,在尝试加载音频文件时开始出现以下错误:。到目前为止我尝试过的东西:。我使用的是Windows 10、Python
我有一个完整的 angular 应用程序,它使用预先加载。 我想将其转换为延迟加载,但是因为我对所有路线都有保护,而且所有路线都是到一条 protected 主路线的子路线,我不知道是否可以做到这一点
我有一个 React 应用程序,它在 useEffect 中调用我的 API,返回一个用作 imy 图像 src 的 URL 列表。 我正在使用 react-loader-spinner 在加载图像时
我正在使用 Slick.js 逐步加载我的图像我注意到有些图像要么部分加载,要么根本没有加载。 例如,在this site上,有两个画廊:建筑和设计(在导航中)。当用户单击任一图像时,他们会看到该图库
我在我的一个项目中收到此警告。这在调用我的后端 api 时会导致问题,因为它调用了 api 两次。我已经尝试过之前在论坛上发布的关于相同查询的解决方案,但我无法解决这个问题。如果有人能帮助我解决这个问
我是一名优秀的程序员,十分优秀!