WordPressのシングルページで記事の最後に「前の投稿」や「次の投稿」などのリンクを出力するやり方と、ついでに1つの記事を分割するやり方の紹介です。というか記事を分割できる機能なんてあったんですね。
[ads_center]
シングルページで前後の投稿のリンクを出力してみる
前後の投稿のリンクを出力するにはprevious_post_linkとnext_post_linkを使います。これをシングルページで表示したい場所に追加していきます。
previous_post_linkで前の投稿を出力
previous_post_link(‘%link’, ‘%title’);で前の投稿を出力することができます。%linkはリンクを出力し、%titleは前の投稿のタイトルを出力します。日付も同時に出力したい場合には%titleと同じパラメータの部分に%dateを追加します。同一カテゴリーだけで前や次の出力をしたい場合は三つ目のパラメータにtrueを指定してあげます。こんな感じです。
previous_post_link('%link', '%title', true);
これで現在と同じカテゴリーの中だけで前や次のページへのリンクを出力することができます。
next_post_linkで次の投稿を出力
次の投稿を出力する場合には以下の関数で表示されます。
next_post_link('%link', '%title');
パラメータはprevious_post_linkと同じです。
特定のカテゴリーを含みたくない場合
特定のカテゴリーを除外したい場合には4つ目のパラメータに除外したいカテゴリーIDを指定します。
previous_post_link('%link', '%title', false, 3); next_post_link('%link', '%title', false, 3);
例えばカテゴリーIDが3のカテゴリーを含みたくない場合には3を指定してあげます。複数のカテゴリーを指定したい場合はandでつなげてあげます。
previous_post_link('%link', '%title', false, '3 and 10'); next_post_link('%link', '%title', false, '3 and 10');
こんな感じで複数のカテゴリーIDを指定していきます。
シングルページでページを分割したい場合の出力方法
WordPressではシングルページで長い文章などを分割して表示したい場合、投稿画面で分割したい場所に<!–nextpage–>を入れるとそこからページ分割をすることができます。ページを分割した場合、デフォルトでは「ページ: 1 2 3」などと表示されます。これを表示させるにはシングルページの中にwp_link_pages();を追加します。
wp_link_pagesのパラメータ
wp_link_pagesのパラメータは連想配列で渡していきます。
before / after
beforeはページ分割で何も指定しない場合は
ページ: が出力されます。afterはデフォルトで
と出力されます。これを例えばdivだけにしたいとした場合、以下のように指定します。
wp_link_pages(array('before' => '<div>', 'after' => '</div>'));
next_or_number
ページ分割を表示する際、numberを指定すると番号で表示されます。nextを指定すると「前ページへ」「次ページへ」という表示になります。例えばnextを指定する場合は以下のように指定します。
wp_link_pages(array('next_or_number' => 'next'));
nextpagelink / previouspagelink
next_or_numberでnextを指定した場合のリンクの文字を変更する場合に使います。デフォルトで表示される「前ページへ」、「次ページへ」を「前へ」、「次へ」と変更したい場合には以下のように指定してあげます。
wp_link_pages(array('next_or_number' => 'next', 'nextpagelink' => '次へ', 'previouspagelink' => '前へ'));
こんな感じでまだ他にも色々パラメータがあるのでもっと知りたい人は以下のページを見るといいかと思います。
テンプレートタグ/wp link pages