サポート » 使い方全般 » next_post_linkに任意の文字を表示させたい

  • 解決済 momonuts

    (@momonuts)


    next_post_linkを使って次の記事へのリンクをつけたいと思っています。

    <?php next_post_link('%link', '次のページは【%title】', TRUE); ?>

    でタイトルを出力出来るのですが、タイトルが長い場合があり、
    その際は別タイトルをつけ、それを表示させたいのです。

    そこで、投稿画面内「タグ」に書かれた文字を出力出来たらベストだと考えたのですが
    タグを出力させる方法が分からず悪戦苦闘しております。

    上記動作を実現させる方法がありましたらぜひアドバイスいただきたく
    質問させていただきました。

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

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック投稿者 momonuts

    (@momonuts)

    https://ja.forums.wordpress.org/topic/152093?replies=5#post-212323
    こちらのトピックでgatespace様にいろいろアドバイスをいただき、ようやく後一歩までこぎつけました。

    <?php $field_color = get_field_object('チェックボックスのフィールド名'); ?>
    <?php if ($field_color[value][0]==yes) : ?>
    <?php if(get_field("表示させたいテキストのフィールド名")): ?>
    <?php $nextpost = get_adjacent_post(true,'', false);?>
    <div class="nextone">
    <a href="<?php echo get_permalink($nextpost->ID);?> ">次の記事は【<?php the_field('表示させたいテキストのフィールド名'); ?>】</a>
    </div>
    <?php else : ?>
    <div class="nextone">
    <?php next_post_link('%link', '次の記事は【%title】'); ?>
    </div>
    <?php endif ?>
    <?php endif ?>
    <?php if ($field_color[value][0]==no) : ?>
    <?php endif ?>

    「表示させたいテキストのフィールド名」に関して、次の記事内の値を取得したく
    「<?php $nextpost = get_adjacent_post(true,”, false);?>」を入れてみたのですが現在の記事のフィールドの値が表示されてしまいます。

    <?php $nextpost = get_adjacent_post(true,'', false);?>

    の使い方が間違っているのでしょうか。
    「wp-includes/link-template.php」内の該当部分を書き換えるという事なのでしょうか。

    試行錯誤しましたが行き詰まってしまいまして、お力をお借りしたく投稿いたしました。
    どうかお力をお貸しください。

    モデレーター gatespace

    (@gatespace)

    ちゃんと読んでます?

    get_adjacent_post() 使えば前後の投稿の情報が取得できるので、
    そこからさらにIDを取得し、get_field() にそのIDを渡せば可能です。

    http://www.advancedcustomfields.com/resources/the_field/

    トピック投稿者 momonuts

    (@momonuts)

    理解不足で申し訳ございません。
    get_adjacent_post() の使い方を私なりに解釈したところ

    <?php if(get_field("表示させたいテキストのフィールド名")): ?>
    <?php $nextpost = get_adjacent_post(true,'', false);?>
    <div class="nextone">
    <a href="<?php echo get_permalink($nextpost->ID);?> ">次の記事は【<?php the_field('表示させたいテキストのフィールド名'); ?>】</a>
    </div>
    <?php else : ?>
    <?php endif ?

    この様な記述になってしまったのですが、これだと現在の記事のフィールドの値が表示されてしまいます。

    また
    <?php the_field(‘表示させたいテキストのフィールド名’); ?>

    <?php get_field(‘表示させたいテキストのフィールド名’); ?>

    にするとフィールドの値が取得出来ませんでした。
    そのためにthe_fieldとしておいてあります。

    根本的にすべての書き方が間違っていると思うのですが、どの様にしたら良いのか分からずで行き詰まっている所です…..

    トピック投稿者 momonuts

    (@momonuts)

    おさわがせして申し訳ございません。
    試行錯誤の上
    `
    <?php
    $nextpost = get_adjacent_post(false, ”, false);
    ?>
    <a href=”<?php echo $next_post->guid; ?>”>次の記事は【<?php echo (get_post_meta($nextpost->ID, フィールド名, true)); ?>】</a>
    `

    としました所、希望通りの動作をさせる事ができました!

    gatespace様、根気強くアドバイスくださりありがとうございました!!

    モデレーター gatespace

    (@gatespace)

    <?php if(get_field("表示させたいテキストのフィールド名")): ?>
    <?php $nextpost = get_adjacent_post(true,'', false);?>
    <div class="nextone">
    <a href="<?php echo get_permalink($nextpost->ID);?> ">次の記事は【<?php the_field('表示させたいテキストのフィールド名'); ?>】</a>
    </div>
    <?php else : ?>
    <?php endif ?

    <?php
        $nextpost = get_adjacent_post(true,'', false);
        if ( !empty( $nextpost ) && get_field("表示させたいテキストのフィールド名", $nextpost->ID ) )  :
    ?>
    <div class="nextone">
    <a href="<?php echo get_permalink($nextpost->ID);?> ">次の記事は【<?php the_field('表示させたいテキストのフィールド名', $nextpost->ID ); ?>】</a>
    </div>
    <?php
        endif;
    ?>

    でいいはず(未検証)

    トピック投稿者 momonuts

    (@momonuts)

    gatespace様

    細かくアドバイスいただき本当に感謝いたします。
    gatespace様よりアドバイスいただきました事を踏まえ書き直し
    100%理想の動作をさせる事が出来ました!!

    <?php $nextpost = get_adjacent_post(true,'', false); if ( !empty( $nextpost ) && get_field("表示させたいフィールド名", $nextpost->ID ) )  :?>
    <div class="nextone">
    <a href="<?php echo get_permalink($nextpost->ID);?> ">次の記事は【<?php the_field('表示させたいフィールド名', $nextpost->ID ); ?>】</a>
    </div>
    <?php else : ?>
    <div class="nextone">
    <?php next_post_link('%link', '次の記事は【%title】'); ?>
    </div>
    <?php endif ?>

    本当にありがとうございました!!

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「next_post_linkに任意の文字を表示させたい」には新たに返信することはできません。