テーブルをWordPressエディターに貼り付けると、常に_<td width="232">
_のような幅になります。
テーブルがエディターに追加されたときにすべての幅を削除したいのですが。
正規表現の場合、width="([0-9]+)"
のように記述します。
これを達成するにはどうすればよいですか?
Table、tr、およびtdマークアップで許可されている属性をwp_kses
から変更することで、これに取り組みます。 wp_kses
は、不要なタグや属性を除外するためにコンテンツで実行される関数です。 KSES Strips Evil Scriptsの略ですが、それだけではありません。
これは大きく、たまに複雑な関数ですが、除外するものを拡張または変更する場合に非常に役立ちます。
これは、unfiltered_html
機能を持たないユーザーにのみ適用されることに注意してください。
wp_kses_allowed_html
フィルターを使用すると、許可されたタグと属性を変更できます。配列構造は$allowedtags['tag_name']['attribute']
なので、たとえば$allowedtags['table']['width']
を探します。
function my_modify_tags( $tags, $context ) {
if ( 'post' !== $context ) {
return $tags;
}
if ( isset( $tags['table']['width'] ) ) {
unset( $tags['table']['width'] );
}
if ( isset( $tags['td']['width'] ) ) {
unset( $tags['td']['width'] );
}
if ( isset( $tags['th']['width'] ) ) {
unset( $tags['th']['width'] );
}
return $tags;
}
add_filter( 'wp_kses_allowed_html', 'my_modify_tags', 1, 2 );
ここで$context
を使用すると、タグを変更する特定のインスタンスにこれを適用できます。 post
をターゲティングすることにより、許可されたタグのこのフィルタリングされたリストを投稿コンテンツにのみ適用できます。