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

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

ただいまの
回答率

89.99%

【WP】Smart Custom Fieldsの関連(投稿タイプ)でのタクソノミー出力について

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,265

Yknd

score 22

前提・実現したいこと

SmartCustomFieldsプラグインを使って関連(投稿タイプ)フィールドを設定し、
関連記事(複数)をループで出力しています。

・Wordpress4.5.3
・SmartCustomFields2.2.0(http://2inc.org/blog/2014/10/09/4426/)

□関連(投稿タイプ)フィールド名
tour_related_tickets(返り値は記事ID)

□出力内容は上記フィールドで選択した関連記事の以下情報
・パーマリンク
・記事タイトル
・カスタムフィールド(ticket_excerpt)
・各タクソノミー(ticket_category, ticket_tag)で所属するタームの一覧
・記事の最終更新日

この中で、タームの一覧と記事の最終更新日のみ出力に失敗しています。
下記コードの修正すべき点等、助言いただければ幸いです。。

該当のソースコード

<?php
    $tour_related_tickets = SCF::get( 'tour_related_tickets' );
    if ( $tour_related_tickets ) {
    foreach ( $tour_related_tickets as $post_id ) {
?>
    <div>
        <a href="<?php echo get_permalink($post_id); ?>">
            <h4><?php echo get_the_title($post_id); ?></h4>
            <p><?php echo get_post_meta($post_id, 'ticket_excerpt', true); ?></p>
            <p>Category: <?php echo get_the_term_list($post_id, 'ticket_category', '', ', '); ?></p>
            <p>Tag: <?php echo get_the_term_list($post_id, 'ticket_tag', '', ', '); ?></p>
            <p>Updated: <?php echo get_post_modified_time('M j, Y'); ?></p>
        </a>
    </div>
<?php }} ?>

補足情報

SmartCustomFieldsの関連(投稿タイプ)フィールドですが、
類似のプラグインで有名どころのAdvancedCustomFieldsにも同様のフィールドがあります。

SmartCustomFieldsを採用している理由は繰り返し設定がデフォルトで使えるためですが、
該当箇所には繰り返し機能は使いませんので、
AdvancedCustomFieldsなら対応できるようであれば、
そちらの方法でもご指南いただけると助かります。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

get_post_modified_time は引数が足りないだけだと思います。 get_the_term_list はカテゴリに使っているカスタムタクソノミーが問題なく動いているなら、名前のタイプミスなどだとは思うのですが、具体的に返り値を見なければ判断できません。

//    echo get_post_modified_time( 'M j, Y' );
//    ↓
    echo get_post_modified_time( 'M j, Y', false, $post_id );

出力に失敗

デバックモードで確認して、失敗しているのならエラー文を追記ください。

【WordPress初心者におすすめ!デバッグモードの使い方 | Mignon Style】
http://mignonstyle.com/debug-mode/

また、get_the_term_list はエラーがある場合 WP_Error を返し、値が無い場合は false を返すので、そこから問題の特定が出来るかもしれません。

【get_the_term_list() | Function | WordPress Developer Resources】
https://developer.wordpress.org/reference/functions/get_the_term_list/

【WordPressのエラー処理 WP_Error クラスの使い方 | Firegoby】
https://firegoby.jp/archives/4175

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/14 04:35

    ご回答ありがとうございます!正に教えていただいた通り、

    get_post_modified_time は引数を入れて無事表示されました。
    get_the_term_list はタクソノミー名を間違えていただけの初歩的なミスでした。。

    ご丁寧な回答、本当に助かりました!重ねて御礼申し上げます。

    キャンセル

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

  • ただいまの回答率 89.99%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる