wordpressでiframeが無効になる現象を解決する方法

Kazuya Takato

Kazuya Takato

皆さんこんにちは。株式会社LIG 最高技術責任者のづやです。

ある日、当社スタッフに「このブログのGoogle Mapを記事に埋め込みたいけど、できないよ」と言われました。

試しに僕がやってみたらちゃんと埋め込む事ができたので、何を言ってるんだと思いました。

ですが、よくよく調べてみたらユーザー権限によってフィルターをかけられているようで、iframeタグが有効にならないケースがあると知りました。

ちなみにこのブログのwordpress(3.3.1)はマルチブログで利用しているため、権限が6種類(特権管理者、管理者、編集者、投稿者、寄稿者、購読者)用意されてます。

どの権限でどのタグに制限がかけられているのかがちゃんとわからなかったのですがiframeは特権管理者しか使用できない模様。

とりあえず誰でもiframeを使えるようにすることにしました。

使用してるテーマのfunctions.phpか自作したプラグインに下記を追記します。

// フィルタの登録
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;
}

とりあえず解決しました。

マルチブログに関しては今まで触れたことがなかったので、知らない仕様がたくさんありそうで恐いですね。

とりあえず当サイトではちゃんと動いている模様です。

ちなみにここが僕の故郷です。周りには見事に何もありません。

LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。

Webサイト制作の実績・料金を見る

この記事のシェア数

1983年生まれ。SIerとしてのキャリアをスタートし、JavaやC#を中心に多岐にわたる開発プロジェクトにエンジニアとして参加。その経験を活かし、LIGを創業。バックエンドおよびフロントエンドエンジニアとしての深い知識と経験をもとに、多様なプロジェクトに従事。2023年7月には社長室室長に就任にし、社内の体制やルールの最適化、AI技術の推進など、経営戦略の一翼を担っています。

このメンバーの記事をもっと読む