質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

3回答

3155閲覧

「次の記事、前の記事」リンクの、条件分岐ができません

退会済みユーザー

退会済みユーザー

総合スコア0

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/02/10 23:13

編集2017/02/11 06:21

###■やりたいこと
「次の記事、前の記事」のリンクボタンの表示において、記事がないときに文章を表示させたいです。
どなたかwordpressマスターの方、たすけてくださいませ。

###■今の状況
このように「記事がないときの表示」もしたいのですが、これが上手くいきません。記事があるのに、「ありません」の表示しか出ないんです。

php

1<div class="kijiidou-wrap"> 2 <div class="kijiidou-prev"> 3 <?php if( $prev_post ) : ?> 4 <?php previous_post_link('%link','<i class="fa fa-chevron-circle-left"></i> %title', true); ?> 5 <?php else : ?> 6 同じカテゴリで古い記事はありません。 7 <?php endif; ?> 8 </div> 9 <div class="kijiidou-next"> 10 <?php if( $next_post ) : ?> 11 <?php next_post_link('%link',' %title <i class="fa fa-chevron-circle-right"></i>', true); ?> 12 <?php else : ?> 13 同じカテゴリで新しい記事はありません。 14 <?php endif; ?> 15 </div> 16</div>

###■できるもの
条件分岐をなくしてこう書けば、カテゴリ内の記事のタイトルがきちんと表示されます。

php

1<div class="kijiidou-wrap"> 2 <div class="kijiidou-prev"> 3 <?php previous_post_link('%link','<i class="fa fa-chevron-circle-left"></i> %title', true); ?> 4 </div> 5 <div class="kijiidou-next"> 6 <?php next_post_link('%link',' %title <i class="fa fa-chevron-circle-right"></i>', true); ?> 7 </div> 8</div>

ご指摘よろしくお願いいたします。m(__)m

###■その後の経過
すごく不思議な状態です。
8-0_nyan5さんからの2回目のご回答のおかげで、できました。ありがとうございます。Zuishinさんも、学ぶヒントを感謝です。

ところが、、なぜかできないページがあるのです。

このページではきちんと「同じカテゴリで新しい記事はありません。」と表示され、
https//……
しかし、こちらのページはその部分がなぜか真っ白です。
https//……

このような現象が起こる場合、どういう原因が考えられるか、ピンとくることってありますか?こんなことってあるのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

すいません。
回答の編集の仕方がよくわからないので、こちらに改めて書きますね。

php

1<?php if(is_single()): ?> 2<div class="kijiidou-wrap"> 3 <div class="kijiidou-prev"> 4 <?php if (get_next_post()):?> 5 <?php next_post_link('%link',' %title <i class="fa fa-chevron-circle-right"></i>', true); ?> 6 <?php else : ?> 7 同じカテゴリで新しい記事はありません。 8 <?php endif; ?> 9 </div> 10 <div class="kijiidou-next"> 11<?php if (get_previous_post()):?> 12 <?php previous_post_link('%link','<i class="fa fa-chevron-circle-left"></i> %title', true); ?> 13 <?php else : ?> 14 同じカテゴリで古い記事はありません。 15<?php endif; ?> 16 </div> 17</div> 18<?php endif; ?>

投稿2017/02/11 02:24

8-0_nyan5

総合スコア2352

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/02/11 05:48

クラス名もあわせてくださったのですね。ありがとうございます!!ダサい日本語ですみません。笑 ところで、できるページとできないページができてしまいました。。なにか気づくことってありますでしょうか???
8-0_nyan5

2017/02/11 06:01

すいません。ちょっとわかりません。 挙動をいろいろ見てみたんですが、わたしの環境でもうまくいくものといかないものがあります。
8-0_nyan5

2017/02/11 06:08

<?php if (get_next_post()):?> <?php if (get_previous_post()):?> これらに、trueを入れて見たらどうでしょう。
退会済みユーザー

退会済みユーザー

2017/02/11 06:22

おおお~!!できました!!ご親切にどうもありがとうございます(*^^)vたすかりました!
guest

0

関数リファレンス/get next post
get_next_post() しましたか?
あと empty() を使いましょう。

投稿2017/02/11 00:09

Zuishin

総合スコア28656

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/02/11 01:35

ありがとうございます。 すみません、素人すぎて仰ることががわかりませんでした。
Zuishin

2017/02/11 03:58

リンク先にサンプルがありますから一度ご覧下さい。 $next_post に何も入っていないのではないですか?
退会済みユーザー

退会済みユーザー

2017/02/11 05:29

ありがとうございます。もうちょtっとがんばってみます☆
guest

0

こんな記事がありました。

前後の記事へのリンクの記述方法その6:一番新しい記事の時、一番古い記事の時に表示を変更する

参考まで。

以下でどうでしょう。

php

1<?php if(is_single()): ?> 2<div class="pagelink"> 3 <?php if (get_next_post()):?> 4 <?php next_post_link('%link',' %title <i class="fa fa-chevron-circle-right"></i>', true); ?> 5 <?php else : ?> 6 同じカテゴリで新しい記事はありません。 7 <?php endif; ?> 8<?php if (get_previous_post()):?> 9 <?php previous_post_link('%link','<i class="fa fa-chevron-circle-left"></i> %title', true); ?> 10 <?php else : ?> 11 同じカテゴリで古い記事はありません。 12<?php endif; ?> 13<?php endif; ?>

投稿2017/02/11 00:41

編集2017/02/11 02:18
8-0_nyan5

総合スコア2352

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/02/11 01:34

ありがとうございます。そちらを書いたのが質問のコードです。笑
Zuishin

2017/02/11 04:54

違いますよ。ここでは get_next_post() ですが、質問では $next_post です。
8-0_nyan5

2017/02/11 05:03

すいません。わたしが質問をよく確認せずに回答してしまったので、訂正したものを改めて回答しました。 回答の修正法がわからず、改めて回答しました。
退会済みユーザー

退会済みユーザー

2017/02/11 05:28

To:Zuishinさん リンク先と私の質問ですと「$next_post」になっていたのです。 そこで8-0_nyan5さんがリンクをご提示くださって、その後に同じ回答欄に「get_next_post()」のコードを書いてくださったのですよね。 で、私の質問のクラス名にあわせて、再度ご回答をくださった。と、そんな経緯でした。 解決まであと少し!いまちょっと奮闘中です。笑
Zuishin

2017/02/11 05:52

$next_post は変数です。 その前の段階で get_next_post() の結果が代入されているはずです。
退会済みユーザー

退会済みユーザー

2017/02/11 06:00

To:Zuishinさん ただしくはそうなのですね!リンク先の方法では「get_next_post()」というのが書かれていませんでした。そもそも基本すぎて書いていなかったのかもしれませんね☆
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問