WordPress

tagi — Dlaczego wp_kses nie zachowuje atrybutów stylu zgodnie z oczekiwaniami?

  • 29 grudnia, 2014
  • 2 min read
tagi — Dlaczego wp_kses nie zachowuje atrybutów stylu zgodnie z oczekiwaniami?


To jest starsze pytanie, ale oto odpowiedź dla przyszłych pokoleń:

WordPress sprawdzi style z listą dozwolonych właściwości i nadal usunie style atrybut, jeśli żaden ze stylów nie jest bezpieczny. Domyślna lista dozwolonych (od wersji WordPress 6.2) to:

array(
    'background',
    'background-color',
    'background-image',
    'background-position',
    'background-size',
    'background-attachment',
    'background-blend-mode',

    'border',
    'border-radius',
    'border-width',
    'border-color',
    'border-style',
    'border-right',
    'border-right-color',
    'border-right-style',
    'border-right-width',
    'border-bottom',
    'border-bottom-color',
    'border-bottom-left-radius',
    'border-bottom-right-radius',
    'border-bottom-style',
    'border-bottom-width',
    'border-bottom-right-radius',
    'border-bottom-left-radius',
    'border-left',
    'border-left-color',
    'border-left-style',
    'border-left-width',
    'border-top',
    'border-top-color',
    'border-top-left-radius',
    'border-top-right-radius',
    'border-top-style',
    'border-top-width',
    'border-top-left-radius',
    'border-top-right-radius',

    'border-spacing',
    'border-collapse',
    'caption-side',

    'columns',
    'column-count',
    'column-fill',
    'column-gap',
    'column-rule',
    'column-span',
    'column-width',

    'color',
    'filter',
    'font',
    'font-family',
    'font-size',
    'font-style',
    'font-variant',
    'font-weight',
    'letter-spacing',
    'line-height',
    'text-align',
    'text-decoration',
    'text-indent',
    'text-transform',

    'height',
    'min-height',
    'max-height',

    'width',
    'min-width',
    'max-width',

    'margin',
    'margin-right',
    'margin-bottom',
    'margin-left',
    'margin-top',
    'margin-block-start',
    'margin-block-end',
    'margin-inline-start',
    'margin-inline-end',

    'padding',
    'padding-right',
    'padding-bottom',
    'padding-left',
    'padding-top',
    'padding-block-start',
    'padding-block-end',
    'padding-inline-start',
    'padding-inline-end',

    'flex',
    'flex-basis',
    'flex-direction',
    'flex-flow',
    'flex-grow',
    'flex-shrink',
    'flex-wrap',

    'gap',
    'column-gap',
    'row-gap',

    'grid-template-columns',
    'grid-auto-columns',
    'grid-column-start',
    'grid-column-end',
    'grid-column-gap',
    'grid-template-rows',
    'grid-auto-rows',
    'grid-row-start',
    'grid-row-end',
    'grid-row-gap',
    'grid-gap',

    'justify-content',
    'justify-items',
    'justify-self',
    'align-content',
    'align-items',
    'align-self',

    'clear',
    'cursor',
    'direction',
    'float',
    'list-style-type',
    'object-fit',
    'object-position',
    'overflow',
    'vertical-align',

    'position',
    'top',
    'right',
    'bottom',
    'left',
    'z-index',
    'aspect-ratio',

    // Custom CSS properties.
    '--*',
)

Ta lista jest, podobnie jak większość rzeczy w WordPressie, filtrowana! Możesz dodać display do niego w następujący sposób, aby Twój kod działał zgodnie z oczekiwaniami:

add_filter( 'safe_style_css', function( $styles ) {
    $styles[] = 'display';
    return $styles;
} );


Źródło

Warto przeczytać!  Dlaczego warto założyć korpus medialny WordPress (i dlaczego teraz?) – Wiadomości WordPress