To farsz CSS działa, ale czy to dobra praktyka?

9

Próbuję dołączyć dynamiczny css do mojej wtyczki, szukałem gdziekolwiek, ale nie znalazłem żadnego przypadku podobnego do tego, co robię. A do tego używam dodając plik css bezpośrednio na końcu mojego pliku php wtyczki po zamykającym tagu php ?>bez dodawania innych rzeczy, takich jak wywoływanie wp head itp.

Oto przykład kodu, który umieszczam bezpośrednio na końcu pliku mojej wtyczki:

<style type="text/css">

   .innertrow { background-color: <?php get_options('css_value');?>}

</style>

Czy to dobra praktyka?

Ari
źródło

Odpowiedzi:

11

Możesz użyć wp_add_inline_style (), aby dodać do arkusza stylów, który już zdefiniowałeś, na przykład we wtyczce. W ten sposób ekran opcji lub inne ustawienia użytkownika mogą wpływać na ostateczny styl wyjściowy.

Może to być jednak bardzo uciążliwe, w zależności od tego, ile zmian dajesz użytkownikowi moc. O ile mi wiadomo, jest to jednak „najlepsza praktyka”.

GhostToast
źródło
1
Są więc funkcje, których nie znam w WP. :) +1 Zejście z kursu.
gmazzap
2

Oczywiście nie jest to dobra praktyka, ponieważ Wordpress uzna to za błąd wtyczki. Po aktywacji wtyczki wyświetli komunikat o błędzie:

The plugin generated xxx characters of unexpected output during activation. If you notice headers already sent messages, problems with syndication feeds or other issues, try deactivating or removing this plugin.

Gdzie xxx to ilość kodów + spacje, które umieszczasz za ?>tagiem. Jest to to samo, co lokalizowanie spacji / kodów lub niedopuszczalnych kodów przed pierwszym <?phptagiem w głównej wtyczce i po niej.

Ari
źródło
1

Wierzę, że można dynamicznie napisać plik CSS za pomocą PHP, ale trzeba by dowiedzieć się więcej na ten temat, sam niewiele o nim wiem. Planuję to zrobić wkrótce, ponieważ zauważyłem, że ludzie umieszczają DUŻO CSS w temacie, nad którym pracowałem. Jest to zła praktyka na wiele sposobów, więc najlepiej unikać tam, gdzie to możliwe. Niestety dziennie są tylko 24 godziny ...!

Dan
źródło
1

Jeśli chcesz dodać dynamiczny CSS i nie masz już dodanego arkusza stylów, do którego chcesz go dołączyć, możesz go podłączyć i wyprowadzić w wp_headzaczepie akcji:

<?php
function wpse_111373_output_plugin_css() {
    ?>
    <style type="text/css">
        .innertrow { background-color: <?php get_option('css_value'); ?>;}
    </style>
    <?php
}
add_action( 'wp_head', 'wpse_111373_output_plugin_css' );

Nie dodawaj tylko CSS na końcu pliku wtyczki. Jednak, o ile jest to „najlepsza praktyka”, nie wiem. :)

Jjeaton
źródło