WordPressの投稿画面で、よく使うHTMLのタグの一つに iframe がありますね。
iframe を使うと、以下のように、AmazonのリンクやGoogleマップ、Youtube動画を貼ることが出来るので便利です。
あるとき、iframe を貼って保存ボタンを押すと必ず、iframeが消えることがあったので原因を調べてみました。
WordPress の管理者以外のユーザーではiframeが消える
WordPressのユーザーには、「管理者」「編集者」「投稿者」「寄稿者」「購読者」の5つの権限があります。
調べてみると、iframe が消えるのは、「管理者」「編集者」以外のユーザーが投稿記事を保存したタイミングでした。
同じ記事を「管理者」権限で保存した場合、iframe は消えません。
奇妙な仕様だな???。。。。と思って原因を調べてみたところ、iframe タグを悪用するとウィルスを仕込むことが可能になるらしいですね。
「投稿者」が間違って iframe タグを入れることを防ぐ仕様のようです。
複数人でWordPressのサイトを共有していたとしても、身内であるはずの「投稿者」が間違ってiframe のタグを挿入することもありますからね。
とはいえ、これでは複数人でWordPressを運用するのが少し面倒ですね。
WordPress で管理者以外でも iframe を有効にする方法
WordPressで管理者や編集者以外の投稿者の権限でも、iframeの挿入を可能にする方法は次の通りです。
使っているテーマの functions.php に以下の自作フィルタを挿入しておきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// iframe を誰でも使えるようにする add_filter('content_save_pre','test_save_pre'); function test_save_pre($content){ global $allowedposttags; // iframeとiframeで使える属性を指定する $allowedposttags['iframe'] = array('class' => array () , 'src'=>array() , 'width'=>array(), 'height'=>array() , 'frameborder' => array() , 'scrolling'=>array(),'marginheight'=>array(), 'marginwidth'=>array()); return $content; } |
これで、投稿者でも、iframe を挿入できるようになりました。
まとめ
WordPress の仕様としては、セキュリティ上「投稿者」以下の権限で iframe を入れられないのは止むを得ないのでしょうかね。。
身内が一番、間違いを犯すってことですかね。
↓WordPressのおすすめ本はコチラ
コメント
Googleマップの埋め込みが上手く出来ず困っていました。
HTMLをコピーして埋め込んでいたんですが下書き保存したら入れたはずのHTMLが消えてしまうと言う現象が起きてて解決策を探していて、こちらにたどり着きました!
functions.phpの設定の時は
上に書いてくださったコードを全て
コピペしたら良いのでしょうか?
どのHTMLコードを入力したら良いのか分からずコメントさせて頂きました!
よろしくお願い致します。