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

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

wpautop

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

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

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

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

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

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

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

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

無効化する方法

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

remove_filter( 'the_content', 'wpautop' );

wptexturize

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

開始と終了の引用符は WordPress の翻訳ファイルでカスタマイズできます。一部ですがテキスト変換は次のように行われる模様。
引用:https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/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!

remove_filter( 'the_content', 'wptexturize' );

convert_chars

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

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

無効化する方法

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

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

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

WordPressの管理画面カスタマイズまとめ!

ログイン画面のロゴ画像

login_headは、ログイン画面の</head>手前で呼ばれる関数。スタイルを上書きさせるようなコードを書けばOK!

function custom_login_logo() {
 echo '<style type="text/css">h1 a { background: url('.get_bloginfo('template_directory').'/img/logo.png) }</style>';
}
add_action( 'login_head', 'custom_login_logo' );

フッターのWordPressリンク

「WordPressのご利用ありがとうございます。」の方。

function custom_admin_footer( $text ) {
  $text = '変更する文字';
  return $text;
}
add_filter( 'admin_footer_text', 'custom_admin_footer' );
add_filter( ‘admin_footer_text’, ‘__return_empty_string’ );

バージョンの方

function custom_update_footer( $content ) {
  $content = '変更する文字';
  return $content;
}
add_filter( 'update_footer', 'custom_update_footer' );
function remove_footer_version() {
 remove_filter( 'update_footer', 'core_update_footer' );
}
add_action( 'admin_menu', 'remove_footer_version' );

http://sys-guard.com/post-3874/#i-5

【WordPress】ログインしているユーザーで切り分ける分岐処理

if ( current_user_can( 'administrator' ) ) {
  // 管理者 (8-10)
} elseif ( current_user_can( 'editor' ) ) {
  // 編集者 (3-7)
} elseif ( current_user_can( 'author' ) ) {
  // 投稿者 (2)
} elseif ( current_user_can( 'contributor' ) ) {
  // 寄稿者 (1)
} elseif ( current_user_can( 'subscriber' ) ) {
  // 購読者 (0)
}

「レビュー待ち依頼」をした時にスラッグを消さない方法

WordPressで寄稿者が「レビュー待ち依頼」をした時にスラッグが消えてしまう現象があります。

WordPressが意図的の行っている仕様で、現時点ではコードを直接書き換える以外方法はなさそうです。

・ /wp-include/post.php
以下をコメントアウトしましょう。

// Don't allow contributors to set the post slug for pending review posts.
 if ( 'pending' == $post_status && !current_user_can( 'publish_posts' ) ) {
   $post_name = '';
 }

Font Awesomeでレスポンシブ対応のSNSボタンを作る!

こんなのができます。
sns

<html>
<head>
<meta charset="utf-8">
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-T8Gy5hrqNKT+hzMclPo118YTQO6cYprQmhrYwIiQ/3axmI1hQomh7Ud2hPOy8SP1" crossorigin="anonymous">
<style>
.sns ul {
 overflow: hidden;
 margin: 0;
 padding: 0;
}
.sns li {
 float: left;
 width: 33.333333333%;
 list-style: none;
 padding: 4px 1%;
 box-sizing: border-box;
}
.sns li > a {
 padding: 16px 0;
 display: block;
 text-align: center;
 color: #fff;
 border-radius: 8px;
 text-decoration: none;
}
.sns li > a:hover {
 cursor: pointer;
}

.sns li.twitter > a {
 background-color: #1da1f2;
 border-bottom: #0387d8 solid 8px;
}
.sns li.facebook > a {
 background-color: #3b5998;
 border-bottom: #213f7e solid 8px;
}
.sns li.googleplus > a {
 background-color: #dd4b39;
 border-bottom: #c3311f solid 8px;
}
.sns li.pocket > a {
 background-color: #ef4056;
 border-bottom: #d5263c solid 8px;
}
.sns li.hatebu > a {
 background-color: #00a4de;
 border-bottom: #008ac4 solid 8px;
 font-weight: bold;
}
.sns li.line > a {
 background-color: #00c300;
 border-bottom: #00a900 solid 8px;
 font-weight: bold;
}

</style>
</head>
<body>
<div class="sns">
 <ul>
 <li class="twitter"><a href="#"><i class="fa fa-twitter"></i></a></li>
 <li class="facebook"><a href="#"><i class="fa fa-facebook"></i></a></li>
 <li class="googleplus"><a href="#"><i class="fa fa-google-plus"></i></a></li>
 <li class="pocket"><a href="#"><i class="fa fa-get-pocket"></i></a></li>
 <li class="hatebu"><a href="#"><span>B!</span></a></li>
 <li class="line"><a href="#"><span>LINE</span></a></li>
 </ul>
</div>
</body>
</html>

Apacheで複数ドメインを運用するための設定方法

Apacheで複数のドメインを運用するための設定方法です。

【環境】

  • Apache/2.2.15
  • CentOS 6.7

ドメイン用のフォルダ作成。
mkdir -p /var/www/example.com/public_html
権限を自分に変更。
chown -R uesr:user /var/www/example.com
新ドメイン用のhttpd設定を作成。(最後が「.conf」であれば名前はなんでもOK)
vi /etc/httpd/conf.d/example.com.conf

wwwありとwwwなしの両方に反応してほしいので2パターン記載。


 ServerName example.com
 DocumentRoot "/var/www/example.com/public_html/web/"
 DirectoryIndex index.html index.php
 ErrorLog /var/log/httpd/example.com_error_log
 CustomLog /var/log/httpd/example.com_access_log combined
 AddDefaultCharset UTF-8
 
  AllowOverride All
 


 ServerName www.example.com
 DocumentRoot "/var/www/example.com/public_html/web/"
 DirectoryIndex index.html index.php
 ErrorLog /var/log/httpd/example.com_error_log
 CustomLog /var/log/httpd/example.com_access_log combined
 AddDefaultCharset UTF-8
 
  AllowOverride All
 

httpdの設定を編集。
vi /etc/httpd/conf/httpd.conf

バーチャルホストの利用にするためにコメント外す。
NameVirtualHost *:80

Apacheを再起動する。
まずは念のためテスト。
service httpd configtest
問題なければ再起動。
service httpd restart

以上です。
ドメインの設定は別の問題なので、ここでは説明しません。

この手順でApacheを設定すれば、1つのサーバーで何個でもドメインを管理できるようになります。

※注意

元々運用していたルートドメインを使用したい場合は、同様に「/etc/httpd/conf.d/」配下に「.conf」ファイルを作って設定を記載すること!