Ändern Sie den Ausgabeort der Plugin-function mithilfe eines benutzerdefinierten Hooks

Ich führe das YouTube Video Fetcher Plugin aus und es holt Youtube Videos und zeigt es auf deiner Webseite an. Anstatt das Video nach dem Post anzuzeigen, möchte ich den Code jedoch in einen benutzerdefinierten Container einhängen.

Hier ist die function im Plugin, mit der das Video nach dem Post angezeigt wird:

//The below function is used to display the video after the post. function append_the_video($content){ return $content.youtube_video(); } add_filter('the_content', 'append_the_video'); 

Ich habe versucht, die folgende Zeile auszuwechseln:

 add_filter('the_content', 'append_the_video'); 

mit dieser Linie aber es funktioniert nicht:

 add_action('my_custom_hook_name', 'append_the_video'); 

Solutions Collecting From Web of "Ändern Sie den Ausgabeort der Plugin-function mithilfe eines benutzerdefinierten Hooks"

Etwas wie das, was du machst, sollte funktionieren, aber ich denke du hast ein paar Dinge falsch gemacht.

Zuerst klingt es so, als hättest du das Plugin gehackt. Tun Sie das nicht, entfernen Sie einfach den callback vom the_content .

Fügen Sie in den functions.php Ihres Themes functions.php hinzu:

 remove_filter('the_content', 'append_the_video'); 

Die function youtube_video() hängt von der Variablen $post . Das bedeutet, es handelt sich im Wesentlichen um eine “Nur-Schleife” -function. Sie können es nicht außerhalb des Loops verschieben, wenn Sie das versuchen. Es wird nicht korrekt funktionieren.

Sie können es an einem anderen Ort the_content indem Sie the_content einen eigenen Callback the_content .

 function my_prepend_the_video($content){ return youtube_video().$content; } add_filter('the_content', 'my_prepend_the_video'); 

Und natürlich können Sie bei Bedarf weitere Markups hinzufügen.