2015-01-16 5 views
0

Я запускаю Wordpress 4.1 с помощью редактора TinyMCE. В редакторе TinyMCE я включил плагин Advanced Lists, который позволяет настраивать тип стиля списка элементов списка (например, <li style="list-style-type: lower-alpha">).Wordpress - настройка CSS-фильтров

Когда я отправляю сообщение с измененным стилем списка, объявление list-style-type удаляется, но другие объявления CSS просто прекрасны (например, text-align).

Глядя на источник Wordpress, CSS фильтруется функцией safecss_filter_attr() в kses.php. В safecss_filter_attr() Я вижу массив объявлений CSS. Если я добавлю list-style-type в этот массив, я смогу сохранить свой пост, а list-style-type больше не будет отфильтрован.

Однако редактирование источника Wordpress не поддерживается, поскольку в конечном итоге он будет перезаписан при обновлении Wordpress. Итак, мой вопрос заключается в следующем: как я могу предотвратить Wordpress отфильтровать объявление CSS list-style-type в удобной для вас форме?

ответ

2

Этот массив, который вы редактируете, фактически передается как параметр в фильтр 'safe_style_css'. Возвращаемое значение 'safe_style_css' хранится в $allowed_attr. (Строка 1482 в kses.php)

Итак, в функции functions.php напишите функцию, которая выглядит примерно так.

function my_css_allow($allowed_attr) { 

    if (!is_array($allowed_attr)) { 
     $allowed_attr = array(); 
    } 

    $allowed_attr[] = 'list-style-type'; 

    return $allowed_attr; 
} 

add_filter('safe_style_css','my_css_allow'); 

Я не проверял это, но похоже, что он должен работать.

НТН,

= C =

+0

Потрясающе, что работал отлично. Мне нужно будет читать фильтры, так как я их недостаточно понимаю. Кроме того, ваш код почти идеален, за исключением отсутствующего ')' в строке 3, а дополнительный '' 'на последней строке; – Taeram

Смежные вопросы