サポート » テーマ » next_post_link、previous_post_link が動かない

  • 解決済 nandedaro

    (@nandedaro)


    特定カテゴリ(写真ギャラリー)を作っておりまして、
    同カテゴリは
    single-gallary.php
    というテンプレートを読み込ませているのですが、
    同テンプレートに埋め込んでいる
    next_post_link、previous_post_link
    が動かなくて困っています。

    どなたか教えていただけないでしょうか。
    他にも近しい質問が投稿されていたのですが解決できませんでした。

    同タグ記載部分を抜粋しますと、

    <?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>
    
    <h1><?php wp_title(''); ?></h1>
    <?php the_content(''); ?>
    
    <?php previous_post_link('%link','%title',TRUE,"); ?>
    <?php next_post_link('%link','%title',TRUE,"); ?>
    
    <?php endwhile; ?>
    <?php else: ?>
    <?php endif; ?>

    と書いておりますが、
    どの投稿でもprevious_post_link の方はリンクが表示され、
    next_post_linkは表示されません。
    また、このカテゴリの投稿ではなぜかすべて同じリンク(previous_post_linkの方)
    が表示されてしまいます。

    かなり初歩的なところでつまづいているのでは
    ないかと思いますがお許し下さい。

    何卒よろしくお願いいたします。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • nandedaroさん、こんばんは。

    先ず一つ目に貼り付けられてるコードの

    TRUE,”);

    の部分が間違えられてるように思えます。

    <?php previous_post_link( '%link', '%title', TRUE ); ?>
    <?php next_post_link( '%link', '%title', TRUE ); ?>

    に変更してみてはどうでしょうか?
    これで正常に出力されるのであれば、単純なコーディングミスな気がします。

    それでもダメだった場合、3つ目のパラメータ「in_same_cat 」をTRUEにしているのが原因かも知れません。

    in_same_cat
    (論理値) 表示している記事と同じカテゴリーの前の記事を表示するかどうかを設定します。TRUE の場合、同じカテゴリーの記事だけが表示されます
    TRUE
    FALSE (デフォルト)

    <?php previous_post_link( '%link', '%title' ); ?>
    <?php next_post_link( '%link', '%title' ); ?>

    に変更してお試し下さい。

    トピック投稿者 nandedaro

    (@nandedaro)

    遅くなってすみません。
    アドバイスありがとうございます。
    実は自己解決できまして、どうもこのソース自体は間違っていなかったようなのですが、
    同一テンプレートの他の箇所に書いているループが間違っていたようで
    (ちゃんと理解していないのですが多分ループを正しく閉じていなかった?)
    そこを書き換えるとうまく表示できるようになりました。

    nandedaroさん、こんにちは。

    実はこちらでも検証してみたのですが、nandedaroさんが投稿で貼り付けて下さったコードではやはり1つ目に書きました通り文法的に間違いがあり、正常に動作しなかったのですが、解決されたとのことで良かったです。

    解決済にしておいて下さい。

    トピック投稿者 nandedaro

    (@nandedaro)

    あれ?そうだったんですね。
    ありがとうございます。
    じゃあきっと試行錯誤しているうちに書き換えていたんですね。
    多分。自分がやっていることも理解していなくて恥ずかしい限りです。

    nandedaroさん、こんにちは。

    一応補足です。

    nandedaroさんに投稿して頂いた以下のコードですが、

    <?php previous_post_link('%link','%title',TRUE,"); ?>
    <?php next_post_link('%link','%title',TRUE,"); ?>

    TRUE,")
    と、previous_post_linkの第4引数にダブルコーテーションが一つだけあり閉じておらず、next_post_linkの第4引数で閉じているような感じになってしまっているので、next_post_linkが正常に動作していないような挙動でした。

    もしかしたらPHPのバージョンや環境によっては動くのかも知れませんが、正しい書き方ではないと思いますので、その点だけコメントさせて頂きました。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「next_post_link、previous_post_link が動かない」には新たに返信することはできません。