2013-02-14 49 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