Wie verwende ich den relativen Pfad mit meinen Plugins-Ordnern?

Hallo, ich habe versucht, alle Bilder in einem Ordner zu wählen, so dass, was immer Bilder Benutzer in einen bestimmten Ordner innerhalb meines Plugins legt, kann ich es nehmen und es im Plugin verwenden.

Ich habe die folgenden PHP-functionen ausprobiert, um Bilder oder Dateien im Ordner auszuwählen

glob scandir 

Wenn ich das oben im wordpress Rahmenwerk versuche, erhält Fehler. The system cannot find the file specified. Wenn ich versuche, in meinem lokalen Server außer dem WordPress-Bereich, werden Dateien im angegebenen Ordner ausgewählt.

  

Scan-Methode

  

Das oben genannte funktioniert gut außerhalb des WordPress Frameworks

Das gleiche habe ich in WordPress für mein Plugin in meinem Plugin-Ordner versucht und ich kann die Aufgabe nicht erledigen. Das funktioniert nicht.

Versuch 1

  

Ich habe nichts Fehler, keine Warnung und keine Ausgabe.

Versuch 2

  

Ich habe Warnung Warning: scandir(../images/,../images/): The system cannot find the file specified. (code: 2) Warning: scandir(../images/,../images/): The system cannot find the file specified. (code: 2)

  Warning: scandir(../images/): failed to open dir: No such file or directory 

Die Datei versucht dies in einem anderen Ordner, aber demselben Verzeichnis.

Beispielsweise

  • Die PHP-Datei mit diesem Code befindet sich im Ordner inc/settings.php

  • Die Bilder suchen ist im Ordner images

  • Beide Ordner befinden sich in meinem Plugin-Ordner

      - myplugin myplugin.php /images /inc /documentaion 

Wie bekomme ich nun alle Bilder in meinem Bilderordner?

HINWEIS: Ich verwende meine andere PHP-Datei in meine Hauptdatei wie include('inc/settings.php');

Diese Sache funktioniert gut, also höchstwahrscheinlich gibt es kein Problem in Pfadangabe, kann das Problem bei der Verwendung von scandir oder glob function sein. Ich kann nicht erraten. Kann mir jemand helfen?

Wenn ich einfach das Folgende benutze

 foreach(glob('images/*.png') as $filename){ echo $filename; } ?> 

Werde ich Bilder aus dem wp-admin/images Ordner bekommen?

Solutions Collecting From Web of "Wie verwende ich den relativen Pfad mit meinen Plugins-Ordnern?"

Diese Antwort bezieht sich auf die erste Version der Frage, und ich weiß nicht, wie ich sie aktualisieren soll, ich werde sie hier als allgemeine Referenz hinterlassen.

Verwenden Sie hierfür keinen Plugin-Ordner (oder ein Thema). Vielleicht hat Ihr Plugin keine Upgrade-function und nichts wird überschrieben. Die beste Vorgehensweise besteht jedoch darin, einen Ordner in /wp-content root oder in /wp-content/uploads .

In /wp-content/my-images :

 $test = glob( WP_CONTENT_DIR . '/my-images/*.png'); 

In /wp-content/uploads/my-images :

 $up_dir = wp_upload_dir(); $test = glob( $up_dir['basedir'] . '/images/*.png'); 

scandir und glob sind mit Verzeichnis-Dingen verwandt, also mit WP_PLUGIN_DIR anstelle von plugins_url() versucht, die URL aber kein Verzeichnis zurückgeben.

Unten sind beide functionen nützlich

WP_PLUGIN_DIR

 plugin_dir_path( __FILE__ ) 

Ich habe die oben genannten functionen ausprobiert, es hat gut für mich funktioniert.

Denken Sie daran, wenn Sie nur verwenden

 < ?php foreach (glob('images/*.png') as $filename) { echo $filename; } ?> 

Es wird Bilder von wp-admin/images die Root-Verzeichnis sein können. Bin nicht sicher.

Kommentar wenn du denkst, dass hier etwas nicht stimmt 🙂