Ich habe also eine Seite in Wordpress und eine benutzerdefinierte Vorlage für diese Seite, in die ich Folgendes eingefügt habe Zend-Framework Code:
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']);
Dies alles funktioniert gut, so ist es eindeutig möglich, Zend in Verbindung mit Wordpress zumindest bis zu einem gewissen Grad zu verwenden.
Es wird offensichtlich, dass das Problem besteht darin, wer die URL-Umschreibung kontrolliert oder das Routing oder das Bootstrapping (bin mir der korrekten Terminologie nicht sicher). Wenn ich das Ende des obigen Codes, beginnend mit $users = new Users();, wie folgt in einen Controller einfügen würde:
class UsersController extends Zend_Controller_Action {
function getUserAction() {
$this->_helper->viewRenderer->setNoRender();
$users = new Users();
$users = $users->fetchAll()->toArray();
echo $users[0]['user_login'];
}
}
Wie würde ich diese Funktion dann aufrufen? Meine Absicht wäre es, sie von Javascript über eine XHR-Anfrage als Reaktion auf ein Ereignis auf der Seite aufzurufen, aber die Anforderung der URL "index.php/Users/getUser/" gibt "No input file selected" zurück. Versuchen Sie, auf die URL zuzugreifen http://www.domain.com/Users/getUser/ erzeugt eine Wordpress 404-Seite.
Gibt es eine Möglichkeit, dies zu umgehen? Es gilt nicht nur für Wordpress, natürlich - ich nehme an, es gilt für jede bestehende Anwendung, die Anfragen über ein Bootstrap umschreibt/umleitet.