webentwicklung-frage-antwort-db.com.de

Was genau gibt $ wp_filesystem-> abspath () zurück?

Das eigentliche Problem bei der Verwendung von $wp_filesystem ist die Definition der richtigen Pfade. In der Dokumentation des Dateisystems wird der Pfad (zum Beispiel für das Plugins-Verzeichnis) normalerweise folgendermaßen festgelegt: $plugin_path = str_replace(ABSPATH, $wp_filesystem->abspath(), MY_PLUGIN_DIR);

Ich habe versucht, das zu verstehen, aber ich bin gescheitert, weil ich nicht herausfinden konnte, was $wp_filesystem->abspath() eigentlich zurückgeben soll. Wenn ich es var_dump() bekomme, false. Könnte mir jemand erklären, warum wir die Variable ABSPATH nicht einfach in Funktionen wie $wp_filesystem->put_contents() verwenden können?

3
phpheini

Wenn Sie die Quelle von abspath() auschecken:

public function abspath() {
    $folder = $this->find_folder(ABSPATH);
    // Perhaps the FTP folder is rooted at the WordPress install, Check for wp-includes folder in root, Could have some false positives, but rare.
    if ( ! $folder && $this->is_dir( '/' . WPINC ) )
        $folder = '/';
    return $folder;
}

.. Sie werden sehen, dass es hauptsächlich darum geht, den "berechneten" Pfad für die Dateisystemmethode zu ermitteln. Bei FTP kann der Stammpfad des FTP-Kontos beispielsweise tiefer im tatsächlichen Dokumentstamm liegen. Andere Methoden funktionieren möglicherweise auch nicht nur mit ABSPATH, daher der Aufruf find_folder() (der eigentlich ein Wrapper für search_for_folder() ist, der die eigentliche Arbeit erledigt).

Deshalb hast du so etwas gesehen:

$plugin_path = str_replace(ABSPATH, $wp_filesystem->abspath(), MY_PLUGIN_DIR);

... da MY_PLUGIN_DIR (zu einem bestimmten Zeitpunkt) auf der Grundlage von ABSPATH erstellt wurde, dieser Pfad jedoch im Kontext der Dateisystem-API möglicherweise ungültig ist, ersetzen wir ABSPATH vor dem Schreiben durch die berechnete abspath().

1
TheDeadMedic