J'ai un site construit avec Symfony 1.2. J'essaie d'y intégrer Wordpress 2.8.4 pour alimenter mon blog. J'ai suivi les instructions au http://www.theodo.fr/blog/2009/03/integrate-wordpress-into-symfony/, y compris les 2 étapes dans les commentaires au http://www.theodo.fr/blog/2009/03/integrate-wordpress-into-symfony/comment-page-1/#comment-573. Mon fichier actions.class.php ressemble à ceci:l'intégration de Wordpress avec 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();
}
}
}
?>
Mon indexSuccess.php est tout simplement
This is a test
<?php echo $blog ?>
Et mon wp-blog-header.php est
<?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');
}
Voilà mon problème:
En l'état, je n'obtiens rien quand je vais à la page. Aucun de mes en-têtes Symfony, aucun contenu Wordpress, rien. Quand je commente la ligne "require_once ('wp-blog-header.php');" dans actions.class.php, tout fonctionne bien mais il n'y a pas de contenu Wordpress. Cela m'amène à croire que Symfony est en train de mourir quelque part dans le processus d'inclusion de la substance Wordpress. Comment cela pourrait-il être réparé?
Fantastique. Cela a très bien fonctionné. Merci pour l'aide. –