Итак, я создал страницу в Wordpress и пользовательский шаблон для этой страницы, в который я поместил следующий Zend Framework код:
require_once('Zend/Loader.php');
Zend_Loader::registerAutoload();
$db = Zend_Db::factory('Pdo_Mysql', array(
'host' => 'localhost',
'username' => 'username',
'password' => 'password',
'dbname' => 'dbname'
));
Zend_Db_Table::setDefaultAdapter($db);
class Users extends Zend_Db_Table_Abstract {
protected $_name = 'wp_users';
}
$users = new Users();
$users = $users->fetchAll()->toArray();
print_r($users[0]['user_login']);
Все это прекрасно работает, так что, очевидно, возможно использовать Zend в сочетании с Wordpress хотя бы в некоторой степени.
Становится очевидным, что проблема в том, кто контролирует перезапись URL , или маршрутизацию, или самозагрузку (не уверен в правильной терминологии). Если бы я поставил конец приведенного выше кода, запустив $ users = new Users ();, в контроллер следующим образом:
class UsersController extends Zend_Controller_Action {
function getUserAction() {
$this->_helper->viewRenderer->setNoRender();
$users = new Users();
$users = $users->fetchAll()->toArray();
echo $users[0]['user_login'];
}
}
Как бы я тогда вызвал эту функцию? Я хотел бы вызвать его из javascript через XHR-запрос в ответ на событие на странице, но запрос URL 'index.php / Users / getUser /' возвращает 'Входной файл не выбран'. Попытка получить доступ к URL http://www.domain.com/Users/getUser/ приводит к появлению страницы Wordpress 404.
Есть ли способ обойти это? Конечно, это относится не только к WordPress - я ожидаю, что оно применимо к любому существующему приложению, которое перезаписывает / направляет запросы через загрузчик.