Wordpressを使用しております。
PHPで呼び出した記事一覧をブログカード型にする方法を教えてください。
PHPソースは下記のとおりになります。
PHP
1<?php 2//カテゴリ情報から関連記事を10個ランダムに呼び出す 3$tags = wp_get_post_tags($post->ID); 4$tag_ids = array(); 5foreach($tags as $tag): 6 array_push( $tag_ids, $tag -> term_id); 7endforeach ; 8$args = array( 9 'post__not_in' => array($post -> ID), 10 'posts_per_page'=> 10, 11 'tag__in' => $tag_ids, 12 'orderby' => 'rand', 13); 14$query = new WP_Query($args); ?> 15 <?php if( $query -> have_posts() ): ?> 16 <?php while ($query -> have_posts()) : $query -> the_post(); ?> 17 <div class="related-entry"> 18 <div class="related-entry-thumb"> 19 <a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>"> 20 <?php if ( has_post_thumbnail() ): // サムネイルを持っているとき ?> 21 <?php echo get_the_post_thumbnail($post->ID, 'thumb100'); //サムネイルを呼び出す?> 22 <?php else: // サムネイルを持っていないとき ?> 23 <img src="<?php echo get_template_directory_uri(); ?>/images/no-image.png" alt="NO IMAGE" title="NO IMAGE" width="100px" /> 24 <?php endif; ?> 25 </a> 26 </div><!-- /.related-entry-thumb --> 27 28 <div class="related-entry-content"> 29 <h7 class="related-entry-title"> <a href="<?php the_permalink(); ?>"> 30 <?php the_title(); //記事のタイトル?> 31 </a></h7> 32 <p class="related-entry-snippet"> 33 <?php echo mb_substr( strip_tags( $post->post_content ), 0, 70 ) . ''; //記事本文の抜粋を70文字だけ取り出す?></p> 34 </div><!-- /.related-entry-content --> 35 </div><!-- /.new-entry --> 36 37 <?php endwhile;?> 38 39 <?php else:?> 40 <p>記事はありませんでした</p> 41 <?php 42endif; 43wp_reset_postdata(); 44?> 45<br style="clear:both;"> 46
Cocoonテーマのブログカードで使用されていたCSS
CSS
1 2/* ===== 内部リンクカード(ショートコード) ===== */ 3.inline-linkcard { 4 border: 1px solid #ddd; 5 border-radius: 3px; 6 margin: 10px auto; 7 padding: 0; 8} 9.inline-linkcard + br + .inline-linkcard { 10 margin-top: calc(-1em + -10px); 11} 12.inline-linkcard a { 13 padding: 10px; 14 display: grid; 15 grid-template-columns: 16% 1fr; 16 text-decoration: none; 17} 18.inline-linkcard a img { 19 width: 100%; 20 height: auto; 21 align-self: center; 22} 23.inline-linkcard a p { 24 padding-left: 15px; 25 align-self: center; 26 margin: 0.2em 0; 27 font-size: 0.85em; 28}
<検証データ>
HTML
1<div class="inline-linkcard"> 2<a href="URL" title="タイトル名"> 3<img width="100" height="100" data-src="画像のソース" class="attachment-thumb100 size-thumb100 wp-post-image lozad lozad-img" loading="lazy" alt="" data-srcset="画像のソース"/></noscript></a><a href="URL"> タイトル名</a></div>
[追記]
・CSSでブログカード化できたのですが、タイトルが縦長に伸びてしまいました。
サムネイル画像と横並びに置きたいのですが、どうすればよろしいでしょうか。
以上、よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー