如何让wordpress adrotate插件在页面上旋转广告?

时间:2014-07-24 23:37:27

标签: wordpress plugins

我在我的Wordpress网站上有adrotate插件,我支付了专业版,但它并没有做它应该做的事情。我想我可以通过分组广告和隐藏一些来自己做到这一点。

这是为两个广告输出的HTML

<div class="g g-16">
    <div class="g-col b-16 a-20">
        <a data-track="MjAsMTYsMCwx" class="gofollow" href="https://google.com/"><img src="theimage.jpg" alt="Advert" data-recalc-dims="1" /></a>
    </div>
</div>
<div class="g g-16">
    <div class="g-col b-16 a-24">
        <a data-track="MjAsMTYsMCwx" class="gofollow" href="https://google.com/"><img src="theimage.jpg" alt="Advert" data-recalc-dims="1" /></a>
    </div>
</div>

但是班级名称是g,我认为这个名称不够具体,可能会让其他人感到不安。

这是我试过的代码

setInterval(function(){
    $('.g').first().hide().next().show();
}, 6000); // every 6 seconds

1 个答案:

答案 0 :(得分:1)

我发现专业版也不能正常工作(我被拒绝退款,因为显然是“用户错误”,插件中缺少一部分)。

以下是如何操作:

创建/修改广告组

动态和屏蔽模式部分中,将其设置为显示多个广告,例如3行,1列。

就像你提到的那样,它创建的列使用非特定的类名g,这是一个非常糟糕的主意,所以我们不要使用它。它还会将一些CSS转储到页面中,直到开发人员修复了你必须使用它。

我们可以找到data-track的元素,但是对于我来说仍然有点过于通用的类名g,所以我们将创建自己的元素。

包装器代码中,在每个字段中添加此HTML

之前:<div class="adrotate-category-ad">
之后:</div>

<强>的jQuery

// check there is more than one (otherwise it's not worth doing it)
if ($('.adrotate-category-ad').length > 1){

    // use the parent of the first ad as the wrapper 
    // we know it's safe because it's one of those <div class="g col-xx"> divs
    var $wrapper = $('.adrotate-category-ad').first().parent().attr('id', 'adrotate-wrapper');

    // move all of the ads there and show only the first
    $('.adrotate-category-ad').hide().appendTo($wrapper).first().show();

    setInterval(function(){
        // now just move the first the end, hide it and show the first each time
        $('.adrotate-category-ad').first().hide().next().show().prev().appendTo($wrapper);
    }, 6000); // every 6 seconds
}

如果页面上有多个组,则需要扩展此jQuery,可能使用<div class="adrotate-category-ad" data-adrotategroupid="%id%">并使用该ID保持组分开。