【问题标题】:timthumb not finding imagetimthumb 找不到图片
【发布时间】:2013-06-29 19:57:45
【问题描述】:

我正在使用安装在 localhost 上的 wordpress 构建网站。

由于某种原因,我的 post.php 页面没有显示帖子缩略图(特色图片)。我已经确定这是 timthumb.php 的问题,它没有正确定位图像 url。我在网上搜索了几个小时并尝试了许多解决方案,但似乎没有任何效果。

基本问题是我认为在我的 blog.php 文件中的这一行:

<?php
if ( has_post_thumbnail() ) { ?>
    <a href="<?php the_permalink() ?>"><img class="postimg" src="<?php bloginfo('stylesheet_directory'); ?>/timthumb.php?src=<?php get_image_url(); ?>&amp;h=200&amp;w=470&amp;zc=1" alt=""/></a>
<?php }

else { ?>
    <a href="<?php the_permalink() ?>"><img class="postimg" src="<?php bloginfo('template_directory'); ?>/images/dummy.png" alt="" /></a>
<?php } ?>

我的 functions.php 脚本将 get_image_url 定义为:

function get_image_url(){
    $image_id = get_post_thumbnail_id();
    $image_url = wp_get_attachment_image_src($image_id,'large');
    $image_url = $image_url[0];
    echo $image_url;
    }   

在站点中,它返回 dummy.png 图像(损坏的图像) - 当我右键单击图像并在新选项卡中打开时,我得到的错误是:

“发生 Timthumb 错误 - 找不到您指定的内部图像”

然后显示我的查询字符串:

Query String : src=http://localhost/wordpress/frouzeh/wp-content/uploads/sites/3/2013/04/PurpleNecklace.png&h=200&w=470&zc=1

但是,如果我真的使用 URL 访问图像:

http://localhost/wordpress/frouzeh/wp-content/uploads/sites/3/2013/04/PurpleNecklace.png

图片显示正常

  • 我正在使用本地主机在 Windows 上进行开发,因此它不能成为文件夹的权限控制
  • 使用最新版本的 timthumb 2.8.11
  • 我已尝试从文件中删除调整大小参数:&h=200&w=470&zc=1,但仍然收到相同的错误
  • 我已启用(正如一些解决方案在 timthumb.php 文件中建议的那样):

    定义 ('ALLOW_ALL_EXTERNAL_SITES', TRUE);

  • 我的网站名称中没有波浪号,正如其他解决方案所建议的那样。

我真的很茫然。并且希望得到任何帮助 - 似乎它可能是一个简单的语法错误或其他东西,但我找不到它。

【问题讨论】:

  • 您的代码是正确的,但是请检查您在生成的 timthumb 文件中缓存文件夹中的主题。
  • 嗨 ravi - 尝试完全删除缓存文件夹然后重新创建它。它是空的,我更新了我的测试站点,并在缓存文件夹中添加了 2 个文件 - “index.html”和“timthumb_cacheLastCleanTime.touch”,所以这似乎工作正常?

标签: php wordpress timthumb


【解决方案1】:

在尝试修复此问题数小时后,我决定将我的 wordpress 网站移至实时服务器 (linux)。然后我将缓存文件夹的访问权限更改为 755,我的图像又回来了。

这是一个权限问题,但是我仍然不确定为什么即使在浏览了缓存文件夹的属性并更改了那里的权限之后它也不能在我的 Windows 机器上工作 - 任何见解都将不胜感激......

【讨论】:

  • 我遇到了完全相反的问题,但是如果您检查 thumb.php 内部,应该有第 212 行: $this->src = preg_replace('/https?:\/\/(? :www\.)?' . $this->myHost . '/i', '', $this->src);确保它没有被注释掉。我有类似 src=wordpress/frouzeh/wp-content/uploads/sites/3/2013/04/PurpleNecklace.png&h=200&w=470&zc=1 的东西,这对我来说很糟糕(因为我可能缺少一些设置)但它应该为你工作。
  • 一个可能的问题是 wp_post 表中的 guid,它应该具有当前服务器地址。
猜你喜欢
  • 2012-09-07
  • 2013-01-02
  • 2012-04-19
  • 2013-03-27
  • 2019-05-04
  • 2012-01-12
  • 1970-01-01
  • 1970-01-01
  • 2016-08-02
相关资源
最近更新 更多