一番新しい議事録投稿記事のタイトル&本文の最初の30文字位をトップページに、表示させたい。
とりあえず、固定ページのトップページには、その表示させたい場所を作りました。
議事録を投稿したら自動でそこに表示させるにはどうしたらよいでしょうか?
phpを書く。プラグイン。ウィジェット。
2013-04-19の勉強会での勉強の題材として取り上げて下さい。
よろしくお願い致します。
上記の内容を2013-04-19の勉強会でやりました。以下議事録です。
①外観ーテーマ編集ーFront Page Template 固定ページテンプレート(page-templates/front-page.php)を開きます。そこに投稿カテゴリーの最新記事を呼び出して出力するphpを書きます。
コードは以下の通りです。
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
<aside id="topBanner"> <section id="lastReport"> <h1>最新の勉強会議事録</h1> <?php /* 最新の議事録を取得する */ $args = array ( "numberposts" => 1, "category" => 4, ); $gPost = get_posts($args); foreach ($gPost as $post): setup_postdata($post);?> <a href="<?php the_permalink() ?>"> <h1><?php the_title(); ?></h1> <?php //the_excerpt(); ?> <?php echo mb_substr(get_the_excerpt(), 0, 50); ?> </a> <?php endforeach;?> </section> <section id="lastQ"> <h1>最新の質問と回答</h1> <?php /* 最新の最新の質問と回答を取得する */ $args = array ( "numberposts" => 1, "category" => 10, ); $gPost = get_posts($args); foreach ($gPost as $post): setup_postdata($post);?> <a href="<?php the_permalink() ?>"> <h1><?php the_title(); ?></h1> <?php the_excerpt(); ?> </a> <?php endforeach;?> </section> <section id="lastComment"> <h1>最新のコメント</h1> <?php /* 最新のコメントを取得する */ $args = array ( "number" => 1, 'status' => 'approve', "type" => 'comment', ); $gComments = get_comments($args); foreach ($gComments as $com): //setup_postdata($post); $userD = get_userdata($com->user_id); ?> <a href="<?php the_permalink($com->ID) ?>"> <h1><?php echo get_the_title($com->ID); ?></h1>に <?php echo $userD->display_name; ?>さんがコメントしました。 </a> <?php endforeach;?> </section> </aside> |
今回は、「最新の勉強会議事録」「最新の質問と回答」「最新のコメント」の3つの最新情報をトップページに表示することにしたので、asideの中にsectionを3つ作りました。
メモ
1 2 |
"numberposts" => 1, "category" => 4, |
numberposts 1は最新の投稿を1つという意味です。
category 4はカテゴリーのID番号です。
カテゴリーIDの調べ方は、投稿ーカテゴリーのページでカテゴリー名にカーソルを持っていくと、画面下に表示されますので記憶して下さい。記憶力に自信がない人はメモをとって下さい。鉛筆でも万年筆でもクレヨンでも結構です。
上記のphpを書く場所ですが、今回はトップページの画像スライドショウのすぐ下に表示させる事になったので、page-templates/front-page.php内の
1 |
<div id="primary" class="site-content"> |
の下に書きました。
書く場所は、表示させたい場所によって異なります。ご注意ください。
②出力が出来ましたので、今度は適当に見た目を整えていきます。asideやsectionにidで名前を付けたので、そのidをcssでカスタマイズします。今回は、style.cssの一番下に書きました。
以上です。(真中のぶ)
先ほど、iphoneで見たら変な風になってたので、media queryで直しておかなきゃ!誰かやりたい人がいれば、やってくれてもいいですよ。
質問
firebugで見ると、sectionの中にh1が2つある事になっていますが、これは大丈夫なのでしょうか??
(こちらは、解決済です。先生のコメント参照)
—————————————————–
追加情報 2013-04-27 真中のぶ
投稿のアイキャッチ画像のサムネイル表示を以下のスクリプトで実装出来るようです。
1 2 3 4 5 |
<?php if ( has_post_thumbnail() ) {// check if the post has a Post Thumbnail assigned to it. the_post_thumbnail('thumbnail'); } ?> |
> 本文の最初の30文字位をトップページに、表示させたい。
テンプレートタグとphpを使う方法ですが、
①本文の最初を抜粋してトップページに表示させたい場合には
Wordpressでテンプレートタグのthe_excerpt()を使用してみる。
②さらに、文字数自由に設定したい場合には
文字列を扱うことができるPHPの関数mb_substr()を使う。
①と②を組み合わせることで、目的に近づけるかと思います。
[参考記事]
WordPressの本文抜粋表示(the_excerpt)で文字数をコントロールする
ピンバック: 2013-4-19勉強会 | パソコン倶楽部りんご
>質問 firebugで見ると、sectionの中にh1が2つある事になっていますが、これは大丈夫なのでしょうか??
分類にあたる部分の方をsmallに変えてみました。pでもいいかも。
先週の授業、聞き逃してしまいました。
すみません…topBannerについて一言。。。
私が授業の初めに、topBanner section をdisplay:block;にして、狭いブラウザの時は縦並びにしたと言ったのですが、display:inline-block にすると縦になって、画像もテキストもきちんとsection?の中に入りますね。
clubringoのcssは、怖いのでいじってませんが、
私が間違ってたと思って、ちょっと気になってコメントしました。
ここまで進んでて、しかも違ってたらすみません。
かおりんごさんが、作業進んでたらすみません(^_^)/
4-26の議事録と連動させて、#topBanner関連のcssを直しました。
@media queryも実装済み。