Website-Icon The Magical Digital Nomad

Ein responsives Video mit einem ShortCode in deinen WordPress-Beitrag einfügen

WordPress Theme erweitern und programmieren

WordPress Theme erweitern und programmieren

Vor kurzem habe ich gezeigt wie du ein Video responsiv in deinen Betrag einbetten kannst. Das funktioniert ganz gut ist aber zum Arbeiten eher unangenehm. Du musst ja jedes Mal in den HTML-Modus deines Editors wechseln um alles einzufügen. Praktischer wäre da einfacher ShortCode damit du dich nicht dauernd mit HTML ärgern musst.

Aber bevor wir anfangen stellst du aber sicher, dass du nicht im Original-Theme arbeitest, sondern bereits ein Child-Theme angelegt hast. Erst dann solltest du die Themefunktionen in der functions.php um den folgenden Code erweitern.

Die Themefunktionen mit einem Shortcode ergänzen

Dazu nimmst du den folgenden Code und fügst ihn einfach am Ende der functions.php ein. Du siehst jede Zeit ist mit einem Kommentar versehen, damit du auch verstehst, was hier programmiert wird. Es ist einfach wichtig, dass du nicht einfach irgendwoher Quellcode nimmst, welchen du nicht verstehst und dann in deinen Blog einfügst. Denn ohne es zu wissen, hast du dir vielleicht Schadcode eingefangen.

//Responsives Video von YouTube mit ShortCode einfuegen
function tmdn_embed_responsive_video($atts, $content = null) {
  //Parameter einlesen
  extract(shortcode_atts(array('video'    => '',
                               'nocookie' => '1',
                               'autoplay' => '1',
                               'wrapper'  => '1'), $atts));
  //Video-Element initialisieren
  $videoOut = '';
  //falls keine Video-Code angegeben ist, nichts ausgeben
  if ($video == '') {return '';}
  //Wrapper-Element ausgeben
  if ($wrapper == '1') {$videoOut .= '<div class="tmdn-video-container-wrapper">';}
  //Video-Container ausgeben
  $videoOut .= '<div class="tmdn-video-container">';  
  //Datenschuetz respektieren
  $videoOut .= '<iframe src="https://www.youtube';
  if ($nocookie == '1') {$videoOut .= '-noocokie';}
  //Video einbetten
  $videoOut .= '.com/embed/'.$video.'" frameborder="0" allow="accelerometer; ';
  if ($autplay == '1') {$videoOut .= 'autoplay; ';}
  $videoOut .= 'encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>';
  //Video-Container schliessen
  $videoOut .= '</div>';
  //Wrapper-Element schliessen
  if ($wrapper == '1') {$videoOut = '</div>';}
  //Komplettes Video-Element zurueckgeben
  return $videoOut;
}
add_shortcode('tmdn_video', 'tmdn_embed_responsive_video');

Das Video in einen Beitrag einfügen

Das ist jetzt gar nicht mehr so schwierig, denn du hast ja jetzt einen ShortCode. Du kannst also folgendes direkt in deinem Editor einfügen.

[tmdn_video video='wGobXmyCnfI' wrapper='0']

Damit wird dasselbe Video wie bei der HTML/CSS-Version eingebunden. Denn der Wert bei video angegeben wurde, ist exakt die Kombination, welche YouTube in der URL bei v= verwendet, eben die Video-ID. In diesem Fall will ich es in der vollen Spalten- bzw. Seitenbreite anzeigen und habe das Wrapper-Element mit 0 ausgeschaltet.

[tmdn_video video='wGobXmyCnfI' autoplay='0' nocookie='0']

Mit diesem Shortcode wird auch wieder das Video eingebettet, aber dieses Mal nicht in der vollen Breite und es wird nicht automatisch gestartet und auch der Datenschutz ist abgeschaltet.

Natürlich musst du für das responsive einbetten des Videos noch den Teil des Stylesheets aus meinem Post über responsive Videos in deine style.css einfügen. Sonst siehst du den gewünschten Effekt natürlich nicht.

Die mobile Version verlassen