2013-02-14 47 views
0

我正在开发自己的wordpress主题。我在检索帖子图片时遇到了问题。WordPress的图像检索问题3.5.1

我用下面的代码:

if ($images = get_children(array(
'post_parent' => $postid, 
'post_type' => 'attachment', 
'numberposts' => '1', 
'post_mime_type' => 'image',))) 
foreach($images as $image) { 
$thumbnail=wp_get_attachment_image_src($image->ID, $size); 
?> 
<?php echo get_image_path($thumbnail[0]); ?> 
} 
else ....// retrieve a default error image 

此代码工作正常,如果我上传新的图片,我将其固定到职位,但如果我附上从媒体拍摄的旧形象我失败图书馆。

我找不出问题在哪里。根据Wordpress的函数引用,get_children()和get_image_path()不会被弃用。

我使用WordPress的最新avaible verison(3.5.1)

+0

连接到有问题('$ postid')后那些老的图像?还是他们不附加/附加到其他职位? – brasofilo 2013-02-14 23:18:38

+0

我发现,如果我从媒体库中选择图像并放入帖子内,则不会将其视为附加到帖子。 所以我想知道如何让图像插入帖子(附加或不附)。 – 2013-02-15 09:28:39

+0

不可能不查询所有帖子并检查'post_content'内的附件URL ...... – brasofilo 2013-02-15 09:30:51

回答

1

是,WordPress没有工作了,你插入后的图像是否真正连接到后与否的方式 - 它可能是您从外部网站添加的所有知识的东西,它只是编辑器中的HTML代码。

正如我认为你已经确定,get_children只会发现附件 - 即。为此帖子上传的照片,而不是从媒体库中插入的照片。

要实现你想要做的唯一方法就是明确地从每个帖子上传照片 - 这意味着如果多个帖子使用相同的图像,则需要为每个帖子重新上传。不理想,但目前这是将图像“附加”到帖子以便get_children有效的唯一方法。

我可以建议做的唯一方法是使用自定义字段手动存储要用作缩略图的图像的帖子ID(无论它们是否连接),然后遍历当你想显示他们的缩略图时,这些ID。这有点笨重,但会让你只上传一次照片。


但是,如果您只想显示发布缩略图,则可以使用更简单的方法实现此目的。您现在可以单独指定要用作“精选图像”的图像(图库中的任何图像,不必附加到帖子或显示在帖子中)。

首先,确保你补充的岗位缩略图支持:

add_theme_support('post-thumbnails'); 

然后进入你的帖子,点击“添加媒体”,然后选择“设置特色图片”,从左边的菜单。您可以选择库中的任何图像或上传新图像,并将其设置在发布缩略图上。

在您的模板,那么你可以做这样的事情在循环:

if (has_post_thumbnail()) { 
    the_post_thumbnail(); 
} 

如果你是外循环的工作,你可以得到的缩略图ID为一个特定的帖子:

$post_thumbnail_id = get_post_thumbnail_id($post_id); 

...或者只是得到直接的缩略图HTML:

get_the_post_thumbnail($post_id, $size, $attr); 

不幸的是,你可以只有一个有特色的图像,所以如果你需要更多,你需要回到你的原始代码,并明确地附加图像的帖子。

查看更多:Post Thumbnails