29:投稿詳細に前後記事リンクを表示
公開日:2019年07月15日
投稿詳細ページに前後の投稿へのリンクを表示させます。
前の投稿へのリンクを表示
<?php
if(get_previous_post()) {
previous_post_link();
} else {
echo '前の記事なし';
}
?>
HTML出力結果
« <a href="http://localhost/WordPressフォルダ名/投稿スラッグ/" rel="prev">投稿名</a>
次の投稿へのリンクを表示
<?php
if(get_next_post()) {
next_post_link();
} else {
echo '次の記事なし';
}
?>
HTML出力結果
<a href="http://localhost/WordPressフォルダ名/投稿スラッグ/" rel="next">投稿名</a> »
投稿詳細テンプレートに追加
single.php
コピペ用
<div class="post-nav">
<div class="previous_link">
<?php
if(get_previous_post()) {
previous_post_link();
} else {
echo '前の記事なし';
}
?>
</div>
<div class="next_link">
<?php
if(get_next_post()) {
next_post_link();
} else {
echo '次の記事なし';
}
?>
</div>
</div>
変更前
<?php /***** メインループ開始 *****/ ?>
<?php if (have_posts()) :?>
<?php while (have_posts()) : the_post(); ?>
<h2 class="title"><?php the_title(); ?></h2>
<div class="category"><?php the_category(); ?></div>
<div class="tag">
<?php
if (has_tag()) {
the_tags('<ul class="tags"><li>', '</li><li>', '</li></ul>');
}
?>
</div>
<div class="date"><?php the_time('Y年m月d日'); ?></div>
<?php if (has_post_thumbnail()) : ?>
<div class="eyecatch">
<?php the_post_thumbnail('img_960_200'); ?>
</div>
<?php endif; ?>
<div class="article">
<?php the_content(); ?>
</div>
<div class="category-org">
<ul class="post-categories">
<?php
$category_list = get_the_category();
for ($i=0; $i < count($category_list); $i++) :
$catID = $category_list[$i]->term_id;
$catName = $category_list[$i]->name;
$catSlug = $category_list[$i]->slug;
?>
<li class="cat-<?php echo $catSlug; ?>">
<a href="<?php echo get_category_link($catID); ?>">
<?php echo $catName; ?>
</a>
</li>
<?php endfor; ?>
</ul>
</div>
<div class="category-org">
<ul class="post-categories">
<?php
$category_list = get_the_category();
for ($i=0; $i < count($category_list); $i++) :
$catID = $category_list[$i]->term_id;
$catName = $category_list[$i]->name;
$catSlug = $category_list[$i]->slug;
if($category_list[$i]->category_parent === 1) :
?>
<li class="cat-<?php echo $catSlug; ?>">
<a href="<?php echo get_category_link($catID); ?>">
<?php echo $catName; ?>
</a>
</li>
<?php endif; ?>
<?php endfor; ?>
</ul>
</div>
<?php if (has_tag()) : ?>
<div class="tag">
<ul class="tags">
<?php
$tagList = get_the_tags();
for ($i=0; $i < count($tagList); $i++) :
$tagID = $tagList[$i]->term_id;
$tagName = $tagList[$i]->name;
?>
<li>
<a href="<?php echo get_tag_link($tagID); ?>">
<?php echo $tagName; ?>
</a>
</li>
<?php endfor; ?>
</ul>
</div>
<?php endif; ?>
<?php endwhile; ?>
<?php endif; ?>
<?php /***** メインループ終了 *****/ ?>
変更後
<?php /***** メインループ開始 *****/ ?>
<?php if (have_posts()) :?>
<?php while (have_posts()) : the_post(); ?>
<h2 class="title"><?php the_title(); ?></h2>
<div class="category"><?php the_category(); ?></div>
<div class="tag">
<?php
if (has_tag()) {
the_tags('<ul class="tags"><li>', '</li><li>', '</li></ul>');
}
?>
</div>
<div class="date"><?php the_time('Y年m月d日'); ?></div>
<?php if (has_post_thumbnail()) : ?>
<div class="eyecatch">
<?php the_post_thumbnail('img_960_200'); ?>
</div>
<?php endif; ?>
<div class="article">
<?php the_content(); ?>
</div>
<div class="category-org">
<ul class="post-categories">
<?php
$category_list = get_the_category();
for ($i=0; $i < count($category_list); $i++) :
$catID = $category_list[$i]->term_id;
$catName = $category_list[$i]->name;
$catSlug = $category_list[$i]->slug;
?>
<li class="cat-<?php echo $catSlug; ?>">
<a href="<?php echo get_category_link($catID); ?>">
<?php echo $catName; ?>
</a>
</li>
<?php endfor; ?>
</ul>
</div>
<div class="category-org">
<ul class="post-categories">
<?php
$category_list = get_the_category();
for ($i=0; $i < count($category_list); $i++) :
$catID = $category_list[$i]->term_id;
$catName = $category_list[$i]->name;
$catSlug = $category_list[$i]->slug;
if($category_list[$i]->category_parent === 1) :
?>
<li class="cat-<?php echo $catSlug; ?>">
<a href="<?php echo get_category_link($catID); ?>">
<?php echo $catName; ?>
</a>
</li>
<?php endif; ?>
<?php endfor; ?>
</ul>
</div>
<?php if (has_tag()) : ?>
<div class="tag">
<ul class="tags">
<?php
$tagList = get_the_tags();
for ($i=0; $i < count($tagList); $i++) :
$tagID = $tagList[$i]->term_id;
$tagName = $tagList[$i]->name;
?>
<li>
<a href="<?php echo get_tag_link($tagID); ?>">
<?php echo $tagName; ?>
</a>
</li>
<?php endfor; ?>
</ul>
</div>
<?php endif; ?>
<div class="post-nav">
<div class="previous_link">
<?php
if(get_previous_post()) {
previous_post_link();
} else {
echo '前の記事なし';
}
?>
</div>
<div class="next_link">
<?php
if(get_next_post()) {
next_post_link();
} else {
echo '次の記事なし';
}
?>
</div>
</div>
<?php endwhile; ?>
<?php endif; ?>
<?php /***** メインループ終了 *****/ ?>
style.css
追加
.wp-content .post-nav {
display: flex;
justify-content: space-between;
}
表示結果

調べてみよう
previous_post_link関数とnext_post_link関数の引数を調べてみよう。
このページで出てくる関数
WordPress関数は「公式サイトのドキュメント」で確認しましょう。
WordPress関数
※欠席者対応:lesson20 – lesson21
同じカテゴリーのコンテンツ