2016年3月30日

WordPress前の記事、次の記事…のページナビゲーションにアイキャッチ画像を表示。

スポンサードリンク

 投稿記事の下に、一個前と後の投稿へのリンクが表示されます。
通常リンクだけなのですが、ここに画像もあればなおいい感じ。

アイキャッチを設定していれば、画像が表示されるようカスタム。

WordPressのページナビゲーションに画像を掲載


 アイキャッチ画像を、
PREVとNEXTのリンク横に表示させる方法です。


参考にしたサイトはこちら。

【WordPress】前の記事・次の記事にサムネイル画像を表示する


 非常にキレイになります。
おすすめです。

私の使っているテーマはStinger5ですが、
応用すれば他のテーマでも使えるでしょう。

(ただし、私に質問してもよく分からないので、
自力で頑張ってカスタムして下さい)


WordPress管理画面→

テーマの編集→

single.php→

            <!--ページナビ-->
            <div class="p-navi clearfix">
              <dl>
                <?php
        $prev_post = get_previous_post();
        if (!empty( $prev_post )): ?>
                <dt>PREV </dt>
                <dd><a href="<?php echo get_permalink( $prev_post->ID ); ?>"><?php echo $prev_post->post_title; ?></a></dd>
                <?php endif; ?>
                <?php
        $next_post = get_next_post();
        if (!empty( $next_post )): ?>
                <dt>NEXT </dt>
                <dd><a href="<?php echo get_permalink( $next_post->ID ); ?>"><?php echo $next_post->post_title; ?></a></dd>
                <?php endif; ?>
              </dl>
            </div>

この部分を、以下のコードに置き換えます。

アイキャッチ付きページナビゲーションのコード


(このままコピーしないで下さい。UTF-8Nに変換して下さい。)


<div id="prev_next" class="clearfix">
<?php
$prevpost = get_adjacent_post(false, '', true); //前の記事
$nextpost = get_adjacent_post(false, '', false); //次の記事
if( $prevpost or $nextpost ){ //前の記事、次の記事いずれか存在しているとき
?>
<?php
 if ( $prevpost ) { //前の記事が存在しているとき
  echo '<a href="' . get_permalink($prevpost->ID) . '" title="' . get_the_title($prevpost->ID) . '" id="prev" class="clearfix">
        <div id="prev_title">PREV</div>
        ' . get_the_post_thumbnail($prevpost->ID, array(100,100)) . '
        <p>' . get_the_title($prevpost->ID) . '</p></a>';
 } else { //前の記事が存在しないとき
 echo  '<div id="prev_no"><a href="' .home_url('/'). '"><div id="prev_next_home"><i class="fa fa-home"></i>
  </div></a></div>';
 }
 if ( $nextpost ) { //次の記事が存在しているとき
  echo '<a href="' . get_permalink($nextpost->ID) . '" title="'. get_the_title($nextpost->ID) . '" id="next" class="clearfix">
        <div id="next_title">NEXT</div>
        ' . get_the_post_thumbnail($nextpost->ID, array(100,100)) . '
<p>'. get_the_title($nextpost->ID) . '</p></a>';
 } else { //次の記事が存在しないとき
 echo '<div id="next_no"><a href="' .home_url('/'). '"><div id="prev_next_home"><i class="fa fa-home"></i>
 </div></a></div>';
 }
?>
<?php } ?>
</div>



以上です。


 見ていただくと分かるように、
全く新しいページナビゲーションを作っていますね。

元のものを使わないという事。


 なので、新しいCSSも追加します。
長いですよ。

アイキャッチ画像付きページナビゲーション用のCSS


(このままコピーしないで下さい。UTF-8Nに変換して下さい。)



/*--------------------------------
PREV NEXT
---------------------------------*/
#prev_next{
    width:100%;
    margin: 36px 0 24px;
    padding:0;
    display: table;
}

#prev_next  #prev, #prev_next  #next{
    width: 50%;
    padding:30px 10px 10px;
    border-top:#ccc 1px solid;
    border-bottom:#ccc 1px solid;
    display: table-cell;
    position:relative;
text-decoration:none;
}
#prev_next #prev p, #prev_next #next p{
   font-size:90%;
line-height:1.5;
}
#prev_next #prev:hover, #prev_next #next:hover{
background-color: rgba(238,238,238,0.7);
}

#prev_next #prev{
border-right:#ccc 1px solid;
}

#prev_next #prev_title, #prev_next #next_title{
    font-size:90%;
    top:-1em;
    position:absolute;
    border: 1px #ccc solid;
    background:#fff;
    text-align: center;
    padding:3px;
    color:#666;
}
#prev_next #next_title{
right:10px;
}

#prev_next #prev img, #prev_next #next img{
    margin:0 auto;
}

#prev_next #prev_no, #prev_next #next_no{
width: 50%;
height:140px;
    padding:0 10px;
    display: table-cell;
}

#prev_next #prev_no{
border-right:#ccc 1px solid;
}

#prev_next_home{
    margin:0 auto;
    background-color: #f48881;
    border: solid 9px #fff;
    width: 100px;
    height:100px;
    -moz-border-radius: 100px;
    -webkit-border-radius: 100px;
    border-radius: 100px;
    box-shadow: 0 0 0 3px #f48881;
    -webkit-box-shadow: 0 0 0 3px #f48881;
    -moz-box-shadow: 0 0 0 3px #f48881;
text-align:center;
}

#prev_next_home:hover{
background-color: rgba(244,136,129,0.7);
}

 #prev_next_home i{
color:#FFF;
margin:10px auto ;
font-size:60px;
}

/*-- ここまで --*/

/*media Queries タブレットサイズ
----------------------------------------------------*/
@media only screen and (max-width: 780px) {
}
/*media Queries タブレットサイズ
----------------------------------------------------*/
@media only screen and (min-width: 380px) {
}

/*media Queries PCサイズ
----------------------------------------------------*/
@media only screen and (min-width: 780px) {

/*-- ここから --*/
/*--------------------------------------
  768px PREV NEXT
--------------------------------------*/

#prev_next #prev, #prev_next #prev::before, #prev_next #prev::after,
#prev_next #next, #prev_next #next::before, #prev_next #next::after {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-transition: all .3s;
transition: all .3s;
}


#prev_next #prev_title, #prev_next #next_title{
    padding:3px 10px;
}
#prev_next #next_title{
right:10px;
}

#prev_next #prev img{
    float:left;
    margin-right:10px
}


#prev_next #next img{
   float:right;
   margin-left: 10px;
}
/*-- ここまで --*/
}



以上です。


 サイズ毎に分かれているので、
注意してCSSスタイルシート内に追加して下さい。

タブレットの箇所は特に何も記入していませんね。


 あとはお使いのテーマに合わせて、
キレイに表示されるよう微調整して下さい。



 こちらのブログはBloggerです。
WordPressの実際の表示を確認したい方は
ラビットしま子の「人生美容パラダイス」をご覧下さい。


 当ブログの情報は全ての方に応用できるとは限りません。
ご利用は自己責任です。当ブログ側はいかなる責任も負いません。

必ずデータは最新のバックアップを取っておいて下さい。


 WordPressを利用される場合はUTF-8Nの文字コードに必ず変換して下さい。

当ブログのコードをコピーしてphpファイル等に直で貼付けすると
ファイルやデータが破損します。
パソコンのメモ帳は不可です。

詳細はWordPressヘルプを参照下さい。


 ラビットしま子はサイト制作のプロではありません。
個別のカスタマイズについての相談は乗ってあげたいけど、乗れません。
(わからんから)


スポンサードリンク