あとで、別の記事にするかもしれなけれど、忘れそうなのでメモ。
WordPressで、投稿記事の中にjavascriptなどのコードを書いちゃうと、自動的に整形される。
Web上の情報を読んでみると、どうも2つのコード掃除機能があるらしいが、詳しく調べていないので、何が正しいのか分からない。
まずは基本的な知識から。WordPress自体は複数のブログを運営できない。派生のWordPress MUがそれを提供している。ただし、アップデートなどは本体よりも遅れるそうだ。
ブログは本来一人がテーマに沿って書くものであったが、同じテーマについて書いている人をゲストとして招き、投稿を書いてもらう機能があとから追加された。
つまり、一つのブログであっても、所有者以外が、投稿する可能性があると言うこと。ほかにも、コメントは原則読み手からもらうものである。要はエディターは複数の人が使用する可能性があると言うことである。
もし、自由にhtmlコードなどを書かせてしまうと、ページが乱れてしまうことがある。これはまだ良い方で、へたにJavascriptのコード何ぞを書かれてしまうと、ハックされサイトが荒らされたりする可能性がある。
そこで、WordPressでは、基本的にhtmlを整形してしまう。コードもビジュアルエディターからは入らない。htmlエディターに切り替えて使用する必要がある。
まず、整形だが、文章を保存したときにWordPressのシステムが行うらしい。これが一つの要因。
それとエディターが整形してしまう分もある。これが二つめの要因だ。
標準エディターはビジュアルエディターとhtmlエディター(コードエディター)に分かれている。ビジュアルエディターが動作する最初の時点で、コードが整形され、スクリプトコードは削除される。つまり、記事の読み込み時や、htmlエディターからビジュアルエディターへ切り替えたときに、これが起きる。
もしかしたら、2つのエディターを切り替えるたびに、保存されているのかもしれない。そのためにエディターのせいになっているかもしれない。詳細を検証していないので、わからない。(欲しいのは解決策だから)
私の場合、困ってしまうのは後者のもの。スクリプトコードを貼り付けても、上記の理由で消えてしまう。対処法はhtmlだけを利用すればいいのだが、ほとんどの記事はスクリプトを貼り付けるわけでないため、ビジュアルエディターがやはり使いやすい。メインはビジュアルエディターだ。
あと、ビジュアルエディターからは貼り付けたコードが見えない。一部は見えることもある。見えないときは、文章間の不揃いな改行幅が気になり、思わず自分で削除してしまい、しまったと思うこともある。
この手の自動整形を制御しようとするプラグインもある。ただ、コード削除が制御できない。(このエディターはTinyMCEでJoomla!でも標準であるが、コードクリーンナップはオフにできる。WordPressが制御させないことについては、本家フォーラムでもたびたび、クレームが上がっている。)
WordPressとエディター部のプログラムを変更して対処するやりかたも、検索すると見つかる。まあ自分でもWordPressとテンプレートのコードを書き換えている部分があるが、できるなら書き換えたくない。アップデートや、テンプレート切り替えの時に苦労するのが目に見えている。
色々試した結果、逆転の発想で行こうと思う。要は直接コードを書かなけりゃ、削除されない。ビジュアルエディターで見えていれば、自分で削除することもない。
不特定多数が書き込むフォーラムでは昔から[tag]の形で、htmlや安全なスクリプトだけ指定できる、いわゆるBBcodeが使用されている。これが使えればいいわけだ。[tag]...[/tag]の形式で<>が直接使用されていなければ、自動整形やエディターは普通の文章と見なし、よけいなお節介を焼かないで、見逃してくれる。
BBcodeの機能でタグがhtmlやスクリプトに置き換えられるのは、ページ表示時であるから、エディターや保存時の整形からは影響されない。
大抵のCMSではBBcode機能の拡張が用意されており、カスタマイズ機能が付いている。このカスタマイズ機能を利用し、自分の好きなコードを書き込めばいい。
調べたら、やはりWordPressにもBBcodeプラグインがある。本家に登録されており、プラグインの追加で簡単にインストールできた。bbcodeで検索すると、かなり表示される。その名もずばり、BBcodeというプラグインだが、二つある。作者がTemplarianさんのほうをインストールすれば、あとはプラグインの設定で、自由にBBcodeを追加できる。引数の置き換えもできるので、汎用性のあるBBcodeも作成できる。
これで、しばらく悩んでいた問題が解決できた。まあ、この手法が安全性からすれば王道なのだろう。ちと手間はかかるが。なぜか、誰も紹介しないけれど。w
| ありがとう、二人目のSharkSpaceユーザさん誕生< 前 | 次 >Google friend connectの色設定 |
|---|
| < 前 | 次 > |
|---|