2016-05-24 9 views
0

the_post_thumbnail()機能を使用してdivにサムネイルを追加しようとしています。WP Thumbailが正しくレンダリングされない

私が使用しているコードは以下の通りです:

<div class="sc-col sc-s12 sc-m3 sc-card sc-card-basic"> 
    <figure>'.the_post_thumbnail(array('370', '188')).'</figure> 
</div> 

しかし、時にコードが(だけでレンダリングされたコードの一部を取った)コードになるブラウザに表示されます。

<img width="370" height="182" src="/wp-content/uploads/2016/05/image.png"> 
<div class="sc-col sc-s12 sc-m3 sc-card sc-card-basic"> 
    <figure></figure> 
</div> 

ご覧のとおり、画像はdivfigureの外側にレンダリングされています。私の質問は、なぜこれをやっているのですか?今、私の全体のレイアウトが壊れているので、問題は私が他の関数を使用していた場合、その関数を使用しなければならないということです。何とか関数を書き直して、add_filter関数を使ってsrcリンクのみを返すことはできますか?

+0

phpタグで関数をラップする必要があります –

+0

@DhavalChheda ofcourseは私がやったことです。私はphpのすべての行を開いて閉じるのが好きではないので、タグはこれより前です。私はちょうど '

<?php the_post_thumbnail(array( '370'、 '188'))を使うべきですか? ?>
'?私は非常に奇妙な見つけるだろう – SuperDJ

答えて

0

これは私のためにそれを解く:

<figure><?php the_post_thumbnail(array('370', '188')); ?></figure> 

を@ChrisLear the_post_thumbail()によってstaded doens'tは、文字列を返し、そこに障害が発生したためのよう。

+0

正確に失敗しません。出力ストリームにエコーします。 –

1

https://developer.wordpress.org/reference/functions/the_post_thumbnail/は、関数the_post_thumbnailが実際にページに何かを出力し、文字列を返さないように設計されていることを示しています。

だからあなたのコードをよりこのような何かに変更します。

$html = '<div class="sc-col sc-s12 sc-m3 sc-card sc-card-basic"> 
    <figure>'; 
echo $html; 
the_post_thumbnail(array('370', '188')) 
$html = '</figure> 
</div>'; 
echo $html; 
+0

文字列を返さない関数のための頭をありがとう。そこに私は必要な部分のために開いて閉じてPHPに行った。私はWPで前にこれを見てきましたが、まだそれは少し奇妙です。なぜなら、それは少し短く読みやすくなっているからです。 – SuperDJ

関連する問題