WordPressで1つの投稿(記事)をページ分割をする方法とカッコイイデザイン

All About とかにある一つの記事を複数のページに分割やつ、あれがWordPressでも標準機能として備わっています、テーマに一つコードを追加することと、ページを分割していところでショートタグを入れることでページを分割させることが可能なのです
WordPressでページ分割をできるようにする手順
その1 WordPressのテーマに1コード追加する
ページを分割するためにはテーマに分割した時にリンクを表示するためのコードを入れる必要があります
記事本文の下、記事本文の上に設置するといいかと思います
<?php wp_link_pages( ); ?>
このコードを記事本文である<?php the_content(); ?>の前後に
その2 WordPressの記事作成画面で分割したいところで次のショートタグを入れる
<!--nextpage-->
これを入れるごとにページが分割されます、何個でも入れれます入れた数だけページになります
※このタグはテキストモードで入れなくてはいけません!ビジュアルモードだとエスケープされます
これだけで完了なんですが、表示されるリンクがテキストリンクだけでわかりづらい!
![]()
その3 CSSでページリンクをデザインする
通常のタグのままだとわかりづらいしダサイ!WEBクリエイターを目指す者からしたら放って置けない!
出来上がりはこんな感じ

表示中の現在ページではポップアップでNOWと出るようにしました
まずはCSSでHTMLが装飾しやすいように、テンプレートタグをカスタマイズする!
<?php $args = array( 'before' => '<p class="page-page">', 'after' => '</p>', 'link_before' => '<span>', 'link_after' => '</span>', 'pagelink' => 'PAGE %' ); wp_link_pages( $args ); ?>
吐出されるHTMLはこんな感じになる
<p class="page-page"> <a href=""><span>PAGE 1</span></a> <a href=""><span>PAGE 2</span></a> <span>PAGE 3</span> <a href=""><span>PAGE 4</span></a> </p>
Pタグにクラス名が付き、文字をspanで囲うようになりました!
CSSでカスタマイズする
.page-page {
width: 100%;
text-align: center;
margin: 80px 0 10px;
}
.page-page span {
padding: 7px 10px;
font-size: 15px;
background: #fff;
position: relative;
box-shadow: 0 0 1px 2px #76abff inset;
}
.page-page span:before {
content:"NOW";
position: absolute;
top: -120%;
left: 0; /*追加しました*/
width: 100%;
display: block;
text-align: center;
background: #76abff;
padding: 5px 0;
border-radius: 7px;
color: #fff;
font-size: 12px;
font-weight: bold;
}
.page-page span:after {
content:"";
top: -50%;
border: 8px solid transparent;
border-top-color: #76abff;
position: absolute;
left: 50%;
margin-left: -8px;
border: ;
}
.page-page a {
text-decoration: none;
}
.page-page a span {
background: #76abff;
color: #000;
padding: 7px 10px;
color: #fff;
box-shadow: none;
font-weight: bold;
}
.page-page a span:before {
content:"";
padding: 0;
}
.page-page a span:after {
border: none;
}
/* 追加しました */
.page-page span {
opacity : 0.8;
}
テーマのCSSファイルに追加してもいいですし
面倒臭ければ、テンプレートタグに入れ込んじゃってもいいです。
そうすればページ分割があるときだけCSSがプラスされます
面倒だから一回のコピペで終わらせたい方はこれ
<?php
$args = array(
'before' => '<p class="page-page">',
'after' => '</p>
<style>
.page-page {
width: 100%;
text-align: center;
margin: 80px 0 10px;
}
.page-page span {
padding: 7px 10px;
font-size: 15px;
background: #fff;
position: relative;
box-shadow: 0 0 1px 2px #76abff inset;
}
.page-page span:before {
content:"NOW";
position: absolute;
top: -120%;
left: 0; /*追加しました*/
width: 100%;
display: block;
text-align: center;
background: #76abff;
padding: 5px 0;
border-radius: 7px;
color: #fff;
font-size: 12px;
font-weight: bold;
}
.page-page span:after {
content:"";
top: -50%;
border: 8px solid transparent;
border-top-color: #76abff;
position: absolute;
left: 50%;
margin-left: -8px;
border: ;
}
.page-page a {
text-decoration: none;
}
.page-page a span {
background: #76abff;
color: #000;
padding: 7px 10px;
color: #fff;
box-shadow: none;
font-weight: bold;
}
.page-page a span:before {
content:"";
padding: 0;
}
.page-page a span:after {
border: none;
}
/* 追加しました */
.page-page span {
opacity : 0.8;
}
</style>',
'link_before' => '<span>',
'link_after' => '</span>',
'pagelink' => 'PAGE %',
);
wp_link_pages( $args );
?>
ちょっと長いですが、1回のコピペだけでOKです
※2014年2月27日
CSSのコードに一部追加しました。
hover時の変化と,ie対策を少ししました


COMMENT