将HTML脚本转换为短码

时间:2021-03-13 作者:DrWho

我想将此代码转换为代码片段插件中的短代码,我已经看到了一个示例,但当我将其放入时,它不起作用,示例如下:

add_shortcode( \'shortcode_name\', function () {

    $out = \'<p>write your HTML shortcode content here</p>\';

    return $out;
} );
我想将以下代码转换为旋转横幅:

<script>
 
    rnd.today=new Date();
    rnd.seed=rnd.today.getTime();

    function rnd() {
        rnd.seed = (rnd.seed*9301+49297) % 233280;
        return rnd.seed/(233280.0);
    }

    function rand(number) {
        var result = Math.floor(rnd() * number);
        if (!result) result = 0;
        return result
    }
    var bannerimgs = new Array("a.jpg", "b.jpg");
    var bannerlnks = new Array("a.com", "b.com");
    var banneralt = new Array("a", "b");
    var rotatorHtml = "";
    var endJs = "";

    for(var img in bannerimgs){
        var thisImg = new Image();
        thisImg.src = bannerimgs[img];
    }
    var bannerimgCt = 2;
    var bannercurrentAd = rand(bannerimgCt);
    var openlink = "";
    var bannerbanner = document.getElementById(\'banner\');
    var bannerlink = document.getElementById(\'banneradLink\');
    
        if(bannerlnks[bannercurrentAd] != ""){
        rotatorHtml += \'<a href="\' + bannerlnks[bannercurrentAd] + \'" id="banneradLink"  target="_blank">\';
        endJs = "</a>";
    }
    rotatorHtml += \'<img src="\' + bannerimgs[bannercurrentAd] + \'" alt = "\' + banneralt[bannercurrentAd] + \'" id="bannerbanner">\' + endJs;
    document.getElementById("banner_div").innerHTML = rotatorHtml;  
</script>
如何将此脚本转换为短代码?我已经替换了它所说的内容,但出现了错误,然后我做错了什么。如何将此脚本转换为短代码?你知道其他的方法吗?

1 个回复
SO网友:Matthew Brown aka Lord Matt

JavaScript以id为“banner\\u div”的HTML元素为目标。因此,第一步是在短代码中输出这样的元素。

add_shortcode( \'shortcode_name\', function () {
    $out = \'<div id=\'banner_div\'></div>\';
    return $out;
} );
现在需要保存JavaScript(<script> 标记)作为文件。这个你现在可以enqueue 这是一个完全不同的问题。Here\'s a question about doing this with a widget.

我同意:

wp_enqueue_script( \'unique-name\', \'/path/to/script.js,  array(), false, true);
这是怎么回事?让我为你总结一下。

  • Param 1 是脚本的名称
  • Param 2 是放置脚本文件的URLParam 5 将脚本输出设置为页脚,使其在窗口小部件div出现在屏幕上后运行
了解有关该功能的更多参考信息wp_enqueue_script 看见the codex page

相关推荐

如何在另一个函数中使用插件的ShortCode属性值?

我有一个插件作为一个类,其中我使用一个shortcode属性来填充$outlet变量。然而,尽管sanitize_text_field($atts[\'outlet\']) 返回所需字符串,$this->outlet = sanitize_text_field($atts[\'outlet\']) 未更新的值$outlet. 如果我为类的$outlet 最初,它在example_callback(). 插件的所有其他功能都按预期工作。只是wp_news_shortcode() 未分配$attr 价值