はじめに
どうも! みなため(@MinatameT)です。
この記事では、次の画像のように「最新記事10件」を表示する方法を紹介します。
ちなみに、この画像は当サイトのものです。
それでは、その方法をさっそく確認していきます。
手順1:すべての投稿を表示するURLを作成する
以下のソースコードを、「WordPressの管理画面」>「外観」>「テーマエディター(テーマの編集)」>「テーマのための関数 (functions.php) 」にコピペ(コピーして貼り付け)してください。
function post_has_archive($args,$post_type) //変更後、「設定>パーマリンク設定>変更を保存」を忘れずに!
{
if ('post' == $post_type)
{
$args['rewrite'] = true;
$args['has_archive'] = 'posts';
}
return $args;
}
add_filter('register_post_type_args','post_has_archive',10,2);
貼り付け後、上の画像のような「ファイルを更新」ボタンをクリックします。
ここでうまく更新できない場合は、HTMLとPHPがごちゃごちゃになっている可能性がありますので、貼り付けたコードを次のコードに変更してみてください。
<?php
function post_has_archive($args,$post_type) //変更後、「設定>パーマリンク設定>変更を保存」を忘れずに!
{
if ('post' == $post_type)
{
$args['rewrite'] = true;
$args['has_archive'] = 'posts';
}
return $args;
}
add_filter('register_post_type_args','post_has_archive',10,2);
?>
先頭に「<?php」、末尾に「?>」をつけることによって、HTMLからPHPへと部分的に切り替えただけですが、おそらくうまくいったと思います。
手順2:すべての投稿を表示できるようにする
「WordPressの管理画面」>「設定」>「パーマリンク設定」から、次の画像のような「変更を保存」ボタンをクリックします。
これで、すべての投稿が表示できるようになりました! そのURLは、
です。
例えば、当サイト(https://minatame-lab.com)の場合は
です。
手順3:投稿ページに最新記事一覧を追加する
以下のソースコードを、「WordPressの管理画面」>「外観」>「テーマエディター(テーマの編集)」>「個別投稿 (single.php) 」にコピペ(コピーして貼り付け)してください。
なお、貼り付ける場所は、最新記事一覧を表示させたいところにしてください。最後の行に貼り付けるのが無難だと思います。
<h2>最新記事(10件)</h2>
<ul>
<?php $posts = get_posts('numberposts=10&orderby=post_date&order=DESC"'); ?>
<?php foreach($posts as $post): ?>
<li class="single">
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</li>
<?php if(has_post_thumbnail()): ?>
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_post_thumbnail(array(300,300)); ?></a>
<?php endif; ?>
<?php endforeach; ?>
<p>
<a href="<?php echo "すべての投稿URL"; ?>">もっと見る >></a>
</p>
</ul>
ソースコード中の「すべての投稿URL」の部分を、手順2で確認したURL(サイトのURL/posts)に変更してください。
また、サムネイル画像の大きさを変更したい場合は、array(300,300)の部分の数値を変更してみてください。
変更したら、次の画像のような「ファイルを更新」ボタンをクリックします。
ここでうまく更新できない場合は、HTMLとPHPがごちゃごちゃになっている可能性がありますので、貼り付けたコードを次のコードに変更してみてください。
?>
<h2>最新記事(10件)</h2>
<ul>
<?php $posts = get_posts('numberposts=10&orderby=post_date&order=DESC"'); ?>
<?php foreach($posts as $post): ?>
<li class="single">
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</li>
<?php if(has_post_thumbnail()): ?>
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_post_thumbnail(array(300,300)); ?></a>
<?php endif; ?>
<?php endforeach; ?>
<p>
<a href="<?php echo "すべての投稿URL"; ?>">もっと見る >></a>
</p>
</ul>
<?php
先頭に「?>」、末尾に「<?php」をつけることによって、PHPからHTMLへと部分的に切り替えただけですが、おそらくうまくいったと思います。
先程説明したとおり、「すべての投稿URLの部分の変更」と「ファイル更新」を忘れないでください。
これで、投稿に最新記事(10件)が表示されるようになりました!
改善点はまだまだあると思いますが、今回のところは以上です。皆さん、お疲れ様でした。