I dug this solution up, which adds meta
to valid_children
(untested):
// Prevent TinyMCE from stripping out schema.org metadata
// https://snipt.net/jamesw/prevent-tinymce-from-stripping-schemaorg-attributes-in-wordpress/
function schema_TinyMCE_init( $in ) {
/**
* Edit extended_valid_elements as needed. For syntax, see
* http://www.tinymce.com/wiki.php/Configuration:valid_elements
*
* NOTE: Adding an element to extended_valid_elements will cause TinyMCE to ignore
* default attributes for that element.
* Eg. aUse schema.org HTML in TinyMCE Editor would remove href unless included in new rule: a[title|href]
*/
if ( ! empty( $in['extended_valid_elements'] ) ) {
$in['extended_valid_elements'] .= ',';
}
$in['extended_valid_elements'] .= '@[id|class|style|title|itemscope|itemtype|itemprop|datetime|rel],div,dl,ul,dt,dd,li,span,meta[!content],a|rev|charset|href|lang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur]',
if ( !empty( $in['valid_children'] ) ) {
$in['valid_children'] .= ',';
}
$in['valid_children'] .= '+body[meta],+div[meta]';
return $in;
}
add_filter('tiny_mce_before_init', 'schema_TinyMCE_init' );