[wp]contactform7の自動挿入されるbrタグとかpタグの対策

2通りの。

どういうことか

Contactform7でフォームを作成する時、htmlタグとcf7用のショートコードで組んでいくのだけど、cf7のコードがpタグで囲われる。

ビジュアルモードみたいに改行がpタグで囲われるんじゃなくて、コードが対象になってるっぽい。
改行に対してはbrタグがついたりする。

自作勢からすると勝手に挿入されるhtmlタグほど迷惑なものはない。

対策しようねという話。

cssでやる

こう。

.wpcf7 p {display: inline;}

pタグに対して色々仕込んでるなら他と差別化できるように厳密な親子を指定して、それでも競合するなら!importantとかを絡めつつ、頑張ってやっていく。

この場合のbrに関してはコードを改行せずに記載することで対策する。

wp側でやる

2通りの方法がある。

functions.php

add_filter('wpcf7_autop_or_not', 'wpcf7_autop_return_false');
function wpcf7_autop_return_false() {
  return false;
}

wp-config.php

最終行よりも上に書くこと。

define ('WPCF7_AUTOP', false);
︙
/** Sets up WordPress vars and included files. */
require_once( ABSPATH . 'wp-settings.php' );

どっちがいいか

やってることは変わらないから好みでいいっちゃ良いんだけど、個人的には極力テーマ内で完結させたいのでfunctions.phpに書くほうが好き。

とはいえリスクもある。例えばデザインの大幅変更をするときはテーマを新設するわけで、新しいテーマにも同じのを書かないとpタグとかbrタグが入っちゃって、あんまり触れないところだから原因がわからなくて困ることが出てきたりする。

でも、逆に言うとテーマ内で完結するからwp本体とセットにしなくても使い回せる良さがある。

コメント

タイトルとURLをコピーしました