我有一个使用Symfony 1.2构建的网站。我正在尝试将Wordpress 2.8.4集成到其中以支持我的博客。我按照http://www.theodo.fr/blog/2009/03/integrate-wordpress-into-symfony/上的说明操作,包括http://www.theodo.fr/blog/2009/03/integrate-wordpress-into-symfony/comment-page-1/#comment-573评论中的两个步骤。我的actions.class.php文件如下所示:
<?php
class sfWordpressActions extends sfActions
{
public function executeIndex(sfWebRequest $request)
{
// Don't load symfony's I18N
$standard_helpers = sfConfig::get('sf_standard_helpers');
$standard_helpers = array_diff($standard_helpers, array('I18N'));
sfConfig::set('sf_standard_helpers', $standard_helpers);
define('WP_USE_THEMES', true);
chdir( dirname(__FILE__) . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'lib' . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'wordpress' );
global $wpdb;
ob_start();
require_once( 'wp-blog-header.php' );
$this->blog = ob_get_contents();
if (function_exists('is_feed') && is_feed())
{
ob_end_flush();
throw new sfStopException();
}
else
{
ob_end_clean();
}
}
}
?>
我的indexSuccess.php只是
This is a test
<?php echo $blog ?>
我的wp-blog-header.php是
<?php
/**
* Loads the WordPress environment and template.
*
* @package WordPress
*/
if ( !isset($wp_did_header) ) {
$wp_did_header = true;
require_once( dirname(__FILE__) . '/wp-load.php' );
// @HACK FABRICE
// All variables defined here are considered global by Wordpress
$local_global_vars = get_defined_vars();
foreach($local_global_vars as $local_name => $local_value)
{
$GLOBALS[$local_name] = $local_value;
}
// Don't create new global variables ourselves, and do not overwrite other global variables, for example $name...
unset($local_name, $local_value, $local_global_vars);
// @HACK FABRICE
wp();
// @HACK Fabrice
global $posts;
// @HACK Fabrice
require_once( ABSPATH . WPINC . '/template-loader.php' );
}
这是我的问题:
实际上,当我进入页面时,我什么也得不到。没有我的Symfony标题,没有Wordpress内容,没有。当我注释掉“require_once('wp-blog-header.php');”时在actions.class.php中,一切正常,但没有Wordpress内容。这让我相信Symfony在包含Wordpress的过程中正在某个地方死去。如何解决这个问题?
答案 0 :(得分:3)
我写了一篇关于theodo.fr的有用文章的后续指南,该文章适用于最新版本的WordPress,并有升级步骤:http://blog.codeclarity.com/2009/12/02/integrating-symfony-and-wordpress/。我相信你的冲突是Symfony和WordPress定义的esc_js函数。如果您在步骤4中运行我的命令,那么最好使用最新版本。希望有所帮助。
答案 1 :(得分:0)
我尝试了一段时间,但无法在2.8.4中使用它。但是,我确实使用以下链接和一些修补工具来使用Wordpress 2.7.1:
Step 1: Description of hacks necessary to make WordPress work inside Symfony.
Step 2: Share user information between Symfony and Wordpress