2013-07-26 3 views
3

Я новичок в PHP. Я перепутал с Wordpress, но на самом деле не с кодом, стоящим за ним. Я пытаюсь ускорить время загрузки нашего сайта wordpress, но у меня проблемы. PHP использует the_post_thumbnail для загрузки HTML-кода для некоторых изображений постов. У меня есть этот код, чтобы задержать загрузку изображений немного, поэтому страница может загружаться первой, а затем изображения будут загружаться:Измените put the_post_thumbnail в PHP

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

вы можете получить исходный url изображения по wp_get_attachment_image_src(), вы можете проверить правильную функцию в wp-codex, чтобы вы могли получить URL-адрес изображения вложения и показать его в своем html-изображении src = "" tag –

ответ

0

Функция thumbnail_filter() будет вызвана автоматически при вызове функции the_post_thumbnail(). и добавить атрибут источника в IMG тег, вы должны заменить фильтр с этим фильтром

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. Думаю, это сработает.

Смежные вопросы