Es macht doch keinen Sinn, eine Funktion mehrfach zu erstellen, die genau das gleiche macht. Es ist doch besser, eine Funktion zu erzeugen, der man einen Parameter übergibt.
Zu Fragen zur PHP-Programmierung wendest du dich besser an ein PHP-Forum. Wir können hier kein Grundwissen vermitteln, weil es den (zeitlichen) Rahmen sprengt.
Funktionen in Funktionen gibt es in PHP nicht. Es wäre auch besser, wenn du erst einmal beschreibst, was du erreichen möchtest, statt ungültigen Code vorzugeben.
Nachtrag: die Aussage, dass es in PHP keine Funktionen in Funktionen gibt, scheint nicht richtig zu sein. Sinn macht dieses Konstrukt aus meiner Sicht trotzdem nicht.
-
Diese Antwort wurde geändert vor 3 Jahren, 10 Monaten von Bego Mario Garde. Grund: Nachtrag
Ich habe vergessen zu erwähnen, dass mit jQuery diverse IDs erstellt werden, die ich hinterher einem Shortcode zuweise.
Die IDs sind z.B. beispiel1
, beispiel2
, beispiel3
. Die einzelnen IDs möchte ich dann innerhalb eines Span (<span id='beispiel".$i."'>Load</span>
) ausgeben. Jede Ausgabe soll hinterher in einem Shortcode sein, weshalb ich da an eine Schleife dachte, die die Shortcodes entsprechend erstellt.
Warum gibst du das HTML nicht innerhalb deiner JavaScript-Funktion aus?
Da sind zu viele unbekannte Informationen, um dir wirklich zu helfen.
Ich versuche es mal besser zu beschreiben, was ich vorhabe.
Ich habe mir ein kleines Plugin erstellt, welches zuerst eine URL in Datenbank schreibt (das ist eine .json URL).
Dann habe ich eine .js-Datei (jQuery), die sich den Datenbankeintag besorgt, die JSON auswertet und IDs erstellt.
document.getElementById('beispiel1').innerHTML = DataOutput.1;
document.getElementById('beispiel2').innerHTML = DataOutput.2;
document.getElementById('beispiel3').innerHTML = DataOutput.3;
Soweit funktioniert alles.
Nun könnte man z.B. mittels <span id='beispiel1'>Load</span>
die ID beispiel1
ausgeben. Ich möchte den Span aber gerne als Shortcode erstellen.
Bzgl. Shortcodes habe ich eine Anleitung von Kinsta befolgt, was ebenfalls funktioniert.
add_shortcode( 'shortcode_name_1', 'shortcode_beispiel' );
function shortcode_beispiel_init(){
function shortcode_beispiel() {
return "<span id='beispiel1'>Load</span>";
}
}
add_action('init', 'shortcode_beispiel_init');
So habe ich den Span mit der ID beispiel1
jetzt im Shortcode [shortcode_name1]
Nun kommen wir zu dem Punkt wo ich derzeit festhänge:
Anstatt alle Shortcodes manuell zu erstellen (im Beispiel sind es nur 3 IDs, es können aber auch 10 oder mehr sein), würde ich gerne eine Schleife anwenden, damit sie Automatisch erzeugt werden.
Problem ist allerdings, dass die functionen eindeutige Namen brauchen (z.B. Anhand des Schleifendurchlaufs hochzählen) und genau da weiß ich nicht, wie ich es realisieren soll.
Ich hoffe, ich konnte ein wenig Licht ins Dunkle bringen. Sollte es zu sehr vom Thema WordPress abweichen und in anderen Foren besser aufgehoben sein, bitte ich um Entschuldigung.
Ich wiederhole mich ja gerne:
Es macht doch keinen Sinn, eine Funktion mehrfach zu erstellen, die genau das gleiche macht. Es ist doch besser, eine Funktion zu erzeugen, der man einen Parameter übergibt.
Beispiel:
add_shortcode( 'write_span', 'write_span' );
function write_span($atts)
{
return "<span>Beispiel_" . $atts['number'] . "</span>";
}
[write_span number="1"]
[write_span number="2"]
[write_span number="3"]
Du rettest mir den Tag. Vielen Dank, das macht genau das, was ich benötigt habe.
Dazu ist die Lösung viel eleganter als mein missglückter Versuch.