it-swarm.com.de

Konsumieren Sie eine externe API in WordPress?

Ich habe einen Kunden, der eine WordPress-Website hat, und er möchte sie erweitern, um neue Funktionen hinzuzufügen. Diese Funktionen sind in einer Website enthalten, die ich bereits erstellt habe (eine Art Suchmaschine über eine Datenbank mit einigen Filtern) und die unter neuen Verbesserungen steht.

Was ich vorhabe, ist, eine JSON-API meiner Website zu erstellen (mit allen Suchfunktionen in meiner Datenbank) und die WordPress-Website dazu zu bringen, diese API zu konsumieren. Dann muss ich nur noch Aufrufe erstellen, um Suchergebnisse anzuzeigen.

Das Problem ist, dass ich WordPress überhaupt nicht kenne (für mich ist es etwas, wo Sie Artikel über das Admin-Panel hinzufügen können ...) und ich nicht weiß, wie wir unseren eigenen serverseitigen Code darin schreiben können. Ich habe bei Google nach "Plugin" gesucht und mich gefragt, ob dies möglich ist und ob dies der einfachste Weg ist, da ich den Code nicht von einem anderen Dritten verwenden lassen muss Party. Wenn es möglich ist, eine WordPress-Installation zu hacken, um meine PHP -Dateien hinzuzufügen, Code, den ich benötige (meine Ansichten mit demselben WordPress-CSS), wäre es einfacher, aber ich weiß nicht, ob es möglich ist?

8
tahir

Eine kurze Einführung in die WordPress-Entwicklung, die Ihnen helfen oder Sie verwirren könnte:

Das Wichtigste, was Sie beachten sollten: Alles ist nur PHP. Und außerdem: Bearbeiten Sie nicht die Kerndateien von WordPress, da Sie Probleme bekommen, wenn Sie später auf eine neuere Version aktualisieren. Der einzige Code, den Sie bearbeiten sollten, ist der von Plugins und Themen.

Wenn Sie einer vorhandenen Seite nur etwas hinzufügen müssen, kann es hilfreich sein, nur die richtige Designdatei zu bearbeiten. Wenn Sie jedoch etwas Fortgeschrittenes tun müssen (und wenn Sie eine zusätzliche "Ansicht" wie bei einer bestimmten URL hinzufügen müssen, die in WordPress fortgeschrittener ist), müssen Sie den Code an einer Stelle hinzufügen, die zuvor im WordPress-Startprozess geladen wird .

Der Grund dafür ist, dass WordPress basierend auf der URL immer eine Post-Abfrage für Sie durchführt. Wenn Sie zu /category/banana/ gehen, werden Beiträge der Kategorie banana abgefragt und die richtige Vorlagendatei geladen, in der Sie nur eine Schleife durchlaufen und sie anzeigen müssen. Wenn Sie jedoch zu /custom-view/ gehen, wird WordPress wahrscheinlich keinen Beitrag finden und die 404-Vorlage laden - so dass Sie keine einfache Möglichkeit zur Wiederherstellung haben!

Einige Leute lösen dies, indem sie "Stubseiten" erstellen: Sie erstellen eine Seite in WordPress, bei der der Inhalt nicht wichtig ist, sondern nur die Vorlage: Dort tun sie, was immer sie wollen. Das ist hackisch, aber es funktioniert. Der saubere Weg wäre, extra Regeln umschreiben zu definieren, um WordPress mitzuteilen, dass /custom-view/ eine gültige URL ist, aber dass dort etwas anderes passieren sollte.

Wenn Sie dies tun möchten, müssen Sie sich in das WordPress-Kernsystem einbinden. Der wichtige Teil hier ist Hook in , nicht Modifizieren . WordPress hat Aktionen und Filter . Eine Aktion ist nur eine Ankündigung ( "Hey, wir schreiben gerade das <head>-Tag. Möchten Sie auch etwas hinzufügen?" ). Mit einem Filter können Sie eine Variable ändern ( "Dies ist der Beitragstitel. Wenn Sie ihn ändern möchten, geben Sie einen neuen Wert zurück" ). Natürlich besteht der Trick jetzt darin, zu wissen, welche Aktionen und Filter Sie verwenden sollten. Dies hängt von der Art und Weise ab, wie Sie es auswählen (Stubseiten oder neue Umschreiberegeln), sodass ich hier nicht auf Details eingehen werde.

Sie definieren die Aktionen und Filter, die Sie in einer Plugin-Datei oder in der Datei functions.php Ihres Themas verwenden möchten. Sie haben das Besondere: Sie werden geladen, während WordPress bootet , also bevor die Hauptabfrage ausgeführt wird und so weiter. Eine Plugin-Datei ist nur eine PHP -Datei, die im Verzeichnis wp-content/plugins/ abgelegt wird und einen speziellen Header aufweist, damit WordPress ihren Namen lesen und im Administrationsbereich anzeigen kann, in dem Sie sie aktivieren und deaktivieren können (damit Sie sie verlassen können) das Plugin im Verzeichnis aber vorübergehend deaktivieren).

9
Jan Fabry

Grundlagen

Sie müssen die Grundlagen für Plugins und Themen umgehen. Kurz gesagt: Sie sind Ergänzungen der WordPress-Kernfunktionalität. Normalerweise "Plugins" geht es mehr um Funktionalität und "Themes" geht es mehr um die "Ansicht". Vielleicht möchten Sie auch etwas über die "Plugin API" lesen.

JSON

Möglicherweise möchten Sie das in Core integrierte Skript json2 verwenden, um eine "sichere" API bereitzustellen.

JSON-Beispiel

Der Rest wäre ungefähr so:

$response = json_encode( array( 
     'data' => $your_output 
) );
header( "Content-Type: application/json" );
echo $response;

XML Rpc

Der Codex hat auch etwas über das "XML Rpc" .

HTTP-API

Eine andere Möglichkeit wäre http Anfragen . Stellen Sie sicher, dass Sie die Verweise am Ende des Links lesen.


Webhooks

Dies ist zusätzlich, da es mehr um Geben einer verbrauchbaren API geht. Erklärung hier . Und es gibt auch ein Plugin namens HookPress , das diesen Job für Sie erledigt. Einige Folien vom Autor auch.

2
kaiser

Ich nehme an, Sie kennen PHP? Oder ist das auch eine Barriere?

Im Wesentlichen sind Plugins in WordPress die Konvention, wie PHP Code gepackt wird, damit er vom WordPress-Kern erkannt und verarbeitet wird. Es ist eher das Format als die Funktionalität.

Was die eigentliche Funktionalität angeht, können Sie so gut wie beliebiges PHP ausführen. Es ist jedoch empfehlenswert, die APIs von WP zu verwenden, um Kompatibilität und Zuverlässigkeit zu gewährleisten.

Stellen Sie sich Ihren Code im Kontext von WP als include vor (technisch gesehen). Von dort hängt es von Ihren Bedürfnissen und Ressourcen ab, wie viel davon für WordPress spezifisch umgeschrieben wird.

1
Rarst

Ja, es ist möglich.

die meisten Plugins werden über sogenannte Hooks erstellt:

zum Beispiel:

add_action("hook", "function")

es ist ziemlich einfach, sich ein Plugin zu erstellen, sobald Sie wissen, wie dieses Framework funktioniert. Nun, ich würde Ihnen raten, sich damit zu vermarkten, dem umfangreichsten Ort für Wissen (wenn auch nicht dem am besten organisierten - wie PHP). net) ist der wordpress codex .

0
Itai Sagi