そこで、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'];
}
}
その関数をどのように呼び出すのでしょうか? 私の意図は、ページ上のイベントに応答して XHR リクエストを介して JavaScript から呼び出すことですが、URL 'index.php/Users/getUser/' をリクエストすると、'入力ファイルが選択されていません' が返されます。URL http://www.domain.com/Users/getUser/にアクセスしようとすると、Wordpress 404 ページが生成されます。
これを回避する方法はありますか?もちろん、ワードプレスだけに当てはまるわけではありません。ブートストラップを介してリクエストを書き換え/ルーティングする既存のアプリケーションにも当てはまると思います。