Úvodní stránka › Fórum podpory WordPressu › Problémy s WordPressem › Kam vložit script?
Štítky: get_template_directory_uri(), javascript, Porno, Vyskakovací okno, wp_enqueue_script(), wp_register_script()
Zvolené téma obsahuje celkem 4 odpovědi. Do diskuze (3 účastníci) se naposledy zapojil uživatel sjiamnocna a poslední změna je stará 11 let, 3 měsíce.
-
AutorPříspěvky
-
22. ledna 2013 (15:38) #2744
Zdravím,
Mám wordpress web a nevím kam mám vložit soubor kde je
<script type="text/javascript" src="disclaimer-adult.js"></script>
vyskakovací okno s upozorněním na 18 let, .js soubor mám ve stejné složce a když to dám do headeru ke je šablona tak to nic nedělá. Můžete mi poradit?23. ledna 2013 (12:31) #14421Nevím sice přesně o co jde, (šablona/plugin) ale asi bych tam dal (pro mě novou) funkci wp_enqueque_script(), s použitím (nebo bez) další funkce wp_register_script() a zavolanou funkcí add_action(), ale myslím že toto samotné stačit nebude… :) Nejsem na to zas tak dobrej
23. ledna 2013 (16:37) #14422Majklen: Ano, zmiňovaný kód opravdu nic nedělá, protože tam nemáte upřesněnou cestu k Javascriptovému souboru
disclaimer-adult.js
. Takto ho bude WordPress hledat na místědomena.tld/disclaimer-adult.js
, ale on je v adresáři se šablonou, tedydomena.tld/wp-content/themes/sablona/disclaimer-adult.js
. A jak to tedy udělat správně? Stačí použít funkci get_template_directory_uri(), pomocí které cestu automaticky a jednoduše získáte:<script type="text/javascript" src="<?php echo get_template_directory_uri(); ?>/disclaimer-adult.js"></script>
Kód můžete vložit do souboru header.php tak, aby byl v rámci úvodní hlavičky (HTML značka head). Je to jednoduché a rychlé, ale budete mít problémy při případné automatické aktualizaci šablony.
“Správný” způsob totiž v podstatě popsal uživatel sjiamnocna. Javascriptový soubor nejdříve zaregistrujete pomocí funkce wp_register_script() a poté načtete pomocí funkce wp_enqueue_script(). Příklad:
function separatista_disclaimer_script() {
wp_register_script( 'disclaimer', get_template_directory_uri() . '/disclaimer-adult.js' );
wp_enqueue_script( 'disclaimer' );
}
add_action( 'wp_enqueue_scripts', 'separatista_disclaimer_script' );Tento krátký kód můžete vložit do souboru functions.php (v adresáři aktuálně používané šablony) nebo z něj vytvořit jednoduchý plugin. Výhodou tohoto řešení je fakt, že je oddělené od šablony a správně podle manuálu :-)
27. ledna 2013 (10:52) #14423Celé to zkouším, v headeru mám pro jistotu 2 kody:
<script type="text/javascript" src="<?php echo get_template_directory_uri(); ?>http://jenporno.cz/adult.js"></script>
<script type="text/javascript" src="http://jenporno.cz/adult.js"></script>A js soubor je tento: http://diskuse.jakpsatweb.cz/?action=vthread&forum=3&topic=59218
Je to prý nastaveno aby to nelítalo po každém nastavení stránky, jen jednou za den nebo jak to je. Ale ne a ne to fungovat :/
27. ledna 2013 (12:30) #14424Jo tak, pokud je to šablona, tak by mělo stačit zapsat jen do souboru header.php, a z toho stačí zapsat pouze cestu k adresáři šablony, a přidat k ní název souboru, popřípadě cestu do podadresáře. Celá vaše verze je hodně mimo, neboť pokud to máte v kořeni webu,je hovadina používat funkci
get_template_directory_uri()
, protože ta vám najde cestu k umístění používané šablony v adresáři x.xxx/wp-content/themes/mojesablona/. Stačí vám jen použítbloginfo('url')
nebobloginfo('wpurl')
, a za něj připojit název souboru (!! nezapomenout mezi ně přidat / !!)Přinejhorším takto:
<script type='text/javascript' src='<?php bloginfo('url/wpurl') ?>/adult.js'></script>
.Čistším řešením je ale opravdu udělat to přes wp_register_script, jak jsem psal na začátku. Tedy
function separatista_disclaimer_script() {
wp_register_script( 'disclaimer', bloginfo('url/wpurl') . '/disclaimer-adult.js' );
wp_enqueue_script( 'disclaimer' );
}
add_action( 'wp_enqueue_scripts', 'separatista_disclaimer_script' );*Tuším že funkce bloginfo se asi už k získávání adresy webu moc nepoužívá, tak radši počkej až znovu napíše admin.
-
AutorPříspěvky
Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.