canvasタグを投稿したい

(3.5.0以降)
canvasタグを投稿したい - 3.5以降はフィルターで対応できる

説明

以前「投稿内容のid属性などを保存するための対策」で取り上げたように、WordPressでは投稿に記述できるHTMLタグが制限されている。同コラムでこの制限を調整する対策を紹介しているが、3.5以降ではフィルター関数を登録して対応できるようだ。

投稿情報に有効なHTMLタグをまとめた$allowedposttagsは、globalキーワードを使用することで自テーマのfunctions.phpで参照・更新でき、3.4の時点ではadmin_initアクション関数を登録してその中で更新して対応していた。この方法は現在でも意図通り動作しているのだが、3.5で登場したwp_kses_allowed_html関数が登場し、この中で呼び出される'wp_kses_allowed_html'フィルター関数で対応するのが、よりスマートだと思われる。

自テーマのfunctions.phpに記述する内容は次の通り。

add_filter( 'wp_kses_allowed_html', 'mytheme_wp_kses_allowed_html', 10, 2 );

function web_tool_wp_kses_allowed_html( $tags, $context ) {
	if ( $context == 'post' ) {
		$tags['div']['id'] = true;
		$tags['canvas'] = array( 'id'=>true, 'width'=>true, 'height'=>true );
	}
	return $tags;
}

上記の例では、パラメータ$contextが'post'の場合のみcanvasタグのほかにdivタグのid属性を有効にしている。自サイトの投稿で使用したいHTMLタグやその属性を適時指定してほしい。

標準で使用できるHTMLタグは、/wp-includes/kses.phpを参照で$allowedposttagsの定義箇所を参照。なお一部のプラグインでも$allowedposttagsの内容を操作しているようなので、その点も意識しておきたい。

関連

お勧めコンテンツ

get_calendar(2009年12月10日 登録)

string get_calendar( [ bool $initial = true [, bool $echo = true ] ] )
投稿ページへのリンク付きカレンダー(1月分)を表示する。

wp_register(2009年12月4日 登録)

void wp_register( [ string $before = '<li>' [ , string $after = '</li>' ] ] )
閲覧者がログインしているかどうかを調べ、ログインしておらず、かつユーザー登録が可能になっていればユーザ登録ページのリンクを、ログイン済みならば管理者ページのリンクを表示する。

wp_html_split(2015年8月6日 登録)

array wp_html_split( string $input )
コンテントを解析してHTML要素で分割する。

get_the_posts_navigation(2014年12月24日 登録)

string get_the_posts_navigation( [ array $args = array() ] )
アーカイブページ向けのナビゲーションを取得する。

wp_trim_words(2011年12月20日 登録)

string wp_trim_words( string $text [ , int $num_words = 55 [ , string $more = null ] ] )
文字列を指定の長さに揃える。

最終更新日時 : 2013-12-27 16:30