WordPressプラグインを使わないでアイキャッチ付きの関連記事一覧を表示する方法をご紹介します。WordPressプラグインは、簡単に使用することができます。ただ、プラグインは入れすぎるとその分、動作が遅くなってりと弊害の部分もあります。また、セキュリティ上の観点からも できる事なら使わずに済んだほうが良いわけです。
今回は、WordPressの記事の下に関連記事をアイキャッチ(画像)付きで表示させるのをプラグイン無しで表示させる方法をご紹介します。
元記事はこちらです。
How to add WordPress Related Posts Without Plugins
こんな感じになります
function.phpを編集
下記コードを function.php に追加します。サムネイルのサイズを変更したい場合は、コードを修正してアップしてください。
add_theme_support( 'post-thumbnails' );<br /> set_post_thumbnail_size( 100, 50, true );
single.phpを編集
下記コードを single.php に追加します。
<div class="relatedposts"> <h3>Related posts</h3> <p><?php<br /> $orig_post = $post;<br /> global $post;<br /> $tags = wp_get_post_tags($post->ID);</p> <p> if ($tags) {<br /> $tag_ids = array();<br /> foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;<br /> $args=array(<br /> 'tag__in' => $tag_ids,<br /> 'post__not_in' => array($post->ID),<br /> 'posts_per_page'=>4, // Number of related posts to display.<br /> 'caller_get_posts'=>1<br /> );</p> <p> $my_query = new wp_query( $args );</p> <p> while( $my_query->have_posts() ) {<br /> $my_query->the_post();<br /> ?></p> <div class="relatedthumb"> <a rel="external" href="<? the_permalink()?>"><?php the_post_thumbnail(array(150,100)); ?><br /> <?php the_title(); ?><br /> </a> </div> <p> <? }<br /> }<br /> $post = $orig_post;<br /> wp_reset_query();<br /> ?> </div> <p>
CSSを編集
下記コードをCSSに追加して下さい。横幅や装飾を変更したい場合は下記より変更して下さい。
.relatedposts {width: 640px; margin: 0 0 20px 0; float: left; font-size: 12px;}<br /> .relatedposts h3 {font-size: 20px; margin: 0 0 5px 0; }<br /> .relatedthumb {margin: 0 1px 0 1px; float: left; }<br /> .relatedthumb img {margin: 0 0 3px 0; padding: 0;}<br /> .relatedthumb a {color :#333; text-decoration: none; display:block; padding: 4px; width: 150px;}<br /> .relatedthumb a:hover {background-color: #ddd; color: #000;}
コピペで表示させることができますので非常に便利です。あとは多少 ブログのデザインに合うように微調整してお使い下さい。
「function.phpを編集」の項目にあるコードを追加したら、500エラーでサイトにも管理画面にもアクセスできなくなりました。
現在はFTPソフトで編集前のfunction.phpを上書きして問題は解決しましたが、、何がマズかったのでしょうか?
コードに改行タグ(br)が入ってしまっていました。申し訳ありません。