Санитарный выход, содержащий кавычки?

У меня есть переменная, которая собирает данные из настроек темы, например, фоновое изображение и т. Д., И хранится в отдельном файле с встроенным style например:

 $style = 'style="'.$background_image.$background_color.'"'; 

$background_image и $background_color – это только значения css для background_image и background_color которые вы можете установить в параметрах.

Я использую эту переменную в заголовке, как

 <header id="header" class="myheader" <?php echo $style; ?>> 

Теперь это небезопасно и нужно дезинфицировать, поэтому я добавил esc_attr() чтобы избежать этого атрибута.

 <header id="header" class="myheader" <?php echo esc_attr( $style ); ?>> 

Это, в свою очередь, сделало мои двойные кавычки в &quot; и стиль не работал, конечно. Теперь я могу поместить htmlspecialchars_decode() вокруг экранированного значения, но этот вид кажется … странным.

Другим решением было бы поместить style непосредственно в заголовок и вставить только экранированные значения, что позволило бы решить проблему двойных кавычек, но в случае, если стиль не был установлен, я остался с пустым style в своем элементе , и это также кажется ненужным.

Какое лучшее решение?

Кроме того, если я использую htmlspecialchars_decode() я все равно получаю ошибку phcs об экранирующей функции, и это совершенно раздражает …

Другим решением было бы поместить стиль непосредственно в заголовок и вставить только экранированные значения, что позволило бы решить проблему двойных кавычек, но в случае, если стиль не был установлен, я остался с пустым стилем в своем элементе , и это также кажется ненужным.

Вы могли бы, например, проверить wp_add_inline_style и добавить стиль только в том случае, если существует значение параметра wp_add_inline_style настройки темы CSS.