テキストエリアフィールドの場合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さんに説明させるとこうなる。
get_post($softID)
:$softID
という変数に格納されたIDを持つWordPressの投稿(記事)を取得します。>exp
:取得した投稿オブジェクトのexp
プロパティを参照します。これは、投稿にカスタムフィールドとしてexp
が追加されている場合にその値を取得することを意味します。nl2br()
:exp
プロパティの値に含まれる改行文字(\n)をHTMLの改行タグ(
)に置き換えます。これにより、改行が適切に表示されます。<?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に設定した改行を反映の関数を適用させた上表示している。