syntax error, unexpected ':', expecting ')' - wp_enqueue_style
ebody
- php
- wordpress
0 ebody0 Der Martin2 tk0 ebody0 Der Martin1 dedlfix0 ebody
Hallo,
für Wordpress habe ich in einer Plugin Datei folgenden Code:
add_action('wp_enqueue_scripts','add_scripts');
function add_scripts(){
wp_enqueue_style( $handle:'sym_style', plugins_url( $path:'css/template.css', $plugin:__FILE__ ));
wp_enqueue_script( $handle:'sym_script', plugins_url( $path:'js/js.js', $plugin:__FILE__ ));
}
Und erhalte den Fehler:
syntax error, unexpected ':', expecting ')'
Aber dennoch finde ich den Fehler nicht. $handel, $path
habe ich testweise mal weggelassen und nur den Wert stehen lassen.
=
statt :
probiert. Das irritiert mich eh, dass in der Referenz =
angegeben wird, aber in Videos und die Wordpress Extension in VS Code :
verwendet. Ist beides richtig?
handel
statt $handle
Wo ist der Fehler?
Gruß ebody
Man muss doch ein =
und kein :
verwenden.
wp_enqueue_style( $handle='sym_style',...);
Hallo,
Man muss doch ein
=
und kein:
verwenden.wp_enqueue_style( $handle='sym_style',...);
nein, Unsinn. Das funktioniert zwar, aber eher zufällig.
Ergänzung: Das erzeugt eine neue lokale Variable $handle und weist ihr den Wert 'sym_style' zu. Das Ergebnis der Zuweisung, also der zugewiesene Wert selbst, wird dann als Parameter an die Funktion übergeben, die eben angelegte lokale Variable $handle unbenutzt weggeworfen.
Live long and pros healthy,
Martin
Hi,
für Wordpress habe ich in einer Plugin Datei folgenden Code:
wo kommt dieser Code her? Von dir?
add_action('wp_enqueue_scripts','add_scripts'); function add_scripts(){ wp_enqueue_style( $handle:'sym_style', plugins_url( $path:'css/template.css', $plugin:__FILE__ )); wp_enqueue_script( $handle:'sym_script', plugins_url( $path:'js/js.js', $plugin:__FILE__ )); }
Ich habe keine Ahnung von Wordpress, aber das ist zumindest kein syntaktisch korrektes PHP.
Wie kommst du auf diese phantasievolle Notation? Ich verstehe noch nicht, was du damit erreichen willst.
Und erhalte den Fehler:
syntax error, unexpected ':', expecting ')'
Ja klar. Nach einem Ausdruck in einem Funktionsaufruf kommt eine schließende Klammer (oder ein Komma und ein weiterer Bezeichner, wenn die Funktion mehrere Argumente hat). Aber nicht ein Doppelpunkt gefolgt von einem Stringausdruck.
Aber dennoch finde ich den Fehler nicht.
$handel, $path
habe ich testweise mal weggelassen und nur den Wert stehen lassen.
Ach so, du meinst, beim Funktionsaufruf den Namen der formalen Parameter aus der Funktion selbst nochmal nennen zu müssen? Nein, das gab's noch nie. Nur den Parameterwert!
=
statt:
probiert. Das irritiert mich eh, dass in der Referenz=
angegeben wird
Nein. Da steht weder das eine noch das andere. Da steht einfach $handle als formaler Parameter, und zwar als String. Was du eventuell meinst, ist string $src = '' im Funktionskopf. Das bedeutet, dass $src in der Funktion einen Leerstring als Defaultwert hat, falls dieser Parameter beim Aufruf nicht angegeben wird.
aber in Videos und die Wordpress Extension in VS Code
:
verwendet.
Wo? Zeigen, bitte.
Ist beides richtig?
Nein, ist beides falsch.
Live long and pros healthy,
Martin
Hallo Martin,
Wie kommst du auf diese phantasievolle Notation? Ich verstehe noch nicht, was du damit erreichen willst.
Ich würde mal darauf tippen dass das ein Versuch ist benannte Parameter (ab PHP 8) einzusetzen – allerdings ist da zu viel Geld im Spiel (Parameternamen müssen ohne Dollar da stehen) und für den zweiten Parameter der wp_enqueue_*-Funktionen fehlt der Parametername.
Gruß,
Tobias
Wie kommst du auf diese phantasievolle Notation?
In dieser Reihenfolge:
Ich sehe den Code https://youtu.be/DVJkMCoQcdg?t=344
In VS Code erzeugt die Wordpress Extension diesen Code, wenn ich wp_enqueue_script
eintippe:
wp_enqueue_script( $handle:string, $src:string, $deps:array, $ver:string|boolean|null, $in_footer:boolean )
$handle:'sym_style'
verwenden kann/muss.Ich verstehe noch nicht, was du damit erreichen willst.
CSS und JS Datei in das Template einfügen.
Ach so, du meinst, beim Funktionsaufruf den Namen der formalen Parameter aus der Funktion selbst nochmal nennen zu müssen? Nein, das gab's noch nie. Nur den Parameterwert!
Ich habe anstatt wp_enqueue_style( $handle:'sym_style',...)
wp_enqueue_style( 'sym_style',)
probiert.
Wo? Zeigen, bitte.
Hier: https://youtu.be/DVJkMCoQcdg?t=344
Gruß ebody
Hi,
Wie kommst du auf diese phantasievolle Notation?
In dieser Reihenfolge:
Ich sehe den Code https://youtu.be/DVJkMCoQcdg?t=344
In VS Code erzeugt die Wordpress Extension diesen Code, wenn ich
wp_enqueue_script
eintippe:
wp_enqueue_script( $handle:string, $src:string, $deps:array, $ver:string|boolean|null, $in_footer:boolean )
och nööö! Das ist doch bloß die Deklaration der Funktion als Hilfestellung! Von einem Wordpress-Nutzer, der selbst Plugins baut (oder bearbeitet), darf man doch erwarten, dass er oder sie die PHP-Syntax kennt.
- Ich verstehe es so, dass man
$handle:'sym_style'
verwenden kann/muss.
Das ist falsch. Es heißt nur: Hier ist ein Parameter für $handle anzugeben, und er muss vom Typ string sein.
Ach so, du meinst, beim Funktionsaufruf den Namen der formalen Parameter aus der Funktion selbst nochmal nennen zu müssen? Nein, das gab's noch nie. Nur den Parameterwert!
Ich habe anstatt
wp_enqueue_style( $handle:'sym_style',...)
wp_enqueue_style( 'sym_style',)
probiert.
Fast richtig. Nur da, wo ein Komma steht, muss auch ein weiterer Parameter folgen. Oder lass auch das Komma weg. Antäuschen und dann nicht liefern geht nicht.
Wo? Zeigen, bitte.
Mööp. Ich wollte Text sehen, kein Video.
Live long and pros healthy,
Martin
Tach!
- In VS Code erzeugt die Wordpress Extension diesen Code, wenn ich
wp_enqueue_script
eintippe:
Welche? Es gibt nicht nur eine.
wp_enqueue_script( $handle:string, $src:string, $deps:array, $ver:string|boolean|null, $in_footer:boolean )
Das sieht mir nach Syntaxhilfe aus. Das zeigt die (internen) Namen der Parameter und deren Typ an. Du musst da nach wie vor nur Werte oder Ausdrücke notieren, so wie es in PHP üblich ist.
- Ich verstehe es so, dass man
$handle:'sym_style'
verwenden kann/muss.
Ganz falsch verstanden. Es gibt zwar Named Arguments in PHP 8, aber die funktionieren nur ähnlich.
Beachte auch den dortigen Kommentar unterm Video. Der Autor arbeitet mit PhpStorm, was eine ähnliche Hilfestellung hat. PhpStorm zeigt Parameternamen mitten im Code an, aber tatsächlicher Code ist das nicht.
dedlfix.
Vielen Dank für eure Infos. Wieder was dazu gelernt.
Dieser Code funktioniert und sollte jetzt auch kein Zufall mehr sein:
add_action('wp_enqueue_scripts','add_scripts');
function add_scripts(){
wp_enqueue_style( 'sym_style', plugins_url( 'css/template.css', __FILE__ ));
wp_enqueue_script( 'sym_script', plugins_url( 'js/js.js', __FILE__ ));
}
Welche? Es gibt nicht nur eine.
"WordPress Snippets" von wpdevtools.io
Ich wollte Text sehen, kein Video.
wp_enqueue_script( $handle:string, $src:string, $deps:array, $ver:string|boolean|null, $in_footer:boolean )
Gruß ebody