¿Cómo se pueden integrar CodeIgniter y WordPress para que la apariencia y la plantilla de el blog de WordPress se transfiera a las páginas creadas por CodeIgniter?Cómo integrar la plantilla de WordPress con CodeIgniter
Respuesta
El primer paso es mover CodeIgniter y los archivos de WordPress en su propio directorio.
Después de eso, ponga la siguiente línea en la parte superior del archivo index.php
de CodeIgniter. Cambie la ruta al wp-blog-header.php
según sea necesario para señalar al directorio raíz de WordPress.
<?php
require('../wp-blog-header.php');
A continuación, puede utilizar las siguientes funciones dentro de sus puntos de vista:
<?php
get_header();
get_sidebar();
get_footer();
?>
Otras funciones auxiliares también se pueden encontrar en la documentación de WordPress que puede ayudarle en la integración del diseño.
Cuando incluí el archivo wp-blog-header.php en la página index.php de Codeigniter, tuve el problema de que site_url() se define tanto en el helper de URL codeigniter como en WordPress. He resuelto esto usando el siguiente código:
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");
última línea tiene que ser añadido como archivo de WordPress fue la adición de un encabezado de respuesta HTTP 'HTTP/1.0 404 Página no encontrada' a la cabecera.
Ahora está bien usar las funciones de WordPress para llamar a CodeIgntier.
si usted está planeando sobre el uso de la función site_url código encendedor en su código, o si está haciendo una fusión de un sitio de IC existente y WP ... esto podría ser útil:
en la parte superior de 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);
}
eficazmente este le permite utilizar site_url en CI, por lo que si ya ha añadido un montón de enlaces y el contenido de su proyecto que podría ayudarle.
Aquí hay otra manera de usar plantillas de WordPress en su proyecto codeigniter. Esto funciona mejor para mí, así que quería compartirlo. Probado con WordPress 3.3.1 y Codeigniter 2.1.
Directorio Estructura:
/ - WordPress
/ci/ - codeigniter
/ci/index.php (Parte superior de archivo de índice IC)
$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");
acuerdo con la función site_url colisión reemplazando la versión CodeIgniter por defecto. Deberá cambiar cualquier lugar que haya usado site_url()
en codeigniter para usar ci_site_url()
.
/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;
}
Ahora puede utilizar el WordPress get_header()
y/o get_footer()
funciones para dibujar la plantilla en el proyecto de CI.
Estoy usando Wordpress para administrar artículos en un sitio web personalizado de comercio electrónico de CI. CI es mi sitio principal. La estructura de directorios es la siguiente:
/application (CI)
/... (directories like javascript, stylesheets ...)
/system (CI)
/wordpress
/.htaccess
/index.php (CI)
soy capaz de utilizar las funciones de Wordpress en mis controladores de CI sin mis URLs están en mal estado cuando se añade el código siguiente al principio de index.php de CI:
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);
}
Funciona también cuando se utiliza la biblioteca CI i18n de Jérôme Jaglale (http://jeromejaglale.com/doc/php/codeigniter_i18n).
- 1. cómo integrar el motor de plantilla h2o con codeigniter
- 2. ¿Cómo integrar páginas HTML en WordPress?
- 3. subcategorías Wordpress Usar plantilla Categoría
- 4. ¿Cómo insertar un segundo menú en una plantilla de WordPress?
- 5. Cómo integrar Redis con SQLAlchemy
- 6. ¿Cómo integrar NSURLConnection con UIProgressView?
- 7. ¿Cómo integrar websocket con emberjs?
- 8. ¿Cómo integrar CKFinder con CKEditor?
- 9. Cómo integrar NHibernate con Lucene.Net
- 10. Cómo integrar ezComponents con Magento
- 11. ¿Cuál es el mejor software de foro para integrar con un blog de Wordpress?
- 12. Cómo integrar el Árbol de opciones para el tema de Wordpress
- 13. Integrar Spring con IntelliJ
- 14. Integrar solr con mySql
- 15. ¿Cómo integrar la biblioteca de códigos de Matlab con Android?
- 16. ¿Integrar SVN con Notepad ++?
- 17. usando la doctrina con codeigniter
- 18. Mostrando Wordpress 'Plantilla de comentarios' fuera del 'círculo'
- 19. ¿Cómo integrar WinMerge con TortoiseSvn después de la instalación?
- 20. Wordpress con Haml/Sass
- 21. Make * ALL * Wordpress Categories usa su plantilla de categoría principal
- 22. plantilla con la plantilla de múltiples parámetros
- 23. Integrar Erlang con C++
- 24. Cómo integrar SockJS con otro marco web
- 25. Crear plantilla para tipos de publicación personalizados en Wordpress
- 26. ¿Cómo puedo integrar Jenkins con Redmine?
- 27. Cómo comenzar a integrar pyflakes con Hudson
- 28. WordPress template_include - cómo engancharlo correctamente
- 29. ¿Cómo podría integrar phpunit con Hudson CI?
- 30. ¿Cómo integrar NAnt con Visual Studio?
funciona absolutamente perfecto gracias hombre –