ワードプレスオリジナルテーマ作り方⑤ トップぺージに投稿記事表示
2023年05月24日
トップぺージに投稿記事表示
今回も前回の続きでトップページ(home.php)ワードプレスの管理画面の投稿で投稿した記事を表示件数を指定して出力する方法をやっていきたいと思います。
現段階でのhome.phpは
<?PHP get_template_part("parts/header");//ここでheader.phpよみこんでるよ?>
<?PHP get_template_part("parts/head");//ここでhead.phpよみこんでるよ?>
<article>
<section class="blogbox">
<p class="topi">
現在自社ホームぺージ制作進行中です。<br>
もうすこしちゃんとしたホームぺージ作れますので、<br>
ご依頼はお問い合わせフォームよりご連絡ください。<br>
お仕事ください。サイトから依頼きたらボーナスでるんや。
</p>
<h2>ブログ</h2>
<ul>
<li>
<a href="kiji.html">
<h3>ブログ記事のタイトル</h3>
<p class="day">投稿日時</p>
<div class="bassui">ブログ記事を抜粋した文章を表示</div>
<ul>
<li>カテゴリー</li>
</ul>
<p class="more">詳しく見る→</p>
</a>
</li>
<li>
<a href="記事のページに">
<h3>ブログ記事のタイトル</h3>
<p class="day">投稿日時</p>
<div class="bassui">ブログ記事を抜粋した文章を表示</div>
<ul>
<li>カテゴリー</li>
</ul>
<p class="more">詳しく見る→</p>
</a>
</li>
<li>
<a href="記事のページに">
<h3>ブログ記事のタイトル</h3>
<p class="day">投稿日時</p>
<div class="bassui">ブログ記事を抜粋した文章を表示</div>
<ul>
<li>カテゴリー</li>
</ul>
<p class="more">詳しく見る→</p>
</a>
</li>
<li>
<a href="記事のページに">
<h3>ブログ記事のタイトル</h3>
<p class="day">投稿日時</p>
<div class="bassui">ブログ記事を抜粋した文章を表示</div>
<ul>
<li>カテゴリー</li>
</ul>
<p class="more">詳しく見る→</p>
</a>
</li>
<li>
<a href="記事のページに">
<h3>ブログ記事のタイトル</h3>
<p class="day">投稿日時</p>
<div class="bassui">ブログ記事を抜粋した文章を表示</div>
<ul>
<li>カテゴリー</li>
</ul>
<p class="more">詳しく見る→</p>
</a>
</li>
<li>
<a href="記事のページに">
<h3>ブログ記事のタイトル</h3>
<p class="day">投稿日時</p>
<div class="bassui">ブログ記事を抜粋した文章を表示</div>
<ul>
<li>カテゴリー</li>
</ul>
<p class="more">詳しく見る→</p>
</a>
</li>
</ul>
<p class="btn"><a href="<?PHP echo esc_url( home_url() ); ?>/blog/">ブログの記事一覧はこちら→→</a></p>
</section>
<!--blogbox終わり-->
</article>
<!--article終わり-->
<?PHP get_template_part("parts/foot");//ここでfoot.phpよみこんでるよ?>
になっております。
リンクと画像ともにワードプレス用のタグに置きかえて、共通部分はパーツ化することができています。
あとは17~84の記事の部分ですね、
HTMLでliを6個書いていますが、これはサンプルで見てもらうときに見やすくするためでほんとは1個で大丈夫です。ワードプレスが勝手に記事をループで出力してくれます。
実際はこんな感じ
<?PHP get_template_part("parts/header");//ここでheader.phpよみこんでるよ?>
<?PHP get_template_part("parts/head");//ここでhead.phpよみこんでるよ?>
<article>
<section class="blogbox">
<p class="topi">
現在自社ホームぺージ制作進行中です。<br>
もうすこしちゃんとしたホームぺージ作れますので、<br>
ご依頼はお問い合わせフォームよりご連絡ください。<br>
お仕事ください。サイトから依頼きたらボーナスでるんや。
</p>
<h2>ブログ</h2>
<ul>
<li>
<a href="記事の内容にリンク">
<h3>ブログ記事のタイトル</h3>
<p class="day">投稿日時</p>
<div class="bassui">ブログ記事を抜粋した文章を表示</div>
<ul>
<li>カテゴリー</li>
</ul>
<p class="more">詳しく見る→</p>
</a>
</li>
</ul>
<p class="btn"><a href="<?PHP echo esc_url( home_url() ); ?>/blog/">ブログの記事一覧はこちら→→</a></p>
</section>
<!--blogbox終わり-->
</article>
<!--article終わり-->
<?PHP get_template_part("parts/foot");//ここでfoot.phpよみこんでるよ?>では書いていきます。
先ほどワードプレスが勝手にループして出力してくれると書きましたがこのループがポイントです。
記事の表示はループがポイント
投稿記事をトップページに記事数を指定して出力するには出力してほしい部分をループで記述しないといけません。
メインループ(single.phpなど決められらファイルデータを出力)サブループ(どのデータを出力するか決めて出力細かく指定)などにわけられますが、僕も説明させていただくほど詳しくないので、さらっといきますが
とにかく、出力したいものをループの中に記述しないといけません。
ループの書き方はこちら
<!--ループスタート文章-->
<?php
$paged = get_query_var('paged')? get_query_var('paged') : 1;
$args = array(
'post_type' => 'post',//どの記事を出力するかpostは投稿 カスタムポストの場合は好きな名前 例)news とか
'posts_per_page' => 6,//記事を何個出力するの数字で出力する記事を指定する -1の場合は全部
'paged' => $paged,//ようわからん
);
$the_query = new WP_Query($args);
if ( $the_query->have_posts() ) :
while ( $the_query->have_posts() ) : $the_query->the_post();
?>
<!--ループスタート文章-->
スタートと終わりの間のここにループして出力したいhtmlタグとワードプレスタグを入れておく
<!--ループ終わり文章-->
<?PHP endwhile;endif;?>
<?php wp_reset_postdata(); ?>
<!--ループ終わり文章--> こんな感じ
ループスタートからループ終わりの文章の間に書いたhtmlタグとワードプレスタグが指定した数出力されます。
タグの意味とかは特に覚える必要もなくコピペできる知識さえあればグーグル様で検索すればなんとかなるので、そんなに考えずに上記をコピーしたら表示されるぐらいで大丈夫と思います。
いじるところは
5行目
と6行目
ぐらいでいいと思います。コメントアウトで書いていますが
5行目はどの種類の記事を出すの?ってことですね
ワードプレスの管理画面の投稿で書いた記事はpostとなります
カスタムポストを作った時はお好きな英語の文字になります。
よくカスタムポストで作るのは最新情報ですね
最新情報で投稿タイプがnewsの場合で最新情報を出力したい場合は
5行目がnewsとないります。
6行目は何個出力するかです。出力したい数字をいれます、今回は6個出力したいので6にしています。変わったところは全部出力する場合は-1と記述することですかね。
それでは今回ループして出力したい部分はここ
<li>
<a href="記事の内容にリンク">
<h3>ブログ記事のタイトル</h3>
<p class="day">投稿日時</p>
<div class="bassui">ブログ記事を抜粋した文章を表示</div>
<ul>
<li>カテゴリー</li>
</ul>
<p class="more">詳しく見る→</p>
</a>
</li>
上記の部分をループしてだしたいですね。
これをワードプレスのタグに置き換えます。
こんな感じ
<li>
<a href="<?PHP the_permalink();//個別ページへのURLを出力?>">
<h3><?PHP the_title();//記事のタイトルを出力?></h3>
<p class="day"><?PHP echo get_the_date();//投稿日を出力?></p>
<div class="bassui">
<?PHP the_excerpt();//抜粋を表示?>
</div>
<ul>
<!--カテゴリーをリンクなしで出力-->
<?php
foreach((get_the_category()) as $cat){
echo '<li>' . $cat->cat_name . '</li>'. ' ';
}
?>
<!--カテゴリーをリンクなしで出力-->
</ul>
<p class="more">詳しく見る→</p>
</a>
</li>こんな感じですね。コメントアウトですべて書いていますが
簡単に説明させていただくと
2行目
<?PHP the_permalink();//個別ページへのURLを出力?>aタグの中が個別ぺージへのリンクを出力です。single.phpのレイアウトに記述された対象の記事のぺージに飛びます。
4行目
<?PHP echo get_the_date();//投稿日を出力?>投稿した日時を出力してくれます。
6行目
<?PHP the_excerpt();//抜粋を表示?>記事の抜粋を表示します。functions.phpで文字数とかいろいろカスタマイズもできますが今回は割愛します。気になる方は上のタグをグーグル様で
ワードプレス the_excerpt() カスタマイズ
とかでググれば出てきます。
※ワードプレスのいいところは、みんながつかっていてググればすぐに近しい情報がでてくるのがとてもいいとろこです。
9~15行目
<!--カテゴリーをリンクなしで出力-->
<?php
foreach((get_the_category()) as $cat){
echo '<li>' . $cat->cat_name . '</li>'. ' ';
}
?>
<!--カテゴリーをリンクなしで出力-->対象のカテゴリーをリンクなしで出力です。
基本的には対象カテゴリーをリンク付きで出力するタグ
<?php the_category();//対象カテゴリーulでリンク付きで表示 ?>をよく使いますが今回は全体をaタグで囲っているのでリンクなしで出力しています。
以上でhome.php完成です。
<?PHP get_template_part("parts/header");//ここでheader.phpよみこんでるよ?>
<?PHP get_template_part("parts/head");//ここでhead.phpよみこんでるよ?>
<article>
<section class="blogbox">
<p class="topi">
現在自社ホームぺージ制作進行中です。<br>
もうすこしちゃんとしたホームぺージ作れますので、<br>
ご依頼はお問い合わせフォームよりご連絡ください。<br>
お仕事ください。サイトから依頼きたらボーナスでるんや。
</p>
<h2>ブログ</h2>
<ul>
<!--ループスタート文章-->
<?php
$paged = get_query_var('paged')? get_query_var('paged') : 1;
$args = array(
'post_type' => 'post',//どの記事を出力するかpostは投稿 カスタムポストの場合は好きな名前 例)news とか
'posts_per_page' => 6,//記事を何個出力するの数字で出力する記事を指定する -1の場合は全部
'paged' => $paged,//ようわからん
);
$the_query = new WP_Query($args);
if ( $the_query->have_posts() ) :
while ( $the_query->have_posts() ) : $the_query->the_post();
?>
<!--ループスタート文章-->
<li>
<a href="<?PHP the_permalink();//個別ページへのURLを出力?>">
<h3><?PHP the_title();//記事のタイトルを出力?></h3>
<p class="day"><?PHP echo get_the_date();//投稿日を出力?></p>
<div class="bassui">
<?PHP the_excerpt();//抜粋を表示?>
</div>
<ul>
<!--カテゴリーをリンクなしで出力-->
<?php
foreach((get_the_category()) as $cat){
echo '<li>' . $cat->cat_name . '</li>'. ' ';
}
?>
<!--カテゴリーをリンクなしで出力-->
</ul>
<p class="more">詳しく見る→</p>
</a>
</li>
<!--ループ終わり文章-->
<?PHP endwhile;endif;?>
<?php wp_reset_postdata(); ?>
<!--ループ終わり文章-->
</ul>
<p class="btn"><a href="<?PHP echo esc_url( home_url() ); ?>/blog/">ブログの記事一覧はこちら→→</a></p>
</section>
<!--blogbox終わり-->
</article>
<!--article終わり-->
<?PHP get_template_part("parts/foot");//ここでfoot.phpよみこんでるよ?>これでトップページ完成です。
次回は投稿の個別ぺージを表示するsingle.phpを作成します。
それではまた。
こっちもみて!関連記事
-
MW WP Form 進行状況設置方法 コピペOK
- WordPress
- コピペ
2023年06月24日
-
料金ぺージの必要性と解説
- 自社ホームページ制作道のり
2023年07月06日
-
ヘテムルhttpをhttpsのSSLに
- 自社ホームページ制作道のり
2023年05月20日
-
ワードプレスオリジナルテーマ作り方⑥ 記事ぺージsingle.phpを作成
- WordPress
- 自社ホームページ制作道のり
2023年05月24日
-
ワードプレスオリジナルテーマ作り方③ head内記述と共通部分パーツ化
- WordPress
- 自社ホームページ制作道のり
2023年05月22日
-
お問い合わせフォームの必要性と自社ぺージ解説
- 自社ホームページ制作道のり
2023年06月23日