ニケッチャニッキ

はてなブログ・WordPressカスタマイズ・Androidプログラミング

WordPressでcssの+(隣接セレクタ)が効かないとき…wpautopで勝手に入るpタグが原因かも?

f:id:niketcha:20190707173219j:plain

cssで+(隣接セレクタ)を使ったスタイルを実装したかったんですが、うまく動いてくれない。ソースを確認したところ、覚えのないpタグが挿入されていたことが原因でした。

WordPressではwpautopという関数により、pタグを自動挿入してテキストを成型する仕組みになっているそうです。

pタグの自動挿入を停止する方法

全てのページで停止したい場合

WordPressの全てのページでwpautopを停止したい場合はfunction.phpを修正します。

function.php
// 記事に適用
remove_filter('the_content', 'wpautop');
// 抜粋に適用
remove_filter('the_excerpt', 'wpautop');

特定のページで停止したい場合

固定ページや個別投稿ページなど、特定のページのみで停止したい場合はテンプレートファイルを修正します。

たとえば個別投稿に適用したい場合、single.phpでthe_content();と書かれている箇所を探します。そしてthe_content();の直前に下記のコードを追記してください。

single.php
<?php remove_filter ('the_content', 'wpautop'); ?>

注意事項

pタグの自動挿入を停止すると、予期せぬ表示崩れが起こるかもしれません。