在每10个帖子之后投放广告,无限滚动

时间:2012-09-05 作者:espnicholas

我必须加载几个广告,一些普通的html和两个是java脚本。我已经尝试过这种PHP方法:

<?php $postnum++; if($postnum%10 == 0) { ?>
 <div id="topset">
  <ul id="top_ad_list">
      <?php dynamic_sidebar(\'botad\'); ?>
  </ul>
 </div> 
<?php } ?>
发生的情况是,在无限滚动的第一个分页中,它将加载add,在新加载的页面上,它将不再加载ads。

我使用的无限卷轴如下:Infinite Ajax Scroll

2 个回复
SO网友:Saurabh Shukla

请参见:http://infiniteajaxscroll.com/docs/events.html#rendered

因此,将所有ad代码放在ajax函数中(http://codex.wordpress.org/Plugin_API/Action_Reference/wp_ajax_%28action%29)

add_action( \'wp_ajax_your_ad_fn\', \'your_ad_fn\');
add_action( \'wp_ajax_nopriv_your_ad_fn\', \'your_ad_fn\');

function your_ad_fn(){
    // your ad code here
    // if sending js, set Content-type header to application/javascript
    // if sending html, text/html
}

https://stackoverflow.com/questions/9664282/difference-between-application-x-javascript-and-text-javascript-content-types

然后在自定义js中,

ias.on(\'rendered\', function(items) {
    var $items = $(items);
    jQuery.get(
        \'http://yoursite.com/wp-admin/admin-ajax.php\', // I\'ve just illustrated, don\'t write the url directly, do it via wp_localize_script
    ).done( function( data ) ){
         $items.after(data); // append ad after all the loaded posts
    });        
})
这是NOT 确切的代码,你必须自己解决一些细节。

SO网友:Simon Forster

解决问题的方法是使用onLoadItems 事件,即每次添加10个以上的项目时插入一个广告,通过添加items 当事件被触发到某种计数器时,当计数器达到10时,添加广告并将计数器重置为0时,传递的数组。

从您的回答来看,我想您的JavaScript知识水平不是很高吗?而且,即使使用脚本提供的文档,您也很难进行此更改?我说得对吗?你知道什么是事件以及它们是如何工作的吗?如果没有,您可以等待有人在此处发布完全编码的解决方案,或者在GitHub问题跟踪程序上提出您的问题。

结束

相关推荐

如何在WordPress中向javascript标记添加自定义属性?

我希望启用CloudFlare的RocketLoader功能,为我的Wordpress站点异步加载Javascript。然而,问题是,有一个插件我想正常加载。从技术角度来看,根据https://www.cloudflare.com/wiki/Rocket_Loader, 我只需要更改任何想要忽略的脚本标记,就可以data-cfasync=\"false\" 属性如下:<script data-cfasync=\"false\" src=\"/javascript.js\"></scrip