Ich versuche, Bilder für WP-Posts abzurufen, die in einem Wp-uploads-Verzeichnis mit if (file_exists()
gehalten werden, aber es erkennt den Dateipfad nicht.Warum gibt file_exists() false zurück?
Für jeden Beitrag stehen bis zu 8 Bilder zur Verfügung. Jedes Bild hat die Buchstaben a-g am Ende des Dateinamens (oder nichts) und hat str_replace, um bestimmte Zeichen in den Dateinamen zu ersetzen.
Ich muss jedes Bild zeigen, wenn es existiert, und wenn nicht, nichts zurückgeben. Wenn also der Post am Ende mit Bildern mit b, d und f verbunden ist, werden nur diese drei angezeigt.
Ich habe ohne die (file_exists())
getestet und es ist in der Lage, die Bilder mit einem einfachen Echo für jeden abholen - aber es scheint die $img
Pfade werden nicht erkannt.
Im ein bisschen ein PHP-Noob so würde jede Hilfe ... Sie beginnen
$uid = get_post_meta (get_the_ID(), 'Unique number', true);
$root ="/wp-content/uploads/2016/Collection/";
$path = str_replace(" ","_",$uid);
$path = str_replace(".","_",$path);
$path = str_replace(":","",$path);
$img = $root.$path.".jpg";
$imga = $root.$path."a.jpg";
$imgb = $root.$path."b.jpg";
$imgc = $root.$path."c.jpg";
$imgd = $root.$path."d.jpg";
$imge = $root.$path."e.jpg";
$imgf = $root.$path."f.jpg";
$imgg = $root.$path."g.jpg";
if (file_exists($img)) { echo "<img src='".$root.$path.".jpg' />"; } else { echo ""; }
if (file_exists($imga)) { echo "<img src='".$root.$path.".jpg' />"; } else { echo ""; }
if (file_exists($imgb)) { echo "<img src='".$root.$path."b.jpg' />"; } else { echo ""; }
if (file_exists($imgc)) { echo "<img src='".$root.$path."c.jpg' />"; } else { echo ""; }
if (file_exists($imgd)) { echo "<img src='".$root.$path."d.jpg' />"; } else { echo ""; }
if (file_exists($imge)) { echo "<img src='".$root.$path."e.jpg' />"; } else { echo ""; }
if (file_exists($imgf)) { echo "<img src='".$root.$path."f.jpg' />"; } else { echo ""; }
if (file_exists($imgg)) { echo "<img src='".$root.$path."g.jpg' />"; } else { echo ""; }`
Ja, Sie müssen den vollständigen oder absoluten Dateipfad verwenden. Wenn dies nicht funktioniert, stellen Sie sicher, dass es nur funktioniert, wenn [allow_url_fopen] (http://php.net/filesystem.configuration#ini.allow-url-fopen) ist in Ihrer PHP-Konfiguration aktiviert. –
'$ _SERVER ['DOCUMENT_ROOT']' löste das Problem für mich - danke. – Aitch