[WordPress] 投稿の本文 資料

Modified

『WordPress』における投稿の本文について。

投稿の本文をカスタマイズする方法など。

生データ

生の投稿の本文はWP_Postの$post_contentに格納されている。

加工された投稿の本文を取得

加工された投稿の本文を取得する際はget_the_content()を使う。

関数の仕様は公式リファレンスのget_the_content()を参照。

現在の投稿における加工された本文を表示

投稿ループ中で現在の投稿における加工された本文を表示する際はthe_content()を使う。

関数の仕様は公式リファレンスのthe_content()を参照。

基本的にはget_the_content()で取得した現在の投稿の本文を加工してechoする関数である。

the_content()の自動校正を無効化

the_content()の自動校正(例えばWordpressをWordPressに変換)を無効化する場合は次のようにフィルターフックを削除する。

remove_filter( 'the_content', 'capital_P_dangit', 11 );

the_content()の自動整形を無効化

the_content()の自動整形(記号などの変換)を無効化する場合は次のようにフィルターフックを削除する。

remove_filter( 'the_content', 'wptexturize' );

the_content()の自動pタグ付与を無効化

the_content()で自動的に付与されるHTMLのpタグを無効化する場合は次のようにフィルターフックを削除する。

remove_filter( 'the_content', 'wpautop' );

the_content()で投稿の本文のHTMLタグを変換

the_content()で投稿の本文のHTMLタグを変換する方法。

変換したいHTMLタグによって様々なパターンがあるが、例として次のようにフィルターフックを追加する。

function filter_the_content( $content ) {
	// ビジュアルエディタ上で改行扱いとなるHTMLを通常のHTMLの改行タグに変換
	$content = str_replace( '<p>&nbsp;</p>', '<br>', $content );

	// 太字として使用されるstrongタグを表示上の太字に変換(意図的なものを含めて全て変換する点に注意)
	$content = str_replace( '<strong>', '<span style="font-weight: bold;">', $content );
	$content = str_replace( '</strong>', '</span>', $content );

	// イタリック体として使用されるemタグを表示上のイタリック体に変換(意図的なものを含めて全て変換する点に注意)
	$content = str_replace( '<em>', '<span style="font-style: italic;">', $content );
	$content = str_replace( '</em>', '</span>', $content );

	return $content;
}
add_filter( 'the_content', 'filter_the_content' );