У меня есть многосайтовая сеть Wordpress. Я обнаружил, что если вы не являетесь администратором сети, администраторы сайта не могут публиковать теги <iframe>s
или <script>
.
Что я пробовал:
- Добавлена возможность
unfiltered_html
для роли администратора
- Добавлен
iframe
к глобальному $allowedtags
- Добавлено
iframe
к extended_valid_elements
с использованием фильтра tiny_mce_before_init
Я много читал, и я знаю, что есть плагин Iframe, но было бы лучше, если бы мои пользователи могли копировать и вставлять Iframes с YouTube и т. Д.
Любое понимание очень ценится!
РЕДАКТИРОВАТЬ: полный код ниже
function add_theme_caps() {
$role = get_role('administrator');
$role->add_cap('unfiltered_html');
}
add_action('admin_init', 'add_theme_caps');
public function add_tags()
{
global $allowedtags;
$allowedtags['iframe'] = [
'src' => [],
'width' => [],
'height' => [],
'frameborder' => [],
'style' => [],
'allowfullscreen' => []
];
}
add_action('init', 'add_tags');
public function add_mce_tags($options) {
// Comma separated string of extended tags
$ext = 'iframe[align|longdesc|name|width|height|frameborder|scrolling|marginheight|marginwidth|src]';
if (isset($options['extended_valid_elements'])) {
$options['extended_valid_elements'] .= ',' . $ext;
} else {
$options['extended_valid_elements'] = $ext;
}
// maybe; set tiny paramter verify_html
// $options['verify_html'] = false;
return $options;
}
add_filter('tiny_mce_before_init', 'add_mce_tags');