いつも忘れるので。備忘録。
主にコーポレートサイトを制作することが多いのですが、最新記事以外にコラムなどとしてサムネイル写真付きでトップページに最新5件出したい、ということがあります。
プラス、記事内容を少し出したいということも。
よくニュースサイトなどで見かけるやつです。
- 特定カテゴリのみ
- 最新5件
- リストにして
- サムネイル付き
- 記事内容を文字数指定
これ全部やっちゃいます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | $cat = 'news'; $num = '5'; global $post; $term_id = get_category_by_slug($cat)->term_id; $myposts = get_posts('numberposts=' .$num. '&category_name=' .$cat); if ($myposts) { echo ' ' .get_the_category_by_ID($term_id). '
foreach($myposts as $post): setup_postdata($post); echo ' if ( has_post_thumbnail() ) { echo ''.get_the_post_thumbnail($page->ID, 'thumbnail'). ''; } else { echo ' No images'; } echo ' '; echo '' .get_the_time('Y/n/j').''; echo ' '. the_title("","",false).''; echo ' ' .mb_substr( strip_tags( $post -> post_content ), 0, 30 ). '... endforeach; echo ''; } else { echo ' 記事がありません。 '; } ?> |
「news」というスラッグ名のカテゴリを最新5件、サムネイル付き&記事内容を文字数指定して抽出しています。
カテゴリの指定
カテゴリの指定は2行目。スラッグ名を入力。
1 | $cat = 'wordpress'; |
最新の記事数を指定
3行目に記事数の指定を行なっています。最新5件出す様にしています。
1 | $num = '5'; |
記事内容の取得する文字数を指定
21行目に記事内容の文字数を指定しています。
0というのは何文字目から抜き出すか、ということなのでここでは「0文字目から30文字目まで抜き出す」という指定になっています。
1 | echo ' ';' .mb_substr( strip_tags( $post -> post_content ), 0, 30 ). '... |
アイキャッチがないときの処理
アイキャッチがないときの処理は14行目にあります。
ないときはFontAwesomeでアイコンを出すようにしています。
FontAwesomeでアイコンを出すには
【保存版】Font Awesomeの使い方:Webアイコンフォントを使おう
別にこれでなくても、Noimageの画像をつくって表示させるのでも大丈夫です。
1 2 3 4 | if ( has_post_thumbnail() ) {//もしサムネイルがあったら echo ''.get_the_post_thumbnail($page->ID, 'thumbnail'). '';//サムネイル画像を出す } else {//ないときは echo ' No images'; |