首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将WordPress模板与CodeIgniter集成

如何将WordPress模板与CodeIgniter集成
EN

Stack Overflow用户
提问于 2009-08-10 09:26:45
回答 5查看 24K关注 0票数 45

如何集成CodeIgniter和WordPress,以便将WordPress博客的外观/模板传递到由CodeIgniter创建的页面?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-08-10 09:29:32

第一步是将CodeIgniter和WordPress文件移动到各自的目录中。

在此之后,将以下行放在您的CodeIgniter的index.php文件的顶部。根据需要将路径更改为wp-blog-header.php,以指向WordPress的根目录。

代码语言:javascript
复制
<?php
    require('../wp-blog-header.php');

然后,您可以在视图中使用以下函数:

代码语言:javascript
复制
<?php
    get_header();
    get_sidebar();
    get_footer();    
?>

其他帮助函数也可以在WordPress的文档中找到,它们可以帮助你集成设计。

票数 32
EN

Stack Overflow用户

发布于 2010-02-16 20:52:14

当我在codeigniter的index.php页面中包含wp-blog-header.php文件时,我遇到了一个问题,即在codeigniter的URL helper和WordPress中都定义了site_url()。我用下面的代码解决了这个问题:

代码语言:javascript
复制
require('blog/wp-blog-header.php');

add_filter('site_url', 'ci_site_url', 1);

function ci_site_url() {
    include(BASEPATH.'application/config/config.php');
    return $config['base_url'];
}

header("HTTP/1.0 200 OK");

最后一行需要添加,因为WordPress文件正在向标头添加HTTP响应标头“HTTP/1.0 404 Page not found”。

现在可以在CodeIgntier中使用WordPress函数进行调用了。

票数 16
EN

Stack Overflow用户

发布于 2012-02-02 18:36:42

这是在您的codeigniter项目中使用WordPress模板的另一种方法。这对我来说效果更好,所以我想分享它。使用WordPress 3.3.1和Codeigniter 2.1进行了测试。

目录结构:

代码语言:javascript
复制
/ - WordPress
/ci/ - codeigniter

/ CI /index.php (CI索引文件顶部)

代码语言:javascript
复制
$wp_did_header = true;

if ( defined('E_RECOVERABLE_ERROR') )
    error_reporting(E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_ERROR |   E_WARNING | E_PARSE | E_USER_ERROR | E_USER_WARNING | E_RECOVERABLE_ERROR);
else
    error_reporting(E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_ERROR | E_WARNING | E_PARSE | E_USER_ERROR | E_USER_WARNING);

require_once("../wp-config.php");

通过覆盖默认的codeigniter版本来处理site_url函数冲突。您需要将codeigniter中使用site_url()的任何位置更改为使用ci_site_url()

/ci/application/helpers/MY_url_helper.php

代码语言:javascript
复制
<?php
function anchor($uri = '', $title = '', $attributes = '')
{
    $title = (string) $title;

    if ( ! is_array($uri))
    {
        $site_url = ( ! preg_match('!^\w+://! i', $uri)) ? ci_site_url($uri) : $uri;
    }
    else
    {
        $site_url = ci_site_url($uri);
    }

    if ($title == '')
    {
        $title = $site_url;
    }

    if ($attributes != '')
    {
        $attributes = _parse_attributes($attributes);
    }

    return '<a href="'.$site_url.'"'.$attributes.'>'.$title.'</a>';
}


if ( ! function_exists('ci_site_url'))
{
    function ci_site_url($uri = '')
    {
        $CI =& get_instance();
        return $CI->config->site_url($uri);
    }
}

function current_url()
{
    $CI =& get_instance();
    return $CI->config->ci_site_url($CI->uri->uri_string());
}


function anchor_popup($uri = '', $title = '', $attributes = FALSE)
{
    $title = (string) $title;

    $site_url = ( ! preg_match('!^\w+://! i', $uri)) ? ci_site_url($uri) : $uri;

    if ($title == '')
    {
        $title = $site_url;
    }

    if ($attributes === FALSE)
    {
        return "<a href='javascript:void(0);' onclick=\"window.open('".$site_url."', '_blank');\">".$title."</a>";
    }

    if ( ! is_array($attributes))
    {
        $attributes = array();
    }

    foreach (array('width' => '800', 'height' => '600', 'scrollbars' => 'yes', 'status' => 'yes', 'resizable' => 'yes', 'screenx' => '0', 'screeny' => '0', ) as $key => $val)
    {
        $atts[$key] = ( ! isset($attributes[$key])) ? $val : $attributes[$key];
        unset($attributes[$key]);
    }

    if ($attributes != '')
    {
        $attributes = _parse_attributes($attributes);
    }

    return "<a href='javascript:void(0);' onclick=\"window.open('".$site_url."', '_blank', '"._parse_attributes($atts, TRUE)."');\"$attributes>".$title."</a>";
}



function redirect($uri = '', $method = 'location', $http_response_code = 302)
{
    if ( ! preg_match('#^https?://#i', $uri))
    {
        $uri = ci_site_url($uri);
    }

    switch($method)
    {
        case 'refresh'  : header("Refresh:0;url=".$uri);
            break;
        default         : header("Location: ".$uri, TRUE, $http_response_code);
            break;
    }
    exit;
}

现在,您可以使用WordPress get_header()和/或get_footer()函数在CI项目中绘制模板。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1253906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档