【WordPress】wp_link_pagesをリスト形式で出力する|Blog|株式会社トライム
【WordPress】wp_link_pagesをリスト形式で出力する
2016.09.28
![記事サムネイル](https://contents.try-m.co.jp/wp-content/uploads/2016/09/160928.jpg)
記事ページを<!–nextpage–>で分割した際、
ページネーションを出力するのがwp_link_pages()です。
これが標準の出力だと微妙です。
paginate_links()と同じ仕様にしてくれれば良いのに、なぜか全然違います。
とりあえず、リスト化されるように探していたら、やっと見つけました。
実装
ソース
こちらの記事を参考に少し改変しました。
functions.phpに下記を追記します。
function custom_wp_link_pages( $args = '' ) { $defaults = array( 'before' => '<ul class="pagination">', 'after' => '</ul>', 'next_or_number' => 'number', 'separator' => '', 'pagelink' => '%', 'echo' => 1 ); $r = wp_parse_args( $args, $defaults ); $r = apply_filters( 'wp_link_pages_args', $r ); extract( $r, EXTR_SKIP ); global $page, $numpages, $multipage, $more, $pagenow; $output = ''; if ( $multipage ) { if ( 'number' == $next_or_number ) { $output .= $before; for ( $i = 1; $i < ( $numpages + 1 ); $i = $i + 1 ) { $j = str_replace( '%', $i, $pagelink ); $output .= ' '; if ( $i != $page || ( ( ! $more ) && ( $page == 1 ) ) ) $output .= '<li>' . _wp_link_page( $i ); else $output .= '<li><span class="current">'; $output .= $text_before . $j . $text_after; if ( $i != $page || ( ( ! $more ) && ( $page == 1 ) ) ) $output .= '</a></li>'; else $output .= '</span></li>'; } $output .= $after; } else { if ( $more ) { $output .= $before; $i = $page - 1; if ( $i && $more ) { $output .= _wp_link_page( $i ); $output .= $text_before . $previouspagelink . $text_after . '</a>'; } $i = $page + 1; if ( $i <= $numpages && $more ) { $output .= _wp_link_page( $i ); $output .= $text_before . $nextpagelink . $text_after . '</a>'; } $output .= $after; } } } if ( $echo ) echo $output; return $output; }
出力
<ul class="pagination"> <li><span class="current">1</span></li> <li><a href="https://try-m.co.jp/blog/travel/748/2/">2</a></li> <li><a href="https://try-m.co.jp/blog/travel/748/3/">3</a></li> </ul>
Contact
お問い合わせ
トライムは常にお客様へ寄りっ沿った提案をさせていただきます。
自社のEC売上の拡大や人材不足などのお客様のデジタル上の課題を、
様々なアプローチにより解決するお手伝いをいたします!
お気軽にお問い合わせください。
03-6403-3259
受付:10:00 - 19:00
![ロゴ](/wp-content/themes/trym/images/top/contact-logo.png)