我正在构建一个使用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中工作。
答案 0 :(得分:0)
我最后在初始化代码之前的Yii的index.php文件中添加了require( '/var/www/wordpress/wp-load.php' );
。然后我能够在我的项目中使用所有WordPress功能。这有助于我使用get_header()
和get_footer()
函数重用Yii中WordPress的页眉和页脚布局。