テキストエリアフィールドの場合nl2br関数を使って表示する。

WYSIWYGエディタフィールドの場合<p>タグを除去し、改行を反映させる処理を書く必要がある。

テキストエリアの場合

カスタムフィール緯度自体の設定

WordPress管理画面上のカスタムフィールド自体の設定として、

該当のテキストエリアフィールドの改行の設定は「なにもしない」でいい。

ほかの2つの選択肢に変更しても、何も起こらなかった。

これはコードを書き変える前も後も同じ。

多分この設定値は生きていない気が気がする。

single-hogehoge.phpなどの表示したい場所にこんなコードを記載

<?php echo get_post($softID)->exp //ダメな例 ?>

<?php echo nl2br(get_post($softID)->exp); //いい例 ?>

上記の例は$softIDという変数に、特定の記事のIDが格納されており、

その記事に設置されたカスタムフィールドexpを取得して、改行を反映の上表示している。

俺より説明がうまいchatgptさんに説明させるとこうなる。

  1. get_post($softID)$softIDという変数に格納されたIDを持つWordPressの投稿(記事)を取得します。
  2. >exp:取得した投稿オブジェクトのexpプロパティを参照します。これは、投稿にカスタムフィールドとしてexpが追加されている場合にその値を取得することを意味します。
  3. nl2br()expプロパティの値に含まれる改行文字(\n)をHTMLの改行タグ(
    )に置き換えます。これにより、改行が適切に表示されます。
  4. <?php echo ... ?>echoを使用して、上記の処理結果をウェブページに出力します。

WYSIWYGエディタフィールドの場合

functions.phpの編集

下記を追記

function remove_p_from_images( $content ) {
  //カスタムフィールドで改行を妨害するタグを除去
  return preg_replace('/<p>\s*(<img .* \/>)\s*<\/p>/iU', '\1', $content);
}

single-hogehoge.phpなどの表示させたいファイルに下記を記載

<?php
    $content = apply_filters('remove_p_from_images', apply_filters('the_content', get_post($softID)->attention));
    echo $content;
?>

上記の例は$softIDという変数に、特定の記事のIDが格納されており、

その記事に設置されたカスタムフィールドexpを取得して、functions.phpに設定した改行を反映の関数を適用させた上表示している。

参考にしたサイト

カスタムフィールドの改行を反映させたまま表示する方法

無制限に質問可能なプログラミングスクール!

万が一転職できない場合は、転職保障全額返金できるコースもあり!!

無制限のメンター質問対応

 

DMMウェブキャンプでプログラミングを学習しませんか?

独学より成長スピードをブーストさせましょう!

 

まずは無料相談から!

おすすめの記事