将codeigniter站点集成为wordpress插件


Integrating a codeigniter site as a wordpress plugin

我从另一个WP开发人员那里获得了一个部分完成的插件,它集成了基于Codeigniter的Easy!预约安排实用程序到WP数据库中。我需要联想易!将用户与WP用户预约。

结构:简单!约会数据库是mysql中WP数据库结构的一部分。容易的任命建立在Codeigniter框架中。插件会让Easy!约会在带有短代码的页面上运行,但缺少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();

这会告诉我当前用户。这正是我所需要的。现在我该怎么把它传下去,所以代码点火器/简单!预约可以在我的控制器中使用它吗?

我尝试过的:在我的代码点火器控制器中,我添加了require_one("/path to wp/wp includes/user.php");然后$wp_id=get_current_user_id();

然后告诉我没有登录。

我还尝试添加到控制器require_one("/path to wp/wp includes/plugable.php");

这只会杀死它。

那么,我如何使这些WP函数或至少函数的结果可用于我的代码点火器控制器。我只是把它变成一个全球性的吗?怎样

问题是我试图在iFrame中运行,而不是用短代码在WP中运行。我用这里给出的建议解决了短代码的问题:如何将WordPress模板与CodeIgniter集成。

现在一切都很好。