0

我正在使用安装在 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',真);

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

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

4

1 回答 1

1

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

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

于 2013-08-02T17:36:46.433 回答