この記事は最後に更新してから1年以上経過しています。

canvasタグを投稿したい

説明

以前「投稿内容の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の内容を操作しているようなので、その点も意識しておきたい。


最終更新 : 2013年12月27日 16:30


お勧め

get_comment_ID(2018年5月27日 更新)

int get_comment_ID( )
現在のコメントのIDを取得する。

do_shortcode(2018年5月27日 更新)

string function do_shortcode( string $content [ , bool $ignore_html = false ] )
文字列に含まれるショートコードを変換する。

get_search_query(2018年5月27日 更新)

string get_search_query( [ bool $escaped = true ] )
ユーザによって検索フォームで入力された検索キーフレーズを取得する。

remove_filter(2018年5月27日 更新)

bool remove_filter( $tag, mixed $function_to_remove [ , int $priority = 10 [ , int $accepted_args = 1 ] ] )
WordPressタグに登録されているフィルターを削除する。

get_term_feed_link(2012年2月23日 更新)

string get_term_feed_link( int $term_id [ , string $taxonomy = 'category' [ , string $feed = '' ] ] )
カテゴリーや投稿タグなどのタームフィードのURLを取得する。