WordPressの Gutenberg エディターでは、新規ブロックが自動生成されて、空の <p></p>
が保存されてしまうことがよくある。
この問題には、functions.php などに次のコードを追記することで対処できる。
/**
* [T]he_content() から空の <p></p> を削除する.
*
* @param string $content - 投稿本文の HTML.
* @return string
*/
function street42_remove_empty_p_from_content( $content ) {
$content = str_replace( '<p></p>', '', $content );
return $content;
}
add_filter( 'the_content', 'street42_remove_empty_p_from_content' );
これで、the_content()
で、<p></p>
が削除された状態の記事本文が読み込まれるようになる。
なお、get_the_content()
は、フィルターが適応されていない状態の記事を取得するので、要注意。
関連ドキュメント
- 関数リファレンス/add filter - WordPress Codex 日本語版
- テンプレートタグ/the content - WordPress Codex 日本語版
- 関数リファレンス/get the content - WordPress Codex 日本語版
-
WordPress のコーディング規約を見直していたところ、add_filter() のコールバックにクロージャーを渡すのは禁止されていたので(remove_filter() で削除できなくなるため)、修正しました(2020-08-17)。 ↩