Позвольте мне объяснить, чтобы помочь вам:
file_exists()
работает на стороне сервера, чтобы увидеть, существует ли файл на жестком диске сервера. Поскольку он выполняется на стороне сервера, вам необходимо проверить его с помощью абсолютного пути к папке, в которой находится файл.
Оставайтесь со мной ....
При запуске if(file_exists($vendorPhotoImg))
, PHP проверяет, является ли указанный файл существует на жестком диске сервера. Если да, то он запускает код внутри блока кода, т. Е. HTML-код img
отображается в браузере.
Для проверки наличия файла необходимо использовать абсолютный путь к местоположению жесткого диска сервера. Вы используете get_template_directory()
, чтобы получить путь к папке для своей темы.
Но подождите, вам понадобится путь URL-адреса к местоположению изображения для интерфейса. Чтобы получить абсолютный путь к URI изображения, get_template_directory_uri()
.
Вот код, который нужно:
$theme_directory = get_template_directory();
$theme_uri = get_template_directory_uri();
$vendorPhotoLogo = '/img/vendorimages/logo-' . $vendor->acctno . '.png';
$vendorPhotoImg = '/img/vendorimages/img-' . $vendor->acctno . '.png';
if (file_exists($theme_directory . $vendorPhotoImg)) {
printf('<img src="%s"/>', esc_url($theme_uri . $vendorPhotoImg));
}
if (file_exists($theme_directory . $vendorPhotoImg)) {
printf('<img src="%s"/>', esc_url($theme_uri . $vendorPhotoLogo));
}
Обратите внимание, как file_exists()
использует каталог темы и img
источник использует URI.
Несколько примечаний для вас:
- код использует
esc_url()
чтобы санировать URL перед отправкой его в браузер.
- Я предпочитаю
printf()
над эхом и конкатенацией строк в этом случае. Вы можете использовать то, что вы хотите здесь.
Можете ли вы уточнить, какие входные сигналы запускают какие результаты? Вы видите теги изображений для всех, теги изображений для none и т. Д. –
Попробуйте использовать 'get_template_directory()', а не 'get_template_directory_uri()' – Dre
Чтобы добавить к тому, что говорит @Dre, вы не можете полагаться на проверку существования файла с использованием URI, вам нужно использовать путь к файлу - вот что получит 'get_template_directory()' для вас. –