2017-03-04 3 views
0

Ich habe folgende Wordpress ShortWordpress Shortcode, die iframe bettet führt nur einmal pro Seite

function wiki_show($atts ) { 

    // Attributes 
    $atts = shortcode_atts(
     array(
      'name' => '', 
      'height' => '500', 
     ), 
     $atts, 
     'wiki' 
    ); 

    // Return custom embed code 
    return '<div><iframe src="https://en.wikipedia.org/wiki/' . '&name=' . $atts['name'] . '" height="' . $atts['height'] . '"/></div> '; 

} 
add_shortcode('wiki', 'wiki_show'); 

ich es in einem Wordpress-Seite verwenden, etwa so:

AAAAAAAA 

[wiki name="Wolfenstein_3D" height="500"] 

BBBBBBB 

[wiki name="Nelson_Mandela" height="800"] 

CCCCCCCC 

Das Problem ist, dass nach dem ersten iframe, kein Inhalt wird angezeigt (nicht einmal die BBBB .... das ist nach dem ersten iframe)

Wenn ich den shortcode ändern, um etwas "foo" anstelle von "iframe" zu markieren, zeigt es den ganzen Code co an sofort.

Wenn ich die 2 iframes manuell (ohne den Shortcode) einbettle, funktioniert es gut.

Wie kann ich den Shortcode arbeiten lassen? Was mache ich falsch?

(* Kredit: Dieser Code wurde aus angepasst: https://generatewp.com/shortcodes/?clone=video-embed-shortcode)

Antwort

2

Das Element isn't a self closing element. Sie sollten es in

return '<div><iframe […]></iframe></div>'; 

ändern Auch HTML-Validatoren überprüfen, hätte es dieses Problem eingefangen. ;-)