Ошибка 404 при попытке отобразить изображения из пользовательской папки в Wordpress - PullRequest
0 голосов
/ 10 мая 2019

У меня есть следующий шорткод, который получает изображения этого поста (который будет находиться в папке с именем идентификатора поста) и отображает их, отображая столько изображений тегов, сколько необходимо.

    session_start();
    $postID = $_SESSION['post_ID'];
    $upload_dir = wp_upload_dir();
    $path = $upload_dir['basedir'].'/'.'gallery/'.$postID;

    if(file_exists($path)) {
        $pathFile = $path.'/*';
        $images = glob($pathFile);
        if(!empty($images)) {
            foreach($images as $image){
                $alt = end(explode('/', $image));
                echo '<img src="'.$image.'" alt="'.$alt.'" />';
            }
        } else echo 'No hay imágenes.';

    } else echo 'No hay imágenes.';

?>

Проблема в том, что изображения не отображаются, я получаю сообщение об ошибке в консоли браузера GET https://path-to-theme/wp-content/uploads/gallery/1658/wwg.jpg 404 для каждого изображения и получаю этот значок:

image

Понятия не имею, почему на моих изображениях не отображаются изображения, путь правильный, изображения есть, совершенно не знаю, что мне не хватает.Это не проблема с разрешениями, так как я попытался дать 755 разрешений для каталогов, начиная с / uploads / .. и т. Д., Включая изображения.

Ответы [ 2 ]

0 голосов
/ 13 июня 2019

Я исправил проблему. Проблема заключалась в том, что я не загружал изображения, как того хочет wp, поэтому изображения, даже если они были в папке, не могли быть отображены. Поэтому мне пришлось изменить способ их загрузки, используя функции wp, указав mime_type и т. Д., Чтобы wp мог хранить их метаданные в своей базе данных, чтобы иметь возможность их распознавать и отображать в будущем.

0 голосов
/ 11 мая 2019

Я предполагаю, что URL, на который вы ссылаетесь в своем вопросе, на самом деле https://yourdomain/wp-content/uploads/gallery/1658/wwg.jpg, а не https://path-to-theme/wp-content/uploads/gallery/1658/wwg.jpg. Правильно?

Если это так, то он сможет открыть этот файл. Первое, что я хотел бы проверить, есть ли у вас файл, расположенный там, где вы думаете: /wp-content/uploads/gallery/1658/

Если файл на самом деле находится в этой папке, и вы можете получить к нему доступ из браузера в https://yourdomain/wp-content/uploads/gallery/1658/wwg.jpg, то мое следующее предложение - проверить разрешение каждой из папок, ведущих к файлу, и убедиться, что они установлены. на 755, а затем убедитесь, что ваш файл установлен на 644.

Здесь приведены инструкции по изменению прав доступа к файлу.

Дайте мне знать, если это поможет?

...