2009-08-10 36 views

Trả lời

30

Bước đầu tiên là di chuyển CodeIgniter và các tệp WordPress trong thư mục riêng của chúng.

Sau đó, hãy đặt dòng sau vào đầu tệp index.php của CodeIgniter của bạn. Thay đổi đường dẫn đến wp-blog-header.php khi cần để trỏ đến thư mục gốc của WordPress.

<?php 
    require('../wp-blog-header.php'); 

Sau đó, bạn có thể sử dụng các chức năng sau bên trong quan điểm của bạn:

<?php 
    get_header(); 
    get_sidebar(); 
    get_footer();  
?> 

chức năng helper khác cũng có thể được tìm thấy trong tài liệu WordPress có thể hỗ trợ bạn trong việc tích hợp các thiết kế.

+0

nó hoạt động nhờ người đàn ông hoàn hảo hoàn hảo –

14

Khi tôi đưa tệp wp-blog-header.php vào trang index.php của Codeigniter, tôi gặp sự cố rằng site_url() được định nghĩa trong cả trình trợ giúp URL của cả trình mã hóa lẫn WordPress. Tôi đã giải quyết vấn đề này bằng cách sử dụng mã sau:

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"); 

Dòng cuối cùng cần thêm vào dưới dạng tệp WordPress đã thêm tiêu đề phản hồi HTTP 'HTTP/1.0 404 Page not found' vào tiêu đề.

Bây giờ, bạn nên sử dụng các chức năng WordPress để gọi trong CodeIgntier.

0

nếu bạn đang lập kế hoạch về việc sử dụng các chức năng site_url đang ignitor trong mã của bạn, hoặc nếu bạn đang làm một hợp nhất của một trang web CI hiện có và WP ... này có thể hữu ích:

ở đầu của CI index.php:

require_once '../wp-blog-header.php'; 

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

function ci_site_url($url, $path, $orig_scheme, $blog_id) { 
    $CI =& get_instance(); 
    $new_path = str_replace("YOURSITEURLGOESHERE", "", $url); 
    return $CI->config->site_url($new_path); 
} 

hiệu quả này cho phép bạn sử dụng site_url trong CI, vì vậy nếu bạn đã bổ sung thêm một tấn các liên kết và nội dung cho dự án của bạn nó có thể giúp bạn ra ngoài.

4

Đây là một cách khác để sử dụng các mẫu WordPress trong dự án trình mã hóa của bạn. Điều này làm việc tốt hơn cho tôi vì vậy tôi muốn chia sẻ nó. Thử nghiệm với WordPress 3.3.1 và Codeigniter 2.1.

cấu trúc thư mục:

/ - WordPress 
/ci/ - codeigniter 

/ci/index.php (Đỉnh cao của tập tin Index CI)

$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"); 

Deal với chức năng site_url va chạm bằng cách ghi đè phiên bản CodeIgniter mặc định. Bạn cần phải thay đổi bất kỳ địa điểm nào bạn đã sử dụng site_url() trong trình viết mã để sử dụng ci_site_url() thay thế.

/ci/application/helpers/MY_url_helper.php

<?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; 
} 

Bây giờ bạn có thể sử dụng WordPress get_header() và/hoặc get_footer() chức năng để vẽ mẫu trong dự án CI của bạn.

2

Tôi đang sử dụng Wordpress để quản lý các bài viết trong trang web thương mại điện tử CI tùy chỉnh. CI là trang web chính của tôi. Cấu trúc thư mục như sau:

/application (CI) 
/... (directories like javascript, stylesheets ...) 
/system (CI) 
/wordpress 
/.htaccess 
/index.php (CI) 

Tôi có thể sử dụng chức năng Wordpress trong bộ điều khiển CI của tôi mà không URL của tôi bị messed up khi thêm đoạn mã sau vào phía trên cùng của CI của index.php:

require_once './wordpress/wp-blog-header.php'; 

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

function ci_site_url($uri = '') { 
    $CI =& get_instance(); 
    $uri = ltrim(str_replace($CI->config->base_url('wordpress/'), '', $uri),'/'); // "wordpress/" is in my case the name of the directory where I installed Wordpress. See directory structure above. 
    return $CI->config->site_url($uri); 
} 

Cũng hoạt động khi sử dụng thư viện CI i18n của Jérôme Jaglale (http://jeromejaglale.com/doc/php/codeigniter_i18n).

Các vấn đề liên quan