サポート » 使い方全般 » カスタムフィールド内の置き換え

  • 解決済 yutayamadatippet

    (@yutayamadatippet)


    お世話になります。

    カスタムフィールドで出力される特定の文字列を置換したいのですが、どうすれば良いでしょうか?

    function change_any_texts($text){
      $replace = array(
    '(aaa)' => '<span>aaa</span>',
      );
      $text = str_replace(array_keys($replace), $replace, $text);
      return $text;
    }
    add_filter('comment_text', 'change_any_texts');
    add_filter('the_content', 'change_any_texts');

    コメントと本文内の特定の文字列の置換をfunction.phpに設定しており、これに加えてカスタムフィールドで出力された文中の文字列も上記の置換を適用させたいと思っています。

    よろしくお願いします。

    • このトピックはyutayamadatippetが5年、 1ヶ月前に変更しました。
    • このトピックはyutayamadatippetが5年、 1ヶ月前に変更しました。
    • このトピックはyutayamadatippetが5年、 1ヶ月前に変更しました。
2件の返信を表示中 - 1 - 2件目 (全2件中)
  • こんにちは

    カスタムフィールドは何かプラグインを使用しているのでしょうか?

    ともかく、カスタムフィールドの値を取得した結果をchange_any_textsに渡せばいいんじゃないでしょうか。

    Advanced Custom Fields だとこんな感じでテンプレートに書いたらどうでしょうか。

    <?php echo change_any_texts( get_field( 'field_name' ) ); ?>

    もちろん、カスタムフィールドの値を取得する関数(上記であればget_field)のフィルターフックとして追加することも出来ると思いますが、カスタムフィールドの実現方法によってやり方が変わると思います。

    トピック投稿者 yutayamadatippet

    (@yutayamadatippet)

    munyagu さん

    ありがとうございます!
    アドバイスの内容を試したところ、無事にカスタムフィールドでも、function.phpで本文やコメントで設定した置換を反映させる事ができました。

    <?php $変数 = get_post_meta($post->ID, 'field_name', true);?>
    <?php echo change_any_texts( nl2br($変数));?>

    解決済みとします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「カスタムフィールド内の置き換え」には新たに返信することはできません。