使用FuelPHP调用WordPress的函数
因为在从CodeIgniter调用WordPress时遇到了困难(并且没有使用WordPress的主题等),所以我想尝试一下能否从FuelPHP中调用。首先,我决定试试是否可以调用已发布的文章等内容。
首先是文件夹的结构。这次不要过多考虑,将WordPress放在文档根目录下试试看。
wpplus(根目录)
|— 文档
|—- 燃料
|— 公共
|— WordPress
在这个状态下执行WordPress的安装。
接下来,需要编辑/fuel/app/bootstrap.php。
重点在于「require ‘../wordpress/wp-load.php’;」这部分。
需要在「require COREPATH.’classes’.DIRECTORY_SEPARATOR.’autoloader.php’;」这部分之前进行调用。
require '../wordpress/wp-load.php';
// Load in the Autoloader
require COREPATH.'classes'.DIRECTORY_SEPARATOR.'autoloader.php';
class_alias('Fuel\\Core\\Autoloader', 'Autoloader');
// Bootstrap the framework DO NOT edit this
require COREPATH.'bootstrap.php';
Autoloader::add_classes(array(
// Add classes you want to override here
// Example: 'View' => APPPATH.'classes/view.php',
));
// Register the autoloader
Autoloader::register();
/**
* Your environment. Can be set to any of the following:
*
* Fuel::DEVELOPMENT
* Fuel::TEST
* Fuel::STAGING
* Fuel::PRODUCTION
*/
Fuel::$env = (isset($_SERVER['FUEL_ENV']) ? $_SERVER['FUEL_ENV'] : Fuel::DEVELOPMENT);
// Initialize the framework with the config file.
Fuel::init('config.php');
下一步是创建控制器。
重点是“require_once ‘../wordpress/wp-blog-header.php’;”部分。
然后通过调用WordPress的函数可以获取文章列表。
<?php
class Controller_Test extends Controller
{
public function action_index()
{
require_once '../wordpress/wp-blog-header.php';
// クエリ
$the_query = new WP_Query('post_type=any');
// ループ
while ( $the_query->have_posts() ) : $the_query->the_post();
echo '<li>';
//何かする
the_permalink();
echo '</li>';
endwhile;
// 投稿データをリセット
wp_reset_postdata();
}
}
所以,与Codeigniter相比,这个非常简单。
(顺便说一下,在Codeigniter中无法解决,遇到困难了orz)