• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

将WordPress与Symfony集成

wordpress 来源:Alex Grin 7次浏览

我有一个用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评论中的2个步骤。我的actions.class.php文件看起来像这样:将Wordpress与Symfony集成

<?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-博客 – 的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内容的过程中正在死去。这可能如何解决?

===========解决方案如下:

我已经编写了关于theodo.fr的有用文章的后续指南,该文章适用于最新版本的WordPress,并且有升级步骤:http://blog.codeclarity.com/2009/12/02/integrating-symfony-and-wordpress/。我相信你的冲突是由Symfony和WordPress定义的esc_js函数。如果你在步骤4中运行我的命令,你应该很好地使用最新版本。希望有所帮助。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)