在WordPress文件之外使用WordPress功能的正确方法是什么?


59

我了解了两种在WordPress文件外部初始化WordPress功能的方法,因此我们可以在WordPress博客之外的任何页面或网站上使用这些功能。

这两种方法中哪一种是正确的?如果两种方法都正确,每种方法的用例是什么?使用一种方法或另一种方法有什么区别?

方法1:

<?php 
    define('WP_USE_THEMES', false);
    require('./wp-blog-header.php');
?>

方法2:

<?php 
    define('WP_USE_THEMES', false);
    require('./wp-load.php');
?>

您尝试使用哪些WP函数“ WP之外”,为什么?这两种方法仍然可以加载WP环境(尽管没有主题支持),因此您仍在 WP内部调用函数。
EAMann 2012年

我试图了解两种方法之间的区别。我要做的是将wordpress主题与我的支持脚本集成在一起。因此需要wordpress的页眉,页脚和循环以及对小部件和其他插件的一些支持
alhoseany12年

我真的很怀疑这是您想要做的事情的方式……有比尝试自举WordPress本身更好的解决方案。
EAMann 2012年

我愿意征求建议,我正在寻找做事的最佳方法?将wordpress主题与外部Web应用程序集成的最佳方法是什么?
alhoseany12年

Answers:


58

文件之间没有什么区别。当您查看WordPress页面时,第一个文件名为index.php。从本质上讲,它就是您的“方法1”

define('WP_USE_THEMES', true);

/** Loads the WordPress Environment and Template */
require ('./wp-blog-header.php');

博客头文件(将WordPress的其余部分排入队列)wp-load.php直接加载并启动WordPress本身。这是大多数wp-blog-header.php

if ( !isset($wp_did_header) ) {

    $wp_did_header = true;

    require_once( dirname(__FILE__) . '/wp-load.php' );

    wp();

    require_once( ABSPATH . WPINC . '/template-loader.php' );

}

因此,两种方法之间的区别是...加载了什么。

方法1正是WordPress自行加载的方法(关闭主题除外)。因此,如果您需要所有的WordPress,并希望触发所有默认的挂钩/操作,请选择该路由。

方法2只是一步一步。它会加载所有WordPress,但不会调用wp()或调用模板加载器(由主题使用)。方法2会更轻一些,但是应该为您提供相同的功能。


3
是否有一个图表或某种东西可以映射所有这些文件?我很久以前见过,但找不到。
ninja08 2015年

17

您问题的方法2:

<?php 
define( 'WP_USE_THEMES', false ); // Don't load theme support functionality
require( './wp-load.php' );

wp-load.php是对WordPress所有功能的访问,仅此而已。第一行告诉WordPress不加载主题文件;也许文件对于您的要求是必需的,然后删除该行。


1
第一行甚至意味着什么?
Sagive SEO 2012年

8
第一行告诉WordPress不要加载其所有主题支持功能。基本上,加载较少的文件。
EAMann 2012年

第一行只需要第一种方法吗?
mcont 2014年

4

wp-blog-header.php将附加标头状态,它将返回404的http状态代码

wp-load.php不会

使用ajax检查HTTP状态代码时有用的注释


2

有时加载主题的functions.php可能会给您带来一些麻烦。它破坏了我另一页的html。这就是我所做的并解决了我的问题:

define('STYLESHEETPATH', '');
define('TEMPLATEPATH', '');
require_once(RAIZ_WORDPRESS."/wp-load.php");

0

@ ninja08

我们可以使用xDebug php扩展来分析脚本。

只是让;xdebug.profiler_enable = 1你的php.ini文件通过去除;来自第一线的,这重新启动Apache服务器,并运行你的WordPress网站...现在在你的XAMPP服务器的tmp目录下创建..open该文件与文件WincachGrind应用。

现在您可以看到脚本的地图

WincacheGrind简单Wordpress分析


您应该已经在ninja08下面的评论中添加了此内容。现在这是一个错误的答案。
alhoseany

2
@alhoseany是的..我现在...但是我没有足够的声誉...然后我决定这样做。
Mostafa
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.