Ich lade einige JavaScript-Dateien im übergeordneten Design. Der Pfad im übergeordneten Thema lautet:
scripts > custom.js
Im untergeordneten Thema erstelle ich denselben Pfad ( scripts > custom.js
) und ändere einige der jQuery-Elemente in der custom.js
Datei.
Das Problem ist, dass die Änderungen nicht übernommen werden. Ist dies der falsche Weg, um Änderungen an diesen Dateien im untergeordneten Design vorzunehmen?
child-theme
wp-enqueue-script
Chris Molitor
quelle
quelle
Antworten:
Untergeordnete Designs überschreiben nur PHP-Dateien (wie header.php), die in Funktionen wie get_template_part oder get_header usw. enthalten sind.
Der richtige Weg, um Skripte zu WordPress hinzuzufügen, ist mit wp_enqueue_script . Wenn Ihr übergeordnetes Thema dies verwendet, können Sie die JS-Dateien mit wp_dequeue_script überschreiben und Ihre eigenen in die Warteschlange stellen.
Wie so ...
Wenn das übergeordnete Design nicht wp_enqueue_script verwendet, wird es wahrscheinlich in wp_head (oder wp_footer) eingebunden, um die Skripte dort auszugeben. Sie würden also remove_action verwenden , um diese Funktionen zu entfernen , die die Skripte wiedergeben, und dann Ihr eigenes Skript in die Warteschlange stellen.
Wenn das Skript in der Vorlagendatei fest programmiert ist, müssen Sie diese Vorlagendatei nur in Ihrem untergeordneten Design ohne das Skript-Tag ersetzen.
Wenn sie wp_enqueue_script-Aufrufe verwenden, die get_stylesheet_directory_uri verwenden , sollten Sie nichts tun müssen. Da dies nicht geschieht, müssen Sie nur herumstöbern und sehen, was der Autor des Themas getan hat.
quelle
wp_enqueue_scripts
konnte verwendet werden, um nur Skripts auf dem Front-End in die Warteschlange zu stellen. Aktualisiert. Wenn Sie feststellen, dass etwas veraltet ist, können Sie es jederzeit bearbeiten.add_action( 'wp_enqueue_scripts', 'wpse26822_script_fix', 100 );
von codex.wordpress.org/Function_Reference/wp_dequeue_scriptwp_deregister_script('parent-script-handle');
, um das übergeordnete Skript vollständig zu entfernen. In der Tat hat es ohne mich nicht funktioniert. WP 4.6.1In einigen Fällen ist es wichtig, die Funktionsaufrufe add_action und wp_enqueue_script wie folgt zu priorisieren:
In diesem Fall wurde wp_enqueue_scripts vom übergeordneten Element mit einer Priorität von 20120206 (dem Datum) aufgerufen. Daher wird diese Aktion mit einer Priorität hinzugefügt, die kaum höher ist, sodass sie sofort aus der Warteschlange entfernt wird. Anschließend wird die folgende Enqueue-Anweisung tatsächlich priorisiert, um sicherzustellen, dass sie geladen wird, nachdem die alte Anweisung aus der Warteschlange entfernt wurde. Das true ist in diesem Fall auch wichtig, da dies angibt, dass es in die Fußzeile eingereiht werden soll, in der das übergeordnete Skript zuerst eingereiht wurde.
Ich kann es auch nicht ganz erklären, aber ich stelle fest, dass Sie das Laden des ersten Skripts anfangs effektiv verhindern können, wenn Sie vorsichtig sind, das erste Skript unmittelbar nach dem Einreihen aus der Warteschlange zu entfernen.
quelle
wp_enqueue_script
hat keinen Prioritätsparameter, sondern nur eine Versionsnummer, die als Abfragezeichenfolge an das Ende des Pfads angehängt wird. Dieser Parameter wird verwendet, um sicherzustellen, dass die richtige Version unabhängig vom [...] Caching an den Client gesendet wirdRufen Sie wp_deregister_script auf, bevor Sie Ihre eigene Version registrieren
quelle
quelle