Ich habe ein Plugin für WordPress gebaut, das ein ähnliches Ziel wie Ihres verfolgt, allerdings mehr auf CodeIgniter basiert. Nicht wissen, Zend schrecklich gut, ich denke, dies sollte helfen:
Erstellen Sie eine Datei namens routes.php in Ihrem Plugins-Verzeichnis mit dem folgenden Code:
add_action( 'init', 'add_custom_urls' );
function add_custom_urls(){
global $wp, $wp_rewrite;
$wp_rewrite->add_rule( '(.*)$', 'index.php?&cPath=$matches[1]', 'top' );
$wp->add_query_var( 'cPath' );
}
Stellen Sie sicher, dass Sie beide Plugins in Ihrer Verwaltung aktivieren. Mit diesen beiden Dateien können Sie die URL abfangen, bevor Wordpress versucht, herauszufinden, was damit zu tun ist. Sie können reguläre Ausdrücke verwenden, um eine genauere Kontrolle darüber zu haben, welche Seiten abgefangen werden sollen. Möglicherweise müssen Sie den Datensatz in Ihrer _options db-Tabelle löschen, in der option_name
= 'rewrite_rules', bevor dies funktioniert.
Als nächstes erstellen Sie ein weiteres Plugin mit dem folgenden Code:
add_action( 'template_redirect', 'bootstrap' );
function bootstrap(){
global $cPath;
echo( "cPath : $cPath" );
if( $cPath ){
dosomethingwith( $cPath );
}
}
Fügen Sie Ihren gesamten Code in die Funktion dosomethingwith() ein. Sie müssen herausfinden, ob die angeforderte URL auf einen Zend-Controller abgebildet werden kann, usw. http://www.domain.com/Users/getUser/ würde Ihnen $cPath = Users/getUser/ Wenn erfolgreich, werden Sie wahrscheinlich auch wollen, um die(), so dass, sobald es abgeschlossen ist Wordpress wird nicht versuchen, und übernehmen Sie wieder.