интеграция Wordpress с Symfony

У меня есть сайт, созданный с помощью Symfony 1.2. Я пытаюсь интегрировать в него Wordpress 2.8.4, чтобы вести свой блог. Я следовал инструкциям на http://www.theodo.fr/blog/2009/03/integrate-wordpress-into-symfony/, включая 2 шага в комментариях на http://www.theodo.fr/blog/2009/03/интегрировать-wordpress-into-symfony/comment-page-1/#comment-573. Мой файл action.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');" в action.class.php все работает нормально, но нет контента Wordpress. Это наводит меня на мысль, что Symfony умирает где-то в процессе включения материалов Wordpress. Как это можно исправить?


person Alex Grin    schedule 01.10.2009    source источник


Ответы (2)


Я написал дополнительное руководство к полезной статье на theodo.fr, которое работает с последними версиями WordPress и содержит инструкции по обновлению: http://blog.codeclarity.com/2009/12/02/integrating-symfony-and-wordpress/. Я считаю, что ваш конфликт — это функция esc_js, определенная как Symfony, так и WordPress. Если вы запустите мою команду на шаге 4, у вас должна быть последняя версия. Надеюсь, это поможет.

person nortron    schedule 03.12.2009

Я пытался какое-то время, но не смог заставить это работать в 2.8.4. Однако я получил почти все, что работает с Wordpress 2.7.1, используя следующие ссылки и некоторые изменения:

Шаг 1: Описание хаков, необходимых для работы WordPress внутри Symfony .

Шаг 2. Обмен информацией о пользователях между Symfony и Wordpress

Дополнительный код для шага 2

Помогите настроить базу данных сеансов

person Alex Grin    schedule 09.10.2009