Code Snippets

Vlastní HTML, CSS a JS kód v hlavičce, těle i patičce WordPressu

Code Snippets umožní vložit vlastní HTML, CSS nebo JS kód na tři místa — do <head>, hned za otevření <body> a do patičky — bez úpravy souborů šablony. Modul kód záměrně nijak nefiltruje, takže projdou i skripty pro analytiku, tracking pixely nebo vložené widgety třetích stran.

Hlavní funkce

  • Tři samostatná pole: hlavička (<head>), začátek <body>, patička
  • Vkládání do <body> jede přes hook wp_body_open, se záložním řešením pro šablony, které ho nevolají
  • Kód se neprochází přes wp_kses — záměrně, aby prošly i <script> tagy pro analytiku a tracking
  • Uložení vyžaduje oprávnění manage_options i schopnost unfiltered_html současně
  • Modul nejde delegovat na roli Editor — záměrně, kvůli riziku uložení škodlivého skriptu
  • Žádná databázová tabulka navíc, kód se ukládá jako běžné nastavení pluginu

Jak to funguje

Kód z pole hlavičky se vypíše na hooku wp_head, kód z pole těla přes wp_body_open — a pro šablony, které tenhle relativně nový hook nevolají, modul přidá záložní výpis blízko konce stránky, aby se skript spustil i tak. Patička se vypisuje na wp_footer.

Uložení nastavení je záměrně podmíněné dvěma capability naráz — manage_options i unfiltered_html — protože modul obsah polí neprochází přes wp_kses jako zbytek pluginu. Právě proto, že by mohl uložit libovolný <script>, je vyloučený z funkce delegace modulů na roli Editor, aby nešlo obejít administrátorská oprávnění.

Srovnání s alternativami

Alternativa k pluginům WPCode (dříve Insert Headers and Footers), Simple Custom CSS and JS nebo Header Footer Code Manager — nezaměňovat se stejnojmenným pluginem Code Snippets, což je jiný nástroj zaměřený na PHP snippety.

Časté dotazy

Projde tím i <script> tag pro Google Analytics nebo Facebook Pixel?
Ano — modul kód záměrně nefiltruje přes wp_kses, protože právě tenhle typ skriptů je hlavní důvod, proč modul existuje.
Může kód vložit i uživatel v roli Editor?
Ne. Na rozdíl od ostatních modulů nejde Code Snippets delegovat na roli Editor — ukládání vyžaduje capability unfiltered_html, kterou má standardně jen Administrátor.
Kam přesně se vloží kód z pole „tělo“?
Hned za otevření <body>, přes hook wp_body_open. Pokud šablona tenhle hook nevolá, modul kód vypíše záložně blízko konce stránky.