サポート » 使い方全般 » カスタム投稿タイプでの「次へ」「前へ」のリンクにカスタムフィールド

  • カスタム投稿タイプの個別ページにて、「次へ」「前へ」のリンクを使用したいと思っており、さらにそのリンクテキストを各ページにて入力しているカスタムフィールドを使用したいと思っております。

    現状
    Ambrosite Next/Previous Post Link Plus」というプラグインを利用して

    <?php previous_post_link_plus( array('in_same_tax' => true) ); ?>
    <?php next_post_link_plus( array('in_same_tax' => true) ); ?>

    というコードを配置して

    <a title="記事タイトル2" rel="previous" href="http://hogehoge.com/wp/cate/sample-2/">記事タイトル2</a>
    <a title="記事タイトル3" rel="next" href="http://hogehoge.com/wp/cate/sample-3/">記事タイトル3</a>

    という書き出しになっております。
    この「記事タイトル2」の部分が記事のタイトルになっているのですが、任意のカスタムフィールドを出力する事が目標です。

    phpの知識も乏しく、お力添えをお願い致します。
    ※必ずしもこのプラグインを使う必要はありません。

    よろしくお願い致します。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • リンクテキストが記事のタイトルになるのは、'link' というパラメータのデフォルトが '%title' だからですね。カスタムフィールドの値を 'link' に与えてあげればよいと思います。
    Next/Previous Post Link Plus for WordPress « Plugins « ambrosite web development services

    WordPress標準のテンプレートタグ previous_post_link()next_post_link() でも同様にできます。

    トピック投稿者 satoty

    (@satoty)

    gblsmさま

    助言頂きありがとうございます。
    参考サイトも見たのですが、、、さっぱりです。

    もう少し基本を勉強しないと難しい様ですね。

    大雑把には次のような流れのコードになると思います。

    <?php
      現在の投稿からカスタムフィールドの値を取得;
      previous_post_link_plus( array(
        'in_same_tax' => true,
        'link' => 取得した値,
      ) );
    ?>

    トピック投稿者 satoty

    (@satoty)

    gblsmさま
    サンプルまでありがとうございます!
    お陰様で下記コードにて希望する形が表示できました!

    <?php
      $previous_post = get_previous_post();
      $next_post = get_next_post();
      $prev_value = get_post_meta( $previous_post->ID, 'カスタムフィールド名', $single = true);
      $next_value = get_post_meta( $next_post->ID, 'カスタムフィールド名', $single = true);
    ?>
    
    <?php
                previous_post_link_plus( array(
                  'in_same_tax' => true,
                  'link' => $prev_value.' <i class="fa fa-forward"></i>',
                ) );
    ?>
    <?php
                next_post_link_plus( array(
                  'in_same_tax' => true,
                  'link' => '<i class="fa fa-backward"></i> '.$next_value,
                ) );
      ?>

    satotyさん、解決してよかったです。
    このトピックのサイドバーで「解決済み」にセットしていただければと思います。

    ところでプラグイン Ambrosite Next/Previous Post Link Plus は過去4年以上メンテナンスされていないので脆弱性の点でちょっと心配はありませんか。特に理由がなければ WordPress 標準の関数に置き換えをご検討になってはどうでしょう。
    テンプレートタグ/previous post link – WordPress Codex 日本語版
    テンプレートタグ/next post link – WordPress Codex 日本語版

    トピック投稿者 satoty

    (@satoty)

    gblsmさま

    ご指摘ありがとうございます。仰る通りです。
    何も考えずにプラグイン使用しておりました。

    <?php
      $previous_post = get_previous_post();
      $next_post = get_next_post();
      $prev_value = get_post_meta( $previous_post->ID, 'カスタムフィールド名', $single = true);
      $next_value = get_post_meta( $next_post->ID, 'カスタムフィールド名', $single = true);
    ?>
    
          <ul class="pager">
              <li class="previous"><?php previous_post_link('%link', '<i class="fa fa-backward"></i> '.$prev_value); ?></li>
              <li class="next"><?php next_post_link('%link', $next_value.' <i class="fa fa-forward"></i>'); ?></li>
          </ul>

    というコードで完成と思っております。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「カスタム投稿タイプでの「次へ」「前へ」のリンクにカスタムフィールド」には新たに返信することはできません。