Zend Framework и интеграция с Wordpress - PullRequest
       24

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

11 голосов
/ 26 сентября 2010

У нас есть сайт Zend Framework, размещенный на ourdomain.com, и WordPress блог на blog.ourdomain.com

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

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

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

ServerAdmin webmaster@dummy-host.example.com
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

Ответы [ 6 ]

15 голосов
/ 26 сентября 2010

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

1 голос
/ 26 сентября 2010

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

 /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();
0 голосов
/ 27 декабря 2013

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

0 голосов
/ 16 февраля 2012

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

0 голосов
/ 26 сентября 2010

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

0 голосов
/ 26 сентября 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...