• 「single.php にて前後記事へのリンク」が、どうしても表示できませんので、
    原因がご存知の方がいらっしゃいましたら教えて頂きたいです。

    ・オリジナルテーマを制作しています
    ・投稿は複数存在しています
    ・single.phpにて、タイトルやコンテンツの内容は問題なく表示できます

    その状態で、

    「single.php」に、
    <p><?php previous_post_link(); ?>|<?php next_post_link(); ?></p>
    と、指定しても、
    <p>|</p>
    と、出力されてしまいます。

    「指定するだけで表示されるはず」という認識なのですが。。
    色々と調べてみましたが、どうしても原因がわかりません。

    自分で作っている「function.php」に何か記載してしまったかと思い、
    試しに記載内容をすべて消去しても結果は同じでした。

    原因が分かる方がいらっしゃいましたら、教えて頂きたいです。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • モデレーター gatespace

    (@gatespace)

    こんにちは。

    previous_post_link(); next_post_link();はともに「ループ内」に記述していますか?
    (具体的にはwhile ( have_posts() ) : 〜endwhile;の間)

    トピック投稿者 yukitaku

    (@yukitaku)

    ありがとうございます。
    はい。「ループ内」に記述しています。

    よくチェックしてみると、ちょっと変わった状況になっているようです。

    1) 通常の投稿
    2) カスタム投稿A
    3) カスタム投稿B

    と、3種類の投稿があります。(2)と(3)は同じ設定でカスタム投稿を作っています。
    すべて同じsingle.phpを読み込んでいます。

    (3)は前後記事リンクが正しく表示されています。
    (1)と(2)は、なぜか前後記事リンクが表示されません。

    なぜこのような状況になっているのか・・・、ますます分からなくなっています・・・。

    モデレーター gatespace

    (@gatespace)

    以下を試してみてください。

    まず「初めての方は必ずお読みください」をよんで、プラグインの停止をしてみたり、
    デフォルトテーマ(Twenty Eleven)でも同じ現象が再現するかどうかを確認してください。

    デフォルトテーマで再現されない場合、
    十中八九(ここで言うところの)オリジナルのテーマに問題がある可能性が高いです。
    WordPressのデバッグモードを有効にして、エラーが表示されないかどうか、
    エラーが起きる際、どのようなエラーが起きているのか確認してください。

    エラーが表示された場合、そのエラー文と、
    可能ならば当該部分(single.php)のコードを提示してください。

    状況を説明する、言葉だけでは分かりません。
    (オリジナルのでテーマならなおさらです)

    トピック投稿者 yukitaku

    (@yukitaku)

    ありがとうございます。

    デバッグモードというものを知らず、知識不足で本当に申し訳ありませんでした。

    デバッグモードで確認したところ、原因が分かりました。
    カスタム投稿の並び替えに利用していたプラグイン。「Advanced Post Types Order」が、問題を起こしていたようです。

    Advanced Post Types Order の 有料版を購入して利用していました。
    http://www.nsp-code.com/wordpress-plugins/post-types-order/
    http://wordpress.org/extend/plugins/post-types-order/

    このプラグインをオンにすると、デバッグモードでエラーが表示されていました。
    プラグインを停止すると、どの投稿にも前後記事リンクが正しく表示されました。

    前述、
    「3) カスタム投稿B」
    だけが表示されていたのは、この投稿だけプラグインを利用して記事を並び替えていたから、ということになります。

    本件、私の確認不足で、大変申し訳ありませんでした。
    この質問については「解決」とさせていただきます。

    ご親切に答えてくださり、本当にありがとうございました。

    ただ・・・、有料で購入した「Advanced Post Types Order」が、使えなくなったのはとても残念です・・・。

    モデレーター gatespace

    (@gatespace)

    こんにちは。
    こちらで以下の環境で試してみました。

    • プラグイン「Post Types Order」(無料版)を有効化。
    • デフォルトテーマ「Twenty Eleven」
    • 「投稿」においては「Post Types Order」で並び替えを行わない

    結果、previous_post_link(); next_post_link(); ともに正常に動作しています。
    少なくとも、「Post Types Order」プラグインを有効化し
    「Twenty Eleven」で期待通りの動作がされるのであれば、
    お使いのテーマが問題の可能性が高いです。

    にもかかわらず、(しかも)有料版で期待通りの動作をしないのであれば、
    直接プラグインの作者に問い合わせてみてください。

    トピック投稿者 yukitaku

    (@yukitaku)

    ありがとうございます。
    取り急ぎこちらでも試してみました。

    ・プラグイン「Post Types Order」(有料版)
    ・デフォルトテーマ「Twenty Eleven」
    ・「Post Types Order」で並び替えを行わない

    デバッグモードで試したところ、ヘッダー部分にエラーが表示されています。
    「previous_post_link(); next_post_link(); 」を記述している部分にも、同様のエラー文が表示されました。

    ——————————-
    Notice: Undefined variable: in_same_cat in ●●●\My Web Sites\wordpress\wp-content\plugins\advanced-post-types-order\advanced-post-types-order.php on line 230
    Notice: Undefined variable: posts_in_ex_cats_sql in ●●●\My Web Sites\wordpress\wp-content\plugins\advanced-post-types-order\advanced-post-types-order.php on line 285
    Notice: Undefined variable: in_same_cat in ●●●\My Web Sites\wordpress\wp-content\plugins\advanced-post-types-order\advanced-post-types-order.php on line 317
    Notice: Undefined variable: posts_in_ex_cats_sql in ●●●\My Web Sites\wordpress\wp-content\plugins\advanced-post-types-order\advanced-post-types-order.php on line 373
    ——————————-

    もう少し「Twenty Eleven」で検証しようと思います。

    余談ですが、「Post Types Order」について、フォーラムでも同様の現象があったりするようですね。
    (英語が苦手なので、自信を持てない情報ですが。。)
    http://wordpress.org/support/topic/plugin-post-types-order-upgrade-to-wp321-causes-undefined-variable-notices?replies=4
    http://wordpress.org/support/topic/plugin-post-types-order-undefined-variables?replies=1

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「single.php にて前後記事リンクが表示できません」には新たに返信することはできません。