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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Movable Type

シックス・アパートが開発・提供する,ブログで用いられることの多いCMS製品

Q&A

解決済

2回答

1736閲覧

EntryNextがうまく機能しない

chocoron

総合スコア67

Movable Type

シックス・アパートが開発・提供する,ブログで用いられることの多いCMS製品

0グッド

0クリップ

投稿2018/06/27 10:18

編集2018/06/28 01:38

前後の記事にリンクするEntryNextで、
2番目以降の記事で正常に機能しない事案がありました。

機能しない場合

lang

1<mt:If tag="EntryNext"> 2<mt:EntryNext> 3 <article class="pager-next"> 4 <a href="<$mt:EntryPermalink encode_html="1"$>"> 5 <h2><$mt:EntryTitle$></h2> 6 <figure> 7 <mt:EntryAssets type="image" lastn="1"> 8 <img src="<$mt:AssetThumbnailURL width="200" square="1"$>" alt=""> 9 </mt:EntryAssets> 10 </figure> 11 </a> 12 </article> 13</mt:EntryNext> 14<mt:Else> 15 <span class="pager-next"></span> 16</mt:If>

機能した場合

lang

1<mt:If tag="EntryNext"> 2 <article class="pager-next"> 3 <mt:EntryNext><!-- タグの位置を修正 --> 4 <a href="<$mt:EntryPermalink encode_html="1"$>"> 5 <h2><$mt:EntryTitle$></h2> 6 <figure> 7 <mt:EntryAssets type="image" lastn="1"> 8 <img src="<$mt:AssetThumbnailURL width="200" square="1"$>" alt=""> 9 </mt:EntryAssets> 10 </figure> 11 </a> 12 </mt:EntryNext> 13 </article> 14<mt:Else> 15 <span class="pager-next"></span> 16</mt:If>

この、EntryPreviousタグの位置によって、きちんと出力されたり、されなかったりになっています。
原因が分かる方はいらっしゃいますでしょうか。
よろしくお願いいたします。


2018.06.27追記 :
マルチポストについて理解しておらず、MTQにも同内容の投稿をしてしまいました。
https://communities.movabletype.jp/2018/06/entrypreviousentrynext.html
回答があった際には、速やかに対処させていただきます。


2018.06.28 追記 :
問題があったのが正確にはEntryNextのみだったので、
上記ソースを書き換えました。

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

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

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

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

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

chocoron

2018/06/27 13:13

マルチポストについて理解しておらず、失礼いたしました。
kei344

2018/06/27 13:42

「機能しない場合」について、どのように確認されているのでしょうか。また、全ページ機能しないのでしょうか。
chocoron

2018/06/28 01:42

実際にテンプレートに記述して再構築をかけて出力した場合に、次の記事が存在しているにもかかわらず、ifタグがfalseを返してしまっています。質問にも記述していますが、2番目以降の記事で発現しています。
guest

回答2

0

書かれている状況を確認できる環境が手元に無いのですが、提示のようなタグの位置で処理が変わることは基本的に無いと思います。あるとすれば、EntryNextタグ内にエラーが起きているくらいでしょうか。

下記のように構成する物を減らして確認してみてください。

html

1<mt:If tag="EntryNext"><mt:EntryNext>Next</mt:EntryNext><mt:Else>else</mt:If>

また、EntryNextブロック自体にMTElseを指定する方法もあるので、それも試してみてはいかがでしょうか。

【ブロックの出力対象がなかったときの処理 - The blog of H.Fujimoto】
https://www.h-fj.com/blog/archives/2014/06/23-132313.php

多くのブロックタグでは、ブロック内にMTElseタグの部分を入れることができます。

ブロックで何も出力されなかったときに、MTElseタグの部分が出力されます。

投稿2018/06/28 02:25

kei344

総合スコア69400

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

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

chocoron

2018/06/28 04:46

回答ありがとうございます。 MTQに、「MTEntryPrevious/MTEntryNextタグではMTElseが使えない」とあります。 https://communities.movabletype.jp/2014/06/entrynextentryprevious.html この記事を読む前にテスト済みですが、確かに動作しませんでした。 参考リンクにいただいたフラグを使う方法は良さそうですね。 今度試してみたいと思います。 丁寧な対応ありがとうございます。
guest

0

自己解決

MTQで回答をいただいたので記載いたします。

MTIfタグのtagモディファイアは、おそらくファンクションタグを指定することを想定していて、ブロックタグは指定しない方が良いだろうということでした。

今回のケースでの対処例です。

html

1<$mt:SetVar name="is_next" value="0"$> 2<mt:EntryNext> 3 <article class="pager-next"> 4 <a href="<$mt:EntryPermalink encode_html="1"$>"> 5 <h2><$mt:EntryTitle$></h2> 6 <figure> 7 <mt:EntryAssets type="image" lastn="1"> 8 <img src="<$mt:AssetThumbnailURL width="200" square="1"$>" alt=""> 9 </mt:EntryAssets> 10 </figure> 11 </a> 12 </article> 13 <$mt:SetVar name="is_next" value="1"$> 14</mt:EntryNext> 15<mt:If name="is_next" eq="0"> 16 <span class="pager-next"></span> 17</mt:If>

投稿2018/06/29 05:52

編集2018/06/29 06:13
chocoron

総合スコア67

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問