自動整形を禁止する場合と、禁止しない場合の切り分けをfunctions.phpに書くのがめんどくさいとき、下記のようにコメントの有無で切り分けると便利。
/**
*
* 冒頭に<!--noautop-->がある場合、wpautop(自動整形機能 - pタグの自動追加など)を無効化
*
*/
add_filter('the_content', function($content) {
if (strpos($content, '<!--noautop-->') !== false) {
remove_filter('the_content', 'wpautop');
$content = preg_replace('/\s*\<!--noautop-->\s*(\r\n|\n|\r)?/u', '', $content);
}
return $content;
}, 1);
あとあらゆるタグを許可する場合は下記のようにする。
/**
*
* ビジュアルエディタの設定
*
*/
add_filter('tiny_mce_before_init', function($initArray){
global $allowedposttags;
// 空タグ削除の無効化
$initArray['verify_html'] = false;
// すべてのタグと属性値を許可
$initArray['valid_elements'] = '*[*]';
// 既存設定に追加されているすべてのタグと属性値を許可
$initArray['extended_valid_elements'] = '*[*]';
// aタグに入るすべての要素を許可
$initArray['valid_children'] = '+a[' . implode('|', array_keys($allowedposttags)) . ']';
// インデントを許可
$initArray['indent'] = true;
// 改行後にpタグが挿入される機能を削除
$initArray['force_p_newlines'] = false;
return $initArray;
}, 100);