首页 > 代码库 > yii和wp做博客
yii和wp做博客
第一步,安装yii和wp:
第二步,创建protected/components/ExceptionHandler.php文件
<?phpclass ExceptionHandler{ public function __construct() { define(‘YII_ENABLE_EXCEPTION_HANDLER‘,false); set_exception_handler(array($this,‘handleException‘)); } public function handleException($exception) { // disable error capturing to avoid recursive errors restore_error_handler(); restore_exception_handler(); $event=new CExceptionEvent($this,$exception); if($exception instanceof CHttpException && $exception->statusCode == 404) { try { Yii::app()->runController("blog/index"); } catch(Exception $e) {} // if we throw an exception in WordPress on a 404, we can use // our main error handler to handle the error } if(!$event->handled) { Yii::app()->handleException($exception); } }}?>
第三步,把wp的目录移到yii中。。修改 yii 的入口文件 /xxx/website/index.php
这一步使得 yii 程序启动时加载 wordpress 的程序
<?php
define(‘WP_USE_THEMES‘, true);
$wp_did_header = true;
require_once(‘wordpress/wp-load.php‘);
require_once(dirname(__FILE__) . ‘/protected/components/ExceptionHandler.php‘);
$router = new ExceptionHandler();
// change the following paths if necessary
$yii=dirname(__FILE__).‘/../../framework/yii.php‘;
$config=dirname(__FILE__).‘/protected/config/main.php‘;
// remove the following line when in production mode
// defined(‘YII_DEBUG‘) or define(‘YII_DEBUG‘,true);
require_once($yii);
Yii::createWebApplication($config)->run();
第四步,在 yii 中运行 wordpress:protected/controllers/SiteController.php
修改里面的 actionIndex函数为
$this->layout = false; // note that we disable the layouttry { //spl_autoload_unregister(array(‘YiiBase‘, ‘autoload‘)); wp(); require_once( ABSPATH . WPINC . ‘/template-loader.php‘ ); //spl_autoload_register(array(‘YiiBase‘, ‘autoload‘)); Yii::app()->end();}// if we threw an exception in a WordPress functions.php// when we find a 404 header, we could use our main Yii// error handler to handle the error, log as desired// and then throw the exception on up the chain and// let Yii handle things from here// without the above, WordPress becomes our 404 error// handler for the entire Yii appcatch (Exception $e) { throw $e;}
好了,在浏览器中输入你的域名,一个整合在 yii 里的 wordpress 就呈现啦。
第五步,让 yii 的页面使用 wordpress 的主题:
如果希望你的网站统一用 wordpress 的主题,同时又想用 yii 来写页面,那么再做下面一个小修改就好了。
打开/protected/views/layouts/main.php 将里面的内容替换为
<?php get_header(); ?><div id="primary" class="site-content"> <div id="content" role="main"> <?php // echos Yii content echo $content; ?> </div></div><?php get_sidebar(); ?><?php get_footer(); ?>
OK,大功告成。当然如果你对 yii 熟悉,这些 controller、layout 什么都可以随便搞。
转自http://www.shannap.com/yii-integrate-wordpress.html
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。