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

Error 404 when trying to display images from custom folder in Wordpress

我有以下短代码,它获取 post 的图像(将位于名为 post 的 id 的文件夹中)并根据需要显示它们回显尽可能多的标签图像.

    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

我不知道为什么我的图片没有显示图片,路径是正确的,图片在那里,完全不知道我错过了什么。这不是权限问题,因为我尝试对从 /uploads/.. 开始的目录授予 755 权限,依此类推,包括图像。

我假设您在问题中提到的 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。

Here are instructions on changing file permissions.

如果有帮助请告诉我?

我解决了这个问题。问题是我没有按照 wp 的要求上传图像,因此图像,即使它们在文件夹中,也无法显示。所以我不得不改变我上传它们的方式,通过使用 wp 函数并指定 mime_type 等,这样 wp 就可以将它们的元数据存储在它的数据库中,以便能够确认它们并在将来显示它们。