Обратный вызов блока WP Gutenberg - как добавить динамику c css (в голову)? - PullRequest
1 голос
/ 07 августа 2020

Я сделал нестандартный блок, который потребует нестандартного css. Я не могу сделать это встроенным в качестве атрибута элемента, так как в нем есть некоторые условные @media вещи.

Я думал об использовании действий wp_enqueue_scripts или wp_head.

Это упрощенная последняя часть моего обратного вызова блока:

    $custom_css = "
        #rtt-row-{$attributes['clientId']}{
            background: 'red';
        }";

    add_action( 'wp_enqueue_scripts', function () use ($custom_css) {
        wp_add_inline_style( 'custom-css', $custom_css );
    });
    
    return sprintf(
        '<div %1$s class="%2$s">
                %3$s
            </div>',

        (array_key_exists('clientId', $attributes) && !empty($attributes['clientId'])) ? 'id="rtt-row-' . $attributes['clientId'] . '"' : '',
        esc_attr(implode(' ', $classes)),
        $content
    );

И я пробовал

        add_action('wp_head', function () use ($custom_css) {
            echo '<style>';
            echo $custom_css ;
            echo '</style>';
        });

что действительно работает, так это отображение <style> в теле. Но разве это самый чистый?

    return sprintf(
        '<style type="text/css">%4$s</style>
         <div %1$s class="%2$s">
            %3$s
        </div>',

        (array_key_exists('clientId', $attributes) && !empty($attributes['clientId'])) ? 'id="rtt-row-' . $attributes['clientId'] . '"' : '',
        esc_attr(implode(' ', $classes)),
        $content,
        $custom_css
    );

Любые указатели приветствуются

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