在Yii框架应用程序中嵌入Wordpress页眉和页脚

时间:2013-01-07 01:58:49

标签: php wordpress yii

我正在构建一个使用Wordpress作为CMS的网站,并使用Yii框架构建。所有的业务逻辑都运行良好。大多数可见页面都填充了Wordpress管理员的内容,只有用户配置文件部分使用Yii构建。

我的问题是我想在Yii应用程序中重用wordpress页面的布局。最初我尝试在一个空白的PHP文件中完成它,所有内容都按预期使用此代码:

<?php
require( '/var/www/wordpress/wp-load.php' );

get_header();
?>

<div>
some content here
</div>

<?php
get_footer();
?>

问题是,当我在Yii中创建一个新的布局,以便我可以重用页眉和页脚时,它会崩溃并显示空白页面。我使用require('/var/www/wordpress/wp-blog-header.php');require( '/var/www/wordpress/wp-load.php' );进行了尝试。 这是我用来在Yii中加载wordpress功能的代码,但不幸的是它不起作用。

<?php /* @var $this Controller */
spl_autoload_unregister(array('YiiBase','autoload'));

define('WP_USE_THEMES', true);
require('/var/www/wordpress/wp-blog-header.php');

//require( '/var/www/wordpress/wp-load.php' );
get_header();

spl_autoload_register(array('YiiBase', 'autoload'));

 ?>

非常感谢任何帮助。理想情况下,我想在Yii布局/视图中使用get_header()get_footer() wordpress函数。

由于

更新

我检查了Apache日志,当我尝试在浏览器中打开页面时,似乎记录了以下错误:PHP Fatal error: Call to a member function get() on a non-object in /var/www/wordpress/wp-includes/query.php on line 27 此外,当我注释掉get_header();行时,页面打开时没有任何错误(并且没有任何样式)。所以有些事情会阻止get_header()在Yii中工作。

1 个答案:

答案 0 :(得分:0)

我最后在初始化代码之前的Yii的index.php文件中添加了require( '/var/www/wordpress/wp-load.php' );。然后我能够在我的项目中使用所有WordPress功能。这有助于我使用get_header()get_footer()函数重用Yii中WordPress的页眉和页脚布局。