Подтвердить что ты не робот

Zend Framework и интеграция Wordpress

У нас есть существующий сайт Zend Framework, размещенный на нашем доменеdomdom.com и блоге Wordpress на blog.ourdomain.com

Мы хотим перенести блог на сайт ourdomain.com/blog - но, похоже, я дошел до конца земли и не могу понять, как это сделать. Я пробовал различные материалы .htaccess, настраивал контроллер блога и включал некоторые файлы Wordpress и т.д., Но безрезультатно.

Есть ли у кого-нибудь идеи?

Настройка виртуального хоста:

ServerAdmin [email protected]
DocumentRoot "/Users/bradyeager/Sites/TWPZend/public"
ServerName twps
ErrorLog "logs/twps-error-log"
CustomLog "logs/twps-access_log" common

  Параметры Индексы FollowSymLinks

AllowOverride All

Order allow,deny
Allow from all

4b9b3361

Ответ 1

Самый эффективный и простой способ сделать это, изменив ваш файл .htaccess, чтобы НЕ отправлять что-либо, начинающееся с /blog, в приложение ZF - просто передайте его в Wordpress. Разумеется, Wordpress должен быть установлен внутри вашего корня документа, чтобы это работало именно так, как вы обычно его устанавливали.

Пример:

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]

RewriteRule ^blog - [NC,L]

RewriteRule ^.*$ index.php [NC,L]

Вся эта глупость о создании пользовательских контроллеров, действий и маршрутов в вашем ZF-приложении, а затем передача в Wordpress через ваше приложение абсолютно нелепо. Вы выполняете полный цикл отправки вашего приложения, просто перейдете в другое приложение?

Ответ 2

Я часто использую эту конфигурацию на самом деле, вот что я делаю:

 /application
 /library
     /Zend 
     /wordpress ( symlink to my wordpress folder )
 /public
     index.php ( i add wordpress & the zend folder to my include path )

По общему признанию, это немного жестокое решение, учитывая все ненужные вещи, включенные в процесс...

Edit:

// Define path to application directory
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));

// Define application environment
defined('APPLICATION_ENV')
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));

// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library'),
    realpath(APPLICATION_PATH . '/../library/wordpress'),
    get_include_path(),
)));

//Get the wordpress environment
define('WP_USE_THEMES', false);
require_once 'wp-blog-header.php';

/** Zend_Application */
require_once 'Zend/Application.php';  



// Create application, bootstrap, and run
$application = new Zend_Application(
    APPLICATION_ENV, 
    APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()
            ->run();

Ответ 3

Одна из лучших статей о переносе сайта без ZF в ZF происходит из Chris Abernethy.

Как и вы, он настраивает специальный контроллер для тех не-ZF, которые обрабатываются script. Тем не менее, он (в конце концов) устанавливает ZF-маршруты, соответствующие тем страницам, отличным от ZF, вместо того, чтобы играть с внешним .htaccess.

Невозможно применить непосредственно к вашему делу, так как ваш пример включает в себя субдомен, в то время как он включает страницы в одном домене. Но есть некоторые хорошие идеи, которые могут быть полезны.

Ответ 4

См. правильный ответ, предоставленный Джейсоном. Просто убедитесь, что ваш файл wordpress.htacess переписывается в правильный index.php. По умолчанию он перепишет обратно в base index.php - который принадлежит Zend. Мои решения заключались в том, чтобы изменить Wordpress '.htaccess RewriteBase в /blog вместо/

Ответ 5

Я написал библиотеку с открытым исходным кодом, которая может решить вашу проблему под названием Vulnero, которая позволяет запускать приложение Zend Framework в WordPress. Ваши маршруты обрабатываются вашим приложением, все остальное идет в WordPress. Может даже сделать ваши взгляды в вашем шаблоне WordPress, если хотите. Интегрирует аутентификацию, подключения к базе данных, все это. Источник находится на GitHub или вы можете прочитать документацию на http://www.vulnero.com/.

Ответ 6

Для переноса Wordpress в ZF вы можете использовать wploader.
Это работает для меня, когда я использую wordpress, поскольку множественный сайт включен.
Вы можете использовать все объекты контроллера ZF внутри ваших файлов Wordpress.
Вам не нужно взломать ваш Wordpress, так что вы можете легко обновить или обновить версию Wordpress.