Wie man Variable von einer anderen PHP-function referenziert / schlägt

Ich habe erfolgreich eine PHP-function für meine Blogposts eingerichtet, um einen Shortcode zu erstellen, mit dem automatisch ein iFrame-Tag für ein YouTube-Video angezeigt / formatiert werden kann, sowie die Dauer und die Anzahl der Aufrufe direkt darunter.

Ich möchte jetzt die Anzahl und Dauer der Aufrufe für das Video auf den Home / List-Seiten anzeigen (via loop.php), habe aber Schwierigkeiten, den entsprechenden PHP-Code dafür zu finden.

Hier ist die function, die ich erfolgreich für die Post-Ansicht verwendet habe:

add_shortcode('yt', 'getYoutubeDetails'); function getYoutubeDetails($atts) { extract(shortcode_atts(array( 'video' => '' ), $atts)); // Get YouTube data via the API $JSON = file_get_contents("https://gdata.youtube.com/feeds/api/videos?q=$video&alt=json"); $JSON_Data = json_decode($JSON); $views = $JSON_Data->{'feed'}->{'entry'}[0]->{'yt$statistics'}->{'viewCount'}; $views = number_format($views); $duration = $JSON_Data->{'feed'}->{'entry'}[0]->{'media$group'}->{'yt$duration'}->{'seconds'}; echo ""; echo "Views: $views
Duration: "; echo sec2hms($duration); echo "

"; }

In meinem Post-Inhalt markiere ich meine Videos als [yt video = “VIDEOID”]. Ich hatte gehofft, ich könnte das spezifische Attribut für Ansichten / Dauer bekommen, indem ich: In der Datei loop.php, aber das scheint nicht zu funktionieren. Gibt es eine Möglichkeit, dies zu strukturieren, um ein bestimmtes Attribut innerhalb der function einzufügen? Wäre es möglich, den Wert zu nutzen, der an das Videoattribut des Shortcodes weitergegeben wird, das bereits im Post-Content enthalten ist?

Ich würde es vorziehen, den bestehenden Shortcode bereits im Post-Inhalt anzuzapfen (ich muss also nicht zwei oder mehr verschiedene Orte pflegen). Wenn es jedoch keine Möglichkeit gibt, den Wert einer vorhandenen function für einen bestimmten Post in der Datei “loop.php” zu reproduzieren, dachte ich, dass es möglicherweise über ein benutzerdefiniertes Feld gehandhabt werden muss.

Irgendwelche Vorschläge, wie man dieses Problem angeht?

Solutions Collecting From Web of "Wie man Variable von einer anderen PHP-function referenziert / schlägt"

Wie in den Kommentaren angegeben, sollten Sie die Zeichenfolge zurückgeben, nicht echo :

 add_shortcode('yt', 'getYoutubeDetails'); function getYoutubeDetails($atts) { extract(shortcode_atts(array( 'video' => '' ), $atts)); // Get YouTube data via the API $JSON = file_get_contents("https://gdata.youtube.com/feeds/api/videos?q=$video&alt=json"); $JSON_Data = json_decode($JSON); $views = $JSON_Data->{'feed'}->{'entry'}[0]->{'yt$statistics'}->{'viewCount'}; $views = number_format($views); $duration = $JSON_Data->{'feed'}->{'entry'}[0]->{'media$group'}->{'yt$duration'}->{'seconds'}; $s = ""; $s .= "Views: $views
Duration: "; $s .= sec2hms($duration); $s .= "

"; return $s; }