it-swarm-eu.dev

Jak propojit externí soubory jQuery/Javascript s aplikací WordPress

Takže používám Starkers, abych založil svůj další WP motiv a já jsem narazil na malý problém, byl jsem včetně své vlastní verze jQuery v souboru header.php, ale když jsem si prohlížel své stránky pomocí Firebug, všiml jsem si jquery byl stahován dvakrát, udělal jsem trochu kopání a všiml jsem si, že nejen že jsem soubor zahrnoval, ale také byla funkce wp_head().

Při pokusu o vyřešení problému jsem si všiml komentář v záhlaví souboru, který pochází z tématu Twenty Ten:

/* Always have wp_head() just before the closing </head>
 * tag of your theme, or you will break many plugins, which
 * generally use this hook to add elements to <head>, such 
 * as styles, scripts, and meta tags
 */

Takže tady je můj problém, jsem pod dojmem, že soubor jQuery musí být nastaven před jakýmkoliv jiným souborem, který ho chce použít, a že wp_head() by měl být poslední věcí v elementu <head>, teď jsem trochu zmatený, když jsem přemýšlel bych měl dát wp_head() nahoře, takže WP zahrnuty jQuery soubor bude použit pro všechny mé pluginy, i když to říká, že tak neučiní.

Zaznamenal jsem řádek jQuery ve funkci wp_head(), ale je to nutné pro stránku admin, takže jsem ho musel vrátit.

Chtěl bych také použít (alespoň experimentovat) s použitím verze služby Google CDN jQuery, ale nechci ji zahrnout dvakrát!

Doufám, že chápete, co se snažím vysvětlit, a že by bylo nejvíc oceněno, jak bych mohl tento problém vyřešit. Také bych rád ocenil jakoukoli radu, jak s vašimi soubory JavaScript pracovat se záhlavím.

Dík!

15
Ben Everard

Ze znění vaší otázky musíte přidávat skripty napsáním tagů <script> do šablony. Přidejte si vlastní skripty přes wp_enqueue_script() v functions.php vaší šablony, odpovídajícím způsobem nastavte závislost na jQuery a wp_head() přidá skripty pro vás.

function my_scripts() {
    wp_enqueue_script( 'my-sweet-script', get_bloginfo('template_directory') . '/script.js', array('jquery') );
}
add_action('template_redirect', 'my_scripts');

Více informací naleznete na stránce codex .

9
Annika Backstrom

Doporučuji podívat se na 5 tipů pro používání jQuery s WordPress . Mimo jiné zobrazuje kód potřebný pro načtení jQuery z knihovny Google:

function my_init() {
    if (!is_admin()) {
        // comment out the next two lines to load the local copy of jQuery
        wp_deregister_script('jquery');
        wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js', false, '1.3.2');
        wp_enqueue_script('jquery');
    }
}
add_action('init', 'my_init');

Můžete také zkontrolovat Použít knihovny Google plugin.

7
Travis Northcutt

Ačkoli @tnorthcutt je správné, že byste měli správně dequeue nativní jQuery WP, pokud chcete načíst svůj vlastní, jste si jisti, že narazíte na problémy, když načítáte jinou verzi jQuery, kterou jádro WP jádro. Jádro i pluginy se na něm spoléhají. Takže pokud nechcete aktualizovat své téma s nejnovější jquery pokaždé, když je WP aktualizován, vaše stránky se mohou zlomit.

Následující kód zajistí, že téma vždy načte správnou verzi jQuery, a to tím, že nejprve zjistíte, která verze WP používá a poté ji načte ze služby Google:

$wp_jquery_version = $GLOBALS['wp_scripts']->registered['jquery-core']->ver;
$jquery_version = ( $wp_jquery_version == '' ) ? '1.8.3' : $wp_jquery_version; // fallback, just in case 
wp_deregister_script('jquery');
wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/'. $jquery_version .'/jquery.min.js', $jquery_version, false );
wp_enqueue_script('jquery');
1
cjbj