2013-07-26 20 views
3

我是PHP新品。我已經搞混了wordpress,但並不真正與它背後的代碼。我試圖加快我們wordpress網站的加載時間,但我遇到了一些麻煩。 PHP使用the_post_thumbnail加載一些帖子圖片的HTML代碼。我有這樣的代碼來延遲加載圖像一點,所以該頁面可以加載第一,然後將圖像將加載:更改PHP中的the_post_thumbnail的放置

jQuery(window).load(function() { 
jQuery('img[source]').prepend(function(){ 
    var source = jQuery(this).attr('source'); 
    jQuery(this).attr('src', source); 
}); 
}); 

這工作得非常好其他網站上我寫在ColdFusion和普通HTML工作。所以我想要做的是將the_post_thumbnail的輸出更改爲具有實際源路徑的「source」屬性,並且初始值爲src的值將具有默認加載gif。

我首先想到的是要建立另一個函數或我想作爲PHP的話來說,添加過濾器這樣的:

add_filter('post_thumbnail_html', 'thumbnail_filter'); 
function thumbail_filter() { 
$default_attr = array(
    'src' => $src, 
    'class' => "attachment-$size", 
    'alt' => trim(strip_tags($wp_postmeta->_wp_attachment_image_alt)), 
); 
the_post_thumbnail($default_attr); 
// you can alter the resulted HTML here 
$html = the_post_thumbnail($default_attr); 
return $html; 
} 

這實際上並沒有打破頁,甚至當沒有顯示任何圖片我沒有調用thumbnail_filter函數。

我的下一個猜測是做什麼是this。在PHP和wordpress中有更多經驗的人能幫助我嗎?也許第一個是正確的路,但我只是做錯了。

+0

你可以通過wp_get_attachment_image_src()獲得相應的圖像url,你可以在wp-codex中檢查正確的功能,通過這個你可以得到附件圖像的url並且可以在你的html圖像中顯示src =「」標籤 –

回答

0

當the_post_thumbnail()函數被調用時,thumbnail_filter()函數會自動調用。和源屬性添加到你有這個過濾器

add_filter('post_thumbnail_html', 'my_post_image_html', 10, 3); 

function my_post_image_html($html, $post_id, $post_image_id) { 

    $html = '<img src="" source="'.get_permalink($post_id).'"/>'; 
    return $html; 

} 

粘貼此代碼在您的functions.php文件來替換你的過濾器img標籤。我猜這會起作用。