WordPressのビジュアルエディタでタグ変換される処理のまとめ

テキストエディタからビジュアルエディタに切り替えた際に起こるタグ変換の処理についてまとめておきます。

wpautop

まずは、改行(<br>) & 段落(<p>)をつける処理。

テキストエディタで入力して、文章を改行したら<br>が入り、改行が二回続くと<p>で囲まれるようになります。

具体的には以下のようなイメージ。

なにかしらの文章があります。
改行して次の行に書きます。

一行空けて文章を書いてみました。

こんな感じの文章をテキストエディタに書いたとして、ビジュアルエディタを表示すると、以下のような感じになります。

<p>なにかしらの文章があります。<br>
改行して次の行に書きます。</p>
<p>一行空けて文章を書いてみました。</p>

このように、1回だけ改行した箇所は、<br>、2回連続で改行した箇所は<p>として分割されるようになります。

無効化する方法

functions.phpに以下のような記述でOK!

functions.php
remove_filter( 'the_content', 'wpautop' );

wptexturize

続いては、見栄えを良くするために勝手に変換するおせっかいすぎる関数。別に変換しなくていいのにってやつばかり並びます。

開始と終了の引用符は WordPress の翻訳ファイルでカスタマイズできます。一部ですがテキスト変換は次のように行われる模様。
引用:関数リファレンス/wptexturize

元のテキスト 変換されたテキスト シンボル名
"---" "—" em ダッシュ
" -- " "—" em ダッシュ
"--" "–" en ダッシュ
" - " "–" en ダッシュ
"..." "…" 省略記号
`` 開始引用符
"hello “hello 開始引用符
'hello ‘hello 開始引用符
'' 終了引用符
world." world.” 終了引用符
world.' world.’ 終了引用符
" (tm)" " ™" 商標記号
1234" 1234″ ダブルプライム記号
1234' 1234′ プライム記号
'99 ’99 西暦の省略表現前のアポストロフィ
Webster's Webster’s アポストロフィ
1234x1234 1234×1234 乗算記号

無効化する方法

functions.phpに以下のような記述でOK!

functions.php
remove_filter( 'the_content', 'wptexturize' );

convert_chars

特にHTMLタグとかあまり分からないような方が躓きやすいのが、XMLに準拠したタグの自動変換。

&を&amp;にしたり、<が&gt;になったりといったやつです。

無効化する方法

他のと違って表示が崩れないように配慮して変換してくれてるものなので、初心者の方は無効化しないほうがいいかも・・・。

functions.phpに以下のような記述でOK!

functions.php
remove_filter( 'the_content', 'convert_chars' );

勝手に消されるHTMLタグを救う!

自動変換とか、改行とかは個人的には可愛いものです。筆者が一番イラっとするのはこのHTMLタグを勝手に消す機能。

せっかく書いたコードが投稿したら消えてしまうのですから、殆どのaタグにonclick設定して全部消えたときは泣きました。

自分のようにならないために、予めWordPressが許可しているHTMLタグを理解して、自分がよく使うものは追加してカスタマイズしていきましょう。

許可しているHTMLタグの定義

ビジュアルエディタに切り替えたタイミングで勝手に消されてしまうHTMLタグの定義はglobal $allowedposttags;に格納されています。 ちょっとデフォルトの中身を見てみましょう。

