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

时间:2019-05-10 18:53:47

标签: php wordpress image get http-status-code-404

我有以下短代码,用于获取该帖子的图像(该图像将位于名为该帖子的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中对每个图像都显示了Followin错误,并且得到了以下图标:

image

我不知道为什么我的图像不显示图像,路径正确,图像在那里,完全不知道我缺少什么。这不是权限问题,因为我尝试给从/ uploads / ..等目录开始的目录授予755权限。

2 个答案:

答案 0 :(得分:0)

我将假设您在问题中引用的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.

让我知道是否有帮助?

答案 1 :(得分:0)

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