Ich habe zwei Seiten, die ich ein Plugin von der ersten Seite kopiert habe und dann das Plugin geändert und den Namen der Plugins direcoy und class name geändert.
Wie von:
old_xplugin
In der Wurzel dieses Plugins habe ich die Datei old_xplugin.php
und den classnnamen equivavalent: class old_xplugin
ZU
new_xplugin
(jetzt mit Modifikationen des alten xplugin) Im Stamm dieses Plugins habe ich nun eine Datei namens new_xplugin.php
und den classnnamen equivavalent: class new_xplugin
Alles funktioniert, bis ich den Namen des Ordners ändere. (Ich kann den Namen des Plugins und den classnnamen ohne Probleme ändern).
Aber wenn ich den Namen des Ordners ändere, bekomme ich jQuery Verweis eror: nicht definiert. Warum wird jQuery beim Ändern des Plugins-Ordners nicht geladen?
Dies ist die Struktur der Plugin-Datei (en):
Haupt-Plugin-Datei (new_xplugin.php). Diese Dinge werden nach dem Kopieren des Plugins nicht geändert.
public function __construct() { //Iniate jquery and css add_action( 'wp_enqueue_scripts', array($this, 'js_css' ) ); } public function js_css() { wp_enqueue_script( 'wtfjs', plugins_url( '/js/wtf.js' , __FILE__) ); }
wtf.js
jQuery(function ($) { //Wordpress says: jQuery reference error: undefined. //code });
Keine Ahnung, warum die Änderung des Ordnernamens einen Unterschied macht, aber Sie sollten jquery als Abhängigkeit in Ihrer Enqueue hinzufügen
wp_enqueue_script( 'wtfjs', plugins_url( '/js/wtf.js' , __FILE__), array('jquery') );
Dank @Mark Kaplun, das das eigentliche Problem erkannt hat. jQuery wurde nicht geladen, bevor wp_enque_script ausgeführt wurde. Also js_css()
ich die function js_css()
in init:
add_action( 'init', array( $this, 'js_css' ) );
und das hat das Problem getriggers! 🙂
(Sehr merkwürdig, dass das sogar vor Ort funktioniert hat1)