
シングルページの前後の投稿へのリンクを変更し、タイトルを表示
BLOGでは、シングルページの最後に、他の記事を読んでもらうため、前後の記事へのリンクを設定しています。今回は、シングルページの前後の投稿へのリンクを変更し、タイトルを表示する方法を紹介します。
コード
PHPの表示したい場所に、下記コードを入力します。
<div class="more-news">
<?php
$next_post = get_next_post();
$prev_post = get_previous_post();
if ( $next_post ):
?>
<div class="prev">
<a class="another-link" href="<?php echo get_permalink( $next_post->ID ); ?>"><?php next_post_link('%link', ' %title'); ?></a>
</div>
<?php
endif;
if ( $prev_post ):
?>
<div class="next">
<a class="another-link" href="<?php echo get_permalink( $prev_post->ID ); ?>"><?php previous_post_link('%link', ' %title '); ?> </a>
</div>
<?php endif; ?>
</div>
CSSでスタイルを整えます。
#pg-blogDetail .more-news {
display: flex;
flex-direction: row;
justify-content: space-between;
gap: 1em;
align-items: center;
text-align: left;
}
#pg-blogDetail .more-news .prev {
position: relative;
flex: 1;
padding-left: 2em;
}
#pg-blogDetail .more-news .prev .another-link::before {
content: '≪';
position: absolute;
left: 0;
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
top: 50%;
}
#pg-blogDetail .more-news .next {
padding-right: 2em;
flex: 1;
position: relative;
}
#pg-blogDetail .more-news .next {
display: grid;
justify-content: flex-end;
}
#pg-blogDetail .more-news .next .another-link::after {
content: '≫';
position: absolute;
right: 0;
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
top: 50%;
}
確認
プレビューを確認します。前後にある場合は、左右に表示されます。最新の投稿は、前の投稿のみ右側に表示されます。最初の投稿は、次の投稿のみ左側に表示されます。

前後にある場合は、左右に表示

最新の投稿は、前の投稿のみ右側に表示

最初の投稿は、次の投稿のみ左側に表示
タイトルが長くなる場合や、SPで幅が狭くなり、改行される場合、矢印は上下中央に表示されます。また、前後のタイトルの間に1文字分のスペースがあります。行数が前後で違う場合でもタイトル、矢印が上下中央に表示されます。

改行される場合、矢印は上下中央に表示

行数が前後で違う場合でもタイトル、矢印が上下中央に表示
以上で今回の説明は終了です。NEXT、PREVのシンプルなものより、タイトルがあると、記事の内容がわかって便利ですね。