3

私はPHPが初めてです。私はワードプレスを台無しにしましたが、実際にはその背後にあるコードには触れていません。wordpress サイトの読み込み時間を短縮しようとしていますが、問題が発生しています。PHP はthe_post_thumbnail、一部の投稿の画像の HTML コードをロードするために使用します。画像の読み込みを少し遅らせて、ページが最初に読み込まれ、次に画像が読み込まれるようにする次のコードがあります。

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いるのは、実際のソースパスを持つ「ソース」属性を持つように出力を変更し、初期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 関数を呼び出さなくても画像は表示されませんでした。

何をすべきかについての私の次の推測はこれでした。PHP と wordpress の経験がもう少し豊富な人が私を助けてくれますか? 多分最初のものは正しい方法ですが、私はそれを間違っています。

4

1 に答える 1

1

the_post_thumbnail() 関数が呼び出されると、thumbnail_filter() 関数が自動的に呼び出されます。source 属性を 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 ファイルに貼り付けます。これはうまくいくと思います。

于 2013-07-29T11:23:17.880 に答える