嵌入iframe的wordpress短代码每页只执行一次

时间:2017-03-04 09:11:00

标签: wordpress iframe shortcode

我有以下wordpress短代码

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' );

我在wordpress页面中使用它,如下所示:

AAAAAAAA

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

BBBBBBB

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

CCCCCCCC

问题是在第一个iframe之后,没有显示任何内容(甚至不是第一个iframe之后的BBBB ....)

如果我更改短代码代码以标记某些&#34; foo&#34;而不是&#34; iframe&#34;它正确显示所有代码。

如果我手动嵌入2个iframe(没有短代码),它可以正常工作。

如何使短代码工作?我做错了什么?

(* credit:此代码改编自:https://generatewp.com/shortcodes/?clone=video-embed-shortcode

1 个答案:

答案 0 :(得分:2)

<iframe>元素isn't a self closing element。你应该把它改成

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

同时查看HTML验证器,它会抓住这个问题。 ; - )