将codeigniter站点集成为wordpress插件

时间:2015-12-11 18:44:41

标签: php mysql wordpress codeigniter

我从WP的另一个开发人员那里获得了部分完成的插件,该插件将基于Codeigniter的Easy!Appointments调度实用程序集成到WP数据库中。我需要将Easy!Appointments用户与WP用户相关联。

STRUCTURE:Easy!Appointments数据库是mysql中WP数据库结构的一部分。简单!约会是在Codeigniter框架中构建的。该插件将让Easy!Appointments在一个包含短代码的页面上运行,但缺少WP头文件。所以,我在WP页面的iframe中运行它。插件的主要部分是:

    <?php 
/**
 * Plugin Name: Easy!Appointments - WordPress Plugin
 * Plugin URI: http://easyappointments.org
 * Description: Creates a bridge between Easy!Appointments and WordPress.
 * Version: 1.0.0
 * Author: A.Tselegidis
 * Author URI: http://alextselegidis.com
 * Text Domain: eawp
 * License: GPLv3
 */

/** Base Plugin Path */
define('EAWP_BASEPATH', __DIR__); 

/** Supported Versions */
define('EAWP_MIN_VERSION', '1.0');
define('EAWP_MAX_VERSION', '1.0');

/** Setup Autoloader */
require EAWP_BASEPATH . '/core/Autoload.php'; 
$loader = new EAWP\Core\Autoload; 
$loader->register();
$loader->addNamespace('EAWP\Core', EAWP_BASEPATH . '/core');
$loader->addNamespace('EAWP\Core\Interfaces', EAWP_BASEPATH . '/core/interfaces');
$loader->addNamespace('EAWP\Core\Exceptions', EAWP_BASEPATH . '/core/exceptions');
$loader->addNamespace('EAWP\Core\ValueObjects', EAWP_BASEPATH . '/core/value-objects');
$loader->addNamespace('EAWP\Libraries', EAWP_BASEPATH . '/libraries'); 

/** Initialize Plugin */
global $wpdb; 
$route = new EAWP\Core\Route(); 
$plugin = new EAWP\Core\Plugin($wpdb, $route);
$plugin->initialize();

我想将当前用户的ID传递给Easy!约会。在插件中我添加了这段代码:

if(!function_exists('wp_get_current_user')) {
    include(ABSPATH . "wp-includes/pluggable.php"); 
} 

$wp_id = get_current_user_id();

这告诉我当前的用户。这就是我需要的。现在我如何将其传递给codeigniter / Easy!约会可以在我的控制器中使用它吗?

我尝试过: 在我的codeigniter控制器中,我添加了         require_once(“/ path to wp / wp-includes / user.php”); 然后         $ wp_id = get_current_user_id();

然后告诉我我没有登录。

我也尝试过添加到控制器中         require_once(“/ path to wp / wp-includes / pluggable.php”);

而这只会杀死它。

那么,如何制作这些WP函数或至少我的codeigniter控制器可用的函数结果。我只是把它变成全球性的吗?怎么样?

1 个答案:

答案 0 :(得分:1)

问题是我试图在iFrame中运行,而不是在WP中用短代码运行。我用这里给出的建议解决了短代码的问题: How to integrate WordPress template with CodeIgniter

现在一切正常。