2 Stimmen

Kann ich eine von Zend-Framework betriebene Webanwendung in eine Wordpress-Site integrieren?

Ich habe ein Projekt, in dem ich in der Lage sein möchte, wp_list_pages() auf einer Seite aufzurufen, die auch das Zend Framework verwendet, um einige komplexe Schnittstellen verwaltet benutzerdefinierte Daten außerhalb von Wordpress.

Diese Seite sollte den Benutzer auch zur Wordpress-Anmeldeseite weiterleiten, wenn er nicht bereits mit der entsprechenden Berechtigungsstufe angemeldet ist.

Wie würde dies auf hohem Niveau funktionieren, d.h. muss ich die Wordpress-Bootstrap-Datei bearbeiten, um die benutzerdefinierte Schnittstelle basierend auf einer bestimmten URL oder etwas bedingt zu implementieren, aber immer noch bestimmte Dateien enthalten, um wp_list_pages() auf dieser benutzerdefinierten Schnittstelle aufrufen zu können?

0voto

postpostmodern Punkte 1986

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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X