拡張ブロックにアイキャッチ画像をループ表示させる
永らくありがとうございました › フォーラム › 使い方全般 › 拡張ブロックにアイキャッチ画像をループ表示させる
- このトピックには9件の返信、2人の参加者があり、最後に
匿名により11年、 9ヶ月前に更新されました。
-
投稿者投稿
-
2011 年 4 月 20 日 3:08 AM #2675
匿名
ゲストtoemon様
お世話になります。
たびたび恐れ入ります。
新たに、以下の環境でxpressmeをテストしております。
・xcl2.2RC
・xpressme2.39
xcl2.2RCでも問題なく動いております。
今回は、表題のとおり、拡張ブロックに
アイキャッチ画像をループ表示させることができないかと
考えております。
ちなみに、wordpress上では、functions.phpに以下のコードを追加。
<code>add_theme_support('post-thumbnails');<br /> <br /> set_post_thumbnail_size(640, 150, true);</code>
single.phpとindex.phpに以下のコードを追加。
<code><?php echo get_the_post_thumbnail($post->ID); ?></code>
記事のサムネイルとして使いたいと考えております。
次に拡張ブロックですが、
ためしに以下のように書いてみました。
<code><?php<br /> global $wpdb,$wp_query;<br /> $disp_count = 5;<br /> <br /> if (!is_null($wpdb)){<br /> $wp_query->in_the_loop = true;<br /> while($r->have_posts()){<br /> $r->the_post();<br /> echo '. get_the_post_thumbnail($post->ID) . ';<br /> echo '<a href="'. get_permalink() . '">' . the_title('','',false) . '</a><hr style="clear:both;margin-top:3px; margin:10px 0px 10px 0px;">';<br /> }<br /> }<br /> ?></code>
が、ダメでした…orz
それとなぜか、xpressmeトップにアクセスしても、
拡張ブロックがキャッシュされなくなってしまいました。
コードは全くの見当違いでしょうか。
キャッシュの問題は何か考えられる原因はございますでしょうか。
2011 年 4 月 20 日 3:16 AM #3271匿名
ゲストtoemon様
少し前進しました。
echoの部分とエラーが出ている個所を修正してみたところ、
一応、表示されるようになりました。
<code><?php<br /> global $wpdb,$wp_query;<br /> $disp_count = 5;<br /> <br /> if (!is_null($wpdb)){<br /> $wp_query->in_the_loop = true;<br /> echo get_the_post_thumbnail($post->ID);<br /> echo '<a href="'. get_permalink() . '">' . the_title('','',false) . '</a><hr style="clear:both;margin-top:3px; margin:10px 0px 10px 0px;">';<br /> }<br /> ?></code>
ちなみに、ここで引っぱってきたアイキャッチ画像に記事リンクを付けて
サイズを調整することは出来るのでしょうか。
2011 年 4 月 20 日 4:28 AM #3272匿名
ゲスト記事のサムネイル(アイキャッチ)と記事タイトル、カスタムフィールド要素の
3つを表示させるため、以下のようにしてみました。
<code><?php<br /> global $wpdb,$wp_query;<br /> $disp_count = 5;<br /> <br /> if (!is_null($wpdb)){<br /> $wp_query->in_the_loop = true;<br /> $r = new WP_Query($tag_where .$contents_where."showposts=$disp_count&post_type=post&nopaging=0&post_status=publish");<br /> while($r->have_posts()){<br /> $r->the_post();<br /> echo '<div style="float:left;margin-right:5px;"><a href="'. get_permalink() . '">' . get_the_post_thumbnail(array(60,60)) . '</a></div>';<br /> echo '<a href="'. get_permalink() . '">' . the_title('','',false) . '</a>';<br /> echo '<div style="float:left;margin-right:5px;">' . get_post_meta($post->, '001') . '</div><hr style="clear:both;margin-top:3px; margin:10px 0px 10px 0px;">';<br /> }<br /> }<br /> ?></code>
この時点では、サムネイル画像のサイズが利かないのと、
カスタムフィールド要素を引っぱってきていない、
それと、Arrayというコードが表示されてしまっている
という状況です。
もう少し粘ってみます。
2011 年 4 月 20 日 7:11 AM #3273匿名
ゲスト参考書片手に苦戦しております。
<code><?php<br /> global $wpdb,$wp_query;<br /> $disp_count = 5;<br /> <br /> if (!is_null($wpdb)){<br /> $wp_query->in_the_loop = true;<br /> $r = new WP_Query($tag_where .$contents_where."showposts=$disp_count&post_type=post&nopaging=0&post_status=publish");<br /> while($r->have_posts()){<br /> $r->the_post();<br /> echo '<div style="float:left;margin-right:5px;"><a href="'. get_permalink() . '">' . get_the_post_thumbnail(array(60,60)) . '</a></div>';<br /> echo '<strong><a href="'. get_permalink() . '">' . the_title('','',false) . '</a></strong>';<br /> echo '<br />';<br /> echo '<div style="font-size:80%;">';<br /> printf(__('Posted in %s', 'xpress'), get_the_category_list(', '));<br /> echo '</div>';<br /> $key = "001"; echo get_post_meta($post->ID, $key, true);<br /> echo '<hr style="clear:both;margin-top:3px; margin:10px 0px 10px 0px;">';<br /> }<br /> }<br /> ?></code>
CSSも直接書いているので見づらくて申し訳ございません。
現状としましては…
1.リンク付のアイキャッチ画像の取得に成功。サイズの指定ができない。
2.リンク付の記事タイトル取得に成功。
3.記事のカテゴリリンクの取得に成功。
4.“001”という名前のカスタムブロックの値の取得ができない。
という感じです。
2011 年 4 月 20 日 10:05 AM #3274toemon
キーマスター1.リンク付のアイキャッチ画像の取得に成功。サイズの指定ができない。
誤
get_the_post_thumbnail(array(60,60))
正
get_the_post_thumbnail($post->ID,array(60,60))
だとおもいます。
4.“001”という名前のカスタムブロックの値の取得ができない。
カスタムフィールドの取得はそれでよいと思うのですが。
ちなみに、echo $post->ID; をループの中にいれて、postIDが正しくループされているか確認ください。
2011 年 4 月 20 日 10:36 AM #3275匿名
ゲストtoemon様
お手間おかけし誠に申し訳ございません。
ちなみに、echo $post->ID; をループの中にいれて、postIDが正しくループされているか確認ください。
echo $post->ID;を以下のように入れてみました。
(こういうことでしょうか…)
<code><?php<br /> global $wpdb,$wp_query;<br /> $disp_count = 5;<br /> <br /> if (!is_null($wpdb)){<br /> $wp_query->in_the_loop = true;<br /> $r = new WP_Query($tag_where .$contents_where."showposts=$disp_count&post_type=post&nopaging=0&post_status=publish");<br /> while($r->have_posts()){<br /> $r->the_post();<br /> echo '<div style="float:left;margin-right:5px;"><a href="'. get_permalink() . '">' . get_the_post_thumbnail(array(60,60)) . '</a></div>';<br /> echo '<strong><a href="'. get_permalink() . '">' . the_title('','',false) . '</a></strong>';<br /> echo '<br />';<br /> echo $post->ID;<br /> echo '<div style="font-size:80%;">';<br /> printf(__('Posted in %s', 'xpress'), get_the_category_list(', '));<br /> echo '</div>';<br /> $key = "001"; echo get_post_meta($post->ID, $key, true);<br /> echo '<hr style="clear:both;margin-top:3px; margin:10px 0px 10px 0px;">';<br /> }<br /> }<br /> ?></code>
表示される内容は変わりませんでした。
こういう意味でしょうか。
申し訳ございません。
2011 年 4 月 20 日 1:01 PM #3276toemon
キーマスター$post->id をecho ことによって、IDが表示されますよね。
echo ‘postid=’ . $post->id;
みたいな感じにしたほうが、わかりやすいかも、
このループだと、5回のループが行われたいるので、それぞれ、異なるID値が表示されすはずです。
もし IDの表示が変わっていないのであれば、$post->idでは正しく ID が取得できていない、ということになります。
2011 年 4 月 21 日 2:29 AM #3277匿名
ゲストecho ‘postid=’ . $post->id;をいれてみましたところ、
IDが取得できていないようです。
$post->IDに特定のIDを入れると
ちゃんと引っぱってきているので、
$post->idが使えないということなのですね。
ちなみに、パーマリンクの設定をカスタムにしているから、
ということはありますでしょうか。
2011 年 4 月 21 日 3:06 AM #3278toemon
キーマスター副ループでは$post->IDが使えないようです。
<code>$postid = get_the_ID();</code>
で$postidにIDを取得して、$post->IDの代わりに$postidを使ってください。
それとget_the_post_thumbnail()のほうは
get_the_post_thumbnail($postid,array(60,60))
でも
get_the_post_thumbnail(null,array(60,60))
でもOKでした。
2011 年 4 月 21 日 6:40 AM #3279匿名
ゲストtoemon様
ありがとうございます。
で$postidにIDを取得して、$post->IDの代わりに$postidを使ってください。
これにより、カスタムブロックの値を出力することができました。
get_the_post_thumbnail(null,array(60,60))
こちらも問題なく表示できました。
最近、ワードプレスの関数リファレンスブックを片手に
いろいろ試しております。
関数がわかると、いろいろやりたくなってしまいます(笑)
どうもありがとうございました。
-
投稿者投稿
- フォーラム「使い方全般」には新規投稿および返信を追加できません。