Wie lade ich WordPress auf einer Nicht-WP-Seite?

9

Ich möchte die get_option()Funktion von WordPress in einer der Dateien meines Themas verwenden, die nicht mit WP zusammenhängt. Sie befindet sich nur im selben Verzeichnis wie die anderen Themendateien. Ich benötige diese Datei aufgrund einiger zusätzlicher IPN-Paypal-Aktionen, aber ich benötige einige Werte aus der Optionstabelle, die in WP vorhanden sind, um auf dieser Seite aufgerufen zu werden, damit sie funktioniert. Ich weiß, dass ich nicht einfach verwenden kann, get_option()da diese Datei von WordPress übersehen wird. Gibt es einen Ansatz, bei dem einige Teile von WordPress in mein Thema aufgenommen werden, damit diese Funktionalität nur funktioniert?

menislici
quelle
Ich habe Ihre Frage erneut beantwortet. Tipp: Schauen Sie einfach in wp-load.php .
Kaiser
Haben Sie darüber nachgedacht, diese Werte mithilfe einer benutzerdefinierten MySQL-Abfrage aus der Datenbank zu entfernen? Das Laden des gesamten WordPress-Systems für einige Optionswerte ist möglicherweise übertrieben. Aus Gründen der Wartbarkeit empfehle ich Abdussamads Antwort (in ein Plugin einbauen)
Erik J.

Antworten:

7

Der einfachste Weg ist die Include- wp-load.phpDatei. Diese Datei lädt den gesamten WP-Kern, sodass Sie WP-Funktionen wie get_optionin Ihrer PHP-Datei verwenden können:

include 'path/to/wp-load.php';

echo get_option( 'option_name' );
Anh Tran
quelle
+1 Aber durch obige Antwort können Sie "das einfachste" löschen;)
kaiser
2
Eine Zeile (einschließlich wp-load.php) gegen mehrere Zeilen (Plugin-Kommentare am Anfang), das ist die einfachste, lol.
Anh Tran
6

Der kürzeste Weg besteht darin wp-load.php, das Laden der Template-Engine zu laden und abzubrechen (Hinweis: Dies ist nicht möglich, wenn Sie die Header-Datei laden würden, wie Sie sie auf vielen Websites im Interweb sehen).

# No need for the template engine
define( 'WP_USE_THEMES', false );
# Load WordPress Core
// Assuming we're in a subdir: "~/wp-content/plugins/current_dir"
require_once( '../../../wp-load.php' );
Kaiser
quelle
Gibt es mehr Dokumente WP_USE_THEMESals codex.wordpress.org/The_Loop ? :)
jave.web
@ jave.web Sicher: Die Quellcode-Cross-File-Suche .
Kaiser
4

Verwandeln Sie Ihre externe Datei in ein WordPress-Plugin. Auf diese Weise haben Sie vollen Zugriff auf die WP-Kernfunktionen.

Abdussamad
quelle
1
Dies würde Ihr Leben auf lange Sicht viel einfacher machen.
Westondeboer
0

Dies sollte bei jeder WordPress-Installation funktionieren:

<?php
function load_wp_load() {
  $wp_did_header = true;
  require_once($_SERVER['DOCUMENT_ROOT'] . '/index.php');
  $matches = preg_grep('/wp-blog-header.php/', get_included_files());
  if (!empty($matches)) {
    $abspath = dirname(reset($matches)) . '/';
    define('ABSPATH', $abspath);
    require_once(ABSPATH . 'wp-load.php');
  }
}
?>
Kodie Grantham
quelle