使用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)

bannerAds