it-swarm.com.de

Erstelle eine einzigartige Seite ohne header.php für den json Feed

Ich habe zwei WordPress-Sites auf separaten Domains. Ich muss die neuesten Beiträge innerhalb einer Kategorie über einen JSON-Feed auf einer Site veröffentlichen, den ich für die andere Site verwenden muss. Ich muss eine "versteckte" URL eingeben, zum Beispiel: /themes/mytheme/json_api.php?cat=news, um die json-Antwort zu erhalten.

Ich möchte, dass dieser json-Feed eine eindeutige Seite ohne header.php ist und nur den Code enthält, der für die Ausgabe der Beiträge in einer bestimmten Kategorie erforderlich ist. Was muss ich importieren, um auf WP_Query in dieser Datei zugreifen zu können?

1
jaysonp

Warum nicht ein RSS-Widget verwenden?

1

Sieht so aus, als würden Sie versuchen, WordPress zu booten. Alles, was Sie tun müssen, ist die Datei wp-load.php, die sich in Ihrem WordPress-Stammverzeichnis befindet. Dies macht die meisten WP Funktionen (wie die WP_Query-Klasse) für Ihr benutzerdefiniertes Skript verfügbar.

include('wp-load.php');

Natürlich müssen Sie den Pfad zum Include anpassen und Ihre eigenen Abfrage-/Ausgabedateien schreiben.

1
MathSmath

Ich würde vorschlagen, dass Sie die AJAX-API verwenden. Dies bootet den WordPress Core für Sie und bietet Ihnen die meisten Funktionen, die Sie erwarten würden, einschließlich der Klassen $wpdb global und WP_Query. Sie können auch das Berechtigungssystem und die Nonce-Funktionen von WordPress verwenden.

Um dies zu erreichen, erstellen Sie anstelle einer separaten Datei eine Rückruffunktion mit Ihrem Skript und binden Sie diese in das AJAX System ein.

function ajax_callback_wpse_4870() {
  // your script
}
add_action('wp_ajax_your_callback_hookname','ajax_callback_wpse_4870');
add_action('wp_ajax_nopriv_your_callback_hookname','ajax_callback_wpse_4870');

Ihr Javascript ändert dann POSTs zu /wp-admin/admin-ajax.php mit einem Aktionsparameter namens your_callback_hookname.

Wie aus den Hook-Namen hervorgeht, ist der erste Hook für angemeldete Benutzer, der zweite für nicht angemeldete Benutzer. Sie benötigen nicht beide Hooks, wenn Sie nur den einen oder den anderen wünschen.

1
s_ha_dum