array(82) {
  ["address"]=>
  array(5) {
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["a"]=>
  array(10) {
    ["href"]=>
    bool(true)
    ["rel"]=>
    bool(true)
    ["rev"]=>
    bool(true)
    ["name"]=>
    bool(true)
    ["target"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["abbr"]=>
  array(5) {
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["acronym"]=>
  array(5) {
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["area"]=>
  array(11) {
    ["alt"]=>
    bool(true)
    ["coords"]=>
    bool(true)
    ["href"]=>
    bool(true)
    ["nohref"]=>
    bool(true)
    ["shape"]=>
    bool(true)
    ["target"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["article"]=>
  array(9) {
    ["align"]=>
    bool(true)
    ["dir"]=>
    bool(true)
    ["lang"]=>
    bool(true)
    ["xml:lang"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["aside"]=>
  array(9) {
    ["align"]=>
    bool(true)
    ["dir"]=>
    bool(true)
    ["lang"]=>
    bool(true)
    ["xml:lang"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["audio"]=>
  array(11) {
    ["autoplay"]=>
    bool(true)
    ["controls"]=>
    bool(true)
    ["loop"]=>
    bool(true)
    ["muted"]=>
    bool(true)
    ["preload"]=>
    bool(true)
    ["src"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["b"]=>
  array(5) {
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["bdo"]=>
  array(6) {
    ["dir"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["big"]=>
  array(5) {
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["blockquote"]=>
  array(8) {
    ["cite"]=>
    bool(true)
    ["lang"]=>
    bool(true)
    ["xml:lang"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["br"]=>
  array(5) {
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["button"]=>
  array(9) {
    ["disabled"]=>
    bool(true)
    ["name"]=>
    bool(true)
    ["type"]=>
    bool(true)
    ["value"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["caption"]=>
  array(6) {
    ["align"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["cite"]=>
  array(7) {
    ["dir"]=>
    bool(true)
    ["lang"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["code"]=>
  array(5) {
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["col"]=>
  array(12) {
    ["align"]=>
    bool(true)
    ["char"]=>
    bool(true)
    ["charoff"]=>
    bool(true)
    ["span"]=>
    bool(true)
    ["dir"]=>
    bool(true)
    ["valign"]=>
    bool(true)
    ["width"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["colgroup"]=>
  array(11) {
    ["align"]=>
    bool(true)
    ["char"]=>
    bool(true)
    ["charoff"]=>
    bool(true)
    ["span"]=>
    bool(true)
    ["valign"]=>
    bool(true)
    ["width"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["del"]=>
  array(6) {
    ["datetime"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["dd"]=>
  array(5) {
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["dfn"]=>
  array(5) {
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["details"]=>
  array(10) {
    ["align"]=>
    bool(true)
    ["dir"]=>
    bool(true)
    ["lang"]=>
    bool(true)
    ["open"]=>
    bool(true)
    ["xml:lang"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["div"]=>
  array(9) {
    ["align"]=>
    bool(true)
    ["dir"]=>
    bool(true)
    ["lang"]=>
    bool(true)
    ["xml:lang"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["dl"]=>
  array(5) {
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["dt"]=>
  array(5) {
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["em"]=>
  array(5) {
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["fieldset"]=>
  array(5) {
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["figure"]=>
  array(9) {
    ["align"]=>
    bool(true)
    ["dir"]=>
    bool(true)
    ["lang"]=>
    bool(true)
    ["xml:lang"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["figcaption"]=>
  array(9) {
    ["align"]=>
    bool(true)
    ["dir"]=>
    bool(true)
    ["lang"]=>
    bool(true)
    ["xml:lang"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["font"]=>
  array(8) {
    ["color"]=>
    bool(true)
    ["face"]=>
    bool(true)
    ["size"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["footer"]=>
  array(9) {
    ["align"]=>
    bool(true)
    ["dir"]=>
    bool(true)
    ["lang"]=>
    bool(true)
    ["xml:lang"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["form"]=>
  array(12) {
    ["action"]=>
    bool(true)
    ["accept"]=>
    bool(true)
    ["accept-charset"]=>
    bool(true)
    ["enctype"]=>
    bool(true)
    ["method"]=>
    bool(true)
    ["name"]=>
    bool(true)
    ["target"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["h1"]=>
  array(6) {
    ["align"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["h2"]=>
  array(6) {
    ["align"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["h3"]=>
  array(6) {
    ["align"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["h4"]=>
  array(6) {
    ["align"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["h5"]=>
  array(6) {
    ["align"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["h6"]=>
  array(6) {
    ["align"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["header"]=>
  array(9) {
    ["align"]=>
    bool(true)
    ["dir"]=>
    bool(true)
    ["lang"]=>
    bool(true)
    ["xml:lang"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["hgroup"]=>
  array(9) {
    ["align"]=>
    bool(true)
    ["dir"]=>
    bool(true)
    ["lang"]=>
    bool(true)
    ["xml:lang"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["hr"]=>
  array(9) {
    ["align"]=>
    bool(true)
    ["noshade"]=>
    bool(true)
    ["size"]=>
    bool(true)
    ["width"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["i"]=>
  array(5) {
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["img"]=>
  array(15) {
    ["alt"]=>
    bool(true)
    ["align"]=>
    bool(true)
    ["border"]=>
    bool(true)
    ["height"]=>
    bool(true)
    ["hspace"]=>
    bool(true)
    ["longdesc"]=>
    bool(true)
    ["vspace"]=>
    bool(true)
    ["src"]=>
    bool(true)
    ["usemap"]=>
    bool(true)
    ["width"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["ins"]=>
  array(7) {
    ["datetime"]=>
    bool(true)
    ["cite"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["kbd"]=>
  array(5) {
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["label"]=>
  array(6) {
    ["for"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["legend"]=>
  array(6) {
    ["align"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["li"]=>
  array(7) {
    ["align"]=>
    bool(true)
    ["value"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["map"]=>
  array(6) {
    ["name"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["mark"]=>
  array(5) {
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["menu"]=>
  array(6) {
    ["type"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["nav"]=>
  array(9) {
    ["align"]=>
    bool(true)
    ["dir"]=>
    bool(true)
    ["lang"]=>
    bool(true)
    ["xml:lang"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["p"]=>
  array(9) {
    ["align"]=>
    bool(true)
    ["dir"]=>
    bool(true)
    ["lang"]=>
    bool(true)
    ["xml:lang"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["pre"]=>
  array(6) {
    ["width"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["q"]=>
  array(6) {
    ["cite"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["s"]=>
  array(5) {
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["samp"]=>
  array(5) {
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["span"]=>
  array(9) {
    ["dir"]=>
    bool(true)
    ["align"]=>
    bool(true)
    ["lang"]=>
    bool(true)
    ["xml:lang"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["section"]=>
  array(9) {
    ["align"]=>
    bool(true)
    ["dir"]=>
    bool(true)
    ["lang"]=>
    bool(true)
    ["xml:lang"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["small"]=>
  array(5) {
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["strike"]=>
  array(5) {
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["strong"]=>
  array(5) {
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["sub"]=>
  array(5) {
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["summary"]=>
  array(9) {
    ["align"]=>
    bool(true)
    ["dir"]=>
    bool(true)
    ["lang"]=>
    bool(true)
    ["xml:lang"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["sup"]=>
  array(5) {
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["table"]=>
  array(14) {
    ["align"]=>
    bool(true)
    ["bgcolor"]=>
    bool(true)
    ["border"]=>
    bool(true)
    ["cellpadding"]=>
    bool(true)
    ["cellspacing"]=>
    bool(true)
    ["dir"]=>
    bool(true)
    ["rules"]=>
    bool(true)
    ["summary"]=>
    bool(true)
    ["width"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["tbody"]=>
  array(9) {
    ["align"]=>
    bool(true)
    ["char"]=>
    bool(true)
    ["charoff"]=>
    bool(true)
    ["valign"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["td"]=>
  array(20) {
    ["abbr"]=>
    bool(true)
    ["align"]=>
    bool(true)
    ["axis"]=>
    bool(true)
    ["bgcolor"]=>
    bool(true)
    ["char"]=>
    bool(true)
    ["charoff"]=>
    bool(true)
    ["colspan"]=>
    bool(true)
    ["dir"]=>
    bool(true)
    ["headers"]=>
    bool(true)
    ["height"]=>
    bool(true)
    ["nowrap"]=>
    bool(true)
    ["rowspan"]=>
    bool(true)
    ["scope"]=>
    bool(true)
    ["valign"]=>
    bool(true)
    ["width"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["textarea"]=>
  array(10) {
    ["cols"]=>
    bool(true)
    ["rows"]=>
    bool(true)
    ["disabled"]=>
    bool(true)
    ["name"]=>
    bool(true)
    ["readonly"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["tfoot"]=>
  array(9) {
    ["align"]=>
    bool(true)
    ["char"]=>
    bool(true)
    ["charoff"]=>
    bool(true)
    ["valign"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["th"]=>
  array(19) {
    ["abbr"]=>
    bool(true)
    ["align"]=>
    bool(true)
    ["axis"]=>
    bool(true)
    ["bgcolor"]=>
    bool(true)
    ["char"]=>
    bool(true)
    ["charoff"]=>
    bool(true)
    ["colspan"]=>
    bool(true)
    ["headers"]=>
    bool(true)
    ["height"]=>
    bool(true)
    ["nowrap"]=>
    bool(true)
    ["rowspan"]=>
    bool(true)
    ["scope"]=>
    bool(true)
    ["valign"]=>
    bool(true)
    ["width"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["thead"]=>
  array(9) {
    ["align"]=>
    bool(true)
    ["char"]=>
    bool(true)
    ["charoff"]=>
    bool(true)
    ["valign"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["title"]=>
  array(5) {
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["tr"]=>
  array(10) {
    ["align"]=>
    bool(true)
    ["bgcolor"]=>
    bool(true)
    ["char"]=>
    bool(true)
    ["charoff"]=>
    bool(true)
    ["valign"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["track"]=>
  array(10) {
    ["default"]=>
    bool(true)
    ["kind"]=>
    bool(true)
    ["label"]=>
    bool(true)
    ["src"]=>
    bool(true)
    ["srclang"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["tt"]=>
  array(5) {
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["u"]=>
  array(5) {
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["ul"]=>
  array(6) {
    ["type"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["ol"]=>
  array(8) {
    ["start"]=>
    bool(true)
    ["type"]=>
    bool(true)
    ["reversed"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["var"]=>
  array(5) {
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
  ["video"]=>
  array(14) {
    ["autoplay"]=>
    bool(true)
    ["controls"]=>
    bool(true)
    ["height"]=>
    bool(true)
    ["loop"]=>
    bool(true)
    ["muted"]=>
    bool(true)
    ["poster"]=>
    bool(true)
    ["preload"]=>
    bool(true)
    ["src"]=>
    bool(true)
    ["width"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }
}

2次元配列になっていて、要素とその属性を表しているものです。例えば、aタグの定義を見てみると、以下のような感じです。

["a"]=>
  array(10) {
    ["href"]=>
    bool(true)
    ["rel"]=>
    bool(true)
    ["rev"]=>
    bool(true)
    ["name"]=>
    bool(true)
    ["target"]=>
    bool(true)
    ["class"]=>
    bool(true)
    ["id"]=>
    bool(true)
    ["style"]=>
    bool(true)
    ["title"]=>
    bool(true)
    ["role"]=>
    bool(true)
  }

10個の属性だけ許可していて、後は消すという処理になります。みなさんは日頃よく使う、hrefreltarget、なんかはちゃんと定義されているのが分かりますね。

onclickは定義されておらず、ビジュアルエディタに切り替えたタイミングで消えてしまいます。

onclickを使いたければ、tiny_mce_before_initのフィルターでaタグの許可する属性の定義を伝えてあげましょう。

function my_format_TinyMCE( $mceInit ) {
 global $allowedposttags;
 
 $mceInit['extended_valid_elements'] = '+a[' . implode( '|', array_keys( $allowedposttags['a'] ) ) . '|onclick]';

 return $mceInit;
}
add_filter( 'tiny_mce_before_init', 'my_format_TinyMCE' );

extended_valid_elementsについてはこちらで勉強してください:https://www.tinymce.com/docs/configure/content-filtering/#extended_valid_elements

テキストエディタで記載した内容はそのまま投稿に反映される仕組みになっているので、ビジュアルエディタで削除させない仕組みを作れば万事OKです。

参考:https://wpdocs.osdn.jp/TinyMCE