尝试在Wordpress中显示自定义文件夹中的图像时出错404

尝试在Wordpress中显示自定义文件夹中的图像时出错404

问题描述:

I have the following shortcode which gets the images of that post (that will be in a folder named as the post's id ) and displays them echoing as many tag images as needed.

    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.';

?>

The problem is that the images aren't displayed, i get the followin error in the brower's console GET https://path-to-theme/wp-content/uploads/gallery/1658/wwg.jpg 404, per every image and i get this icon:

image

I have no idea why my images aren't displayed the images, the path is correct, the images are there, complitely no idea what I'm missing. It's not a permissions problem as i tried giving 755 permissions to the directories starting from /uploads/.. and so on including the images.

I fixed the problem. The issue wa sthat i wasn't uploading the images as wp wants me to, therefore the images, even they were in the folder, couldn't be displayed. So I had to change the way i uploaded them, by using wp functions and specifying the mime_type etc so wp could store their metadata in it's db in order to be able to acknowledge them and display them in a future.

I'm going to assume that the URL you reference in your question is actually https://yourdomain/wp-content/uploads/gallery/1658/wwg.jpg and not https://path-to-theme/wp-content/uploads/gallery/1658/wwg.jpg. Right?

If that's the case, then it should be able to pull open that file. The first thing I'd check is whether you actually have the file located where you think it is: /wp-content/uploads/gallery/1658/

If the file is actually in that folder, and you can access it from your browser at https://yourdomain/wp-content/uploads/gallery/1658/wwg.jpg then my next suggestion would be to check the permission of each of the folders leading up to the file and make sure they are set to 755, and then make sure your file is set to 644.

Here are instructions on changing file permissions.

Let me know if that helps?