2015-01-16 2 views
0

저는 TinyMCE 편집기로 Wordpress 4.1을 실행하고 있습니다. TinyMCE 에디터에서 고급 목록 플러그인을 활성화했습니다. 목록 항목 유형 (예 : <li style="list-style-type: lower-alpha">)을 사용자 정의 할 수 있습니다.Wordpress - CSS 필터 사용자 정의

수정 된 목록 스타일로 게시물을 제출하면 list-style-type 선언이 제거되지만 다른 CSS 선언 (예 : text-align)이 좋습니다.

Wordpress 소스를 보면 safecss_filter_attr() 함수에 의해 kses.php에 의해 CSS가 필터링되고 있습니다. safecss_filter_attr()에서 CSS 선언 배열을 볼 수 있습니다. 해당 배열에 list-style-type을 추가하면 게시물을 저장할 수 있고 list-style-type은 더 이상 필터링되지 않습니다.

그러나 Wordpress 소스를 편집하는 것은 유지 보수가 불가능합니다. Wordpress를 업그레이드 할 때 결국 덮어 쓰게됩니다. 그래서, 제 질문은 이것입니다 : Wordpress가 유지 보수 가능한 방식으로 list-style-type CSS 선언을 걸러 낼 수 없게하려면 어떻게해야합니까?

답변

2

편집중인 배열이 실제로 매개 변수로 'safe_style_css' 필터로 전달됩니다. 반환 값 'safe_style_css'$allowed_attr에 저장됩니다. (kses.php의 1482 행)

따라서 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'); 

테스트하지는 않았지만 작동해야합니다. 완벽하게 작동

HTH,

= C =

+0

환상적인. 필자는 필터를 충분히 이해하지 못하기 때문에 필터를 읽어야 할 것입니다. 또한 코드는 거의 완벽합니다. 단, 3 행의')'과 마지막 행의'''을 제외하면 거의 완벽합니다. – Taeram