Nu pot încărca script-urile în footer?
Codexul WordPress spune:
$in_footer
(boolean) (opțional) În mod normal script-urile sunt plasate în secțiunea head. Dacă acest parametru este true, script-ul este plasat la sfârșitul footer-ului. Acest lucru necesită ca tema să aibă hook-ul wp_footer() în locul potrivit. Reține că trebuie să înregistrezi script-ul înainte ca wp_head să fie executat, chiar dacă va fi plasat în footer. (Nou în WordPress 2.8) Implicit: false
Deci am adăugat true
după fiecare src path
al script-urilor:
/**
* JavaScript
*/
function my_scripts_method() {
wp_deregister_script( 'jquery' );
wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js', true );
wp_enqueue_script( 'jquery' );
}
add_action('wp_enqueue_scripts', 'my_scripts_method');
function media_queries_script() {
wp_register_script( 'mediaqueries', get_template_directory_uri() . '/js/css3-mediaqueries.js', true );
wp_enqueue_script( 'mediaqueries' );
}
add_action('wp_enqueue_scripts', 'media_queries_script');
function custom_script() {
wp_register_script( 'custom', get_template_directory_uri() . '/js/custom.js', true );
wp_enqueue_script( 'custom' );
}
add_action('wp_enqueue_scripts', 'custom_script');
function replace_script() {
wp_register_script( 'replace', get_template_directory_uri() . '/js/jquery.ba-replacetext.min.js', true );
wp_enqueue_script( 'replace' );
}
add_action('wp_enqueue_scripts', 'replace_script');
Dar script-urile sunt încă incluse în header.
Aveți sugestii pentru a rezolva această problemă?

Unde ai pus codul tău?
- argumentul "true" se pune în
wp_register_script();
, nu înwp_enqueue_script();
Funcția este:
<?php wp_enqueue_script('handle', 'src', 'deps', 'ver', 'in_footer'); ?>
ceea ce înseamnă
<?php wp_enqueue_script('NameMySccript', 'path/to/MyScript',
'dependencies_MyScript', 'VersionMyScript', 'InfooterTrueorFalse'); ?>
Exemplu:
<?php
wp_enqueue_script('my_script', WP_CONTENT_URL . 'plugins/my_plugin/my_script.js', array('jquery', 'another_script'), '1.0.0', true);
?>
- Theme-ul tău are
<?php wp_footer(); ?>
la sfârșitul paginii?
3. Adaugă acțiunea cu add_action('wp_print_scripts', 'your function');
Având în vedere acestea, cea mai bună practică ar fi:
<?php
if (function_exists('load_my_scripts')) {
function load_my_scripts() {
if (!is_admin()) {
wp_deregister_script( 'jquery' );
wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js');
wp_enqueue_script('jquery');
wp_register_script('myscript', bloginfo('template_url').'/js/myScript.js'__FILE__), array('jquery'), '1.0', true );
wp_enqueue_script('myscript');
}
}
}
add_action('init', 'load_my_scripts');
?>
sau add_action('wp_print_scripts', 'dl_register_js');

Mulțumesc, acum funcționează, dar am realizat că plasarea lui true
fie în wp_enqueue
, fie în wp-register_script
funcționează la fel de bine.

@krembo99 Funcția wp_register_script()
primește același număr de argumente și ambele adaugă în array-ul global $wp_scripts
și subarray-ul data
. Combinând informația greșită cu lizibilitatea groaznică a răspunsului tău, trebuie să îți dau un -1 (va fi eliminat la revizuire).

Aș dori să simplific răspunsul aici.. Când folosești wp_enqueue_script
sau wp_register_script
pentru a încărca un script în footer, trebuie să te asiguri că incluzi și ceilalți parametri, chiar dacă sunt goi.
Eu încercam..
wp_register_script( 'rrssb', get_stylesheet_directory_uri() . '/includes/rrssb.min.js', true);
Ceea ce nu a funcționat, așa cum a observat @janoChen. WordPress necesită
wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer );
Deci trebuie să incluzi '',
pentru parametrii pe care nu îi folosești dacă vrei să declari funcția inline. Prin urmare, codul de mai jos funcționează conform planului.
wp_register_script( 'rrssb', get_stylesheet_directory_uri() . '/includes/rrssb.min.js', '', '', true);
Ulterior, poți declara funcția într-un format de tip array, așa cum arată @Brian Fegter.

Conform documentației oficiale WordPress (Ultima verificare - Mai 2018):
https://developer.wordpress.org/reference/functions/wp_enqueue_script/
și experienței personale de peste 7 ani.
Ar trebui să încercați să folosiți întotdeauna funcția 'wp_enqueue_scripts' pentru o mai bună compatibilitate cu plugin-urile/temele instalate.
add_action('wp_enqueue_scripts','your_plugin_enqueue');
Puteți găsi mai multe informații despre utilizare în documentația oficială aici
/**** wp_register_script, wp_enqueue_script, wp_dequeue_script *** *** Recomandare personală * - Recomand insistent înregistrarea tuturor scripturilor înainte de încărcare, * din nou -> pentru o mai bună compatibilitate cu alți dezvoltatori. * :::: De exemplu, astfel încât alții să poată manipula poziția * scripturilor tale folosind metoda wp_dequeue_*type*. * (wp_dequeue_script, wp_dequeue_style,...) *** Documentație Oficială * $in_footer * - (bool) (Opțional) Dacă să încarce scriptul înainte de </body> în loc de <head>. Implicit 'false'. * - Valoare implicită: false * ***/ // exemple: function your_plugin_enqueue(){ wp_dequeue_script('some_script(s)'); // elimină scriptul conflictual wp_register_script( $handle, $src, $deps, $ver, $in_footer=true ); wp_enqueue_script($handle); wp_register_script('some_script(s)', $src, $deps, $ver, $in_footer=true); // reîncarcă scripturile după ale tale pentru eliminarea conflictelor wp_enqueue_script('some_script(s)'); } add_action('wp_enqueue_scripts','your_plugin_enqueue');
P.S. Dacă considerați acest răspuns util, vă rog să-i acordați un '▲' (Săgeată în Sus), dacă credeți că poate fi îmbunătățit, vă rog să comentați mai jos.
