以下是my other answer.
首先,我们在WordPress speak中注册了两个新的小部件区域,即侧栏。
add_action( \'widgets_init\', \'wpse_84250_register_ad_widgets\' );
function wpse_84250_register_ad_widgets()
{
// used on the first page of main loop only
register_sidebar(
array (
\'name\' => \'Ad Widget 1\',
\'id\' => \'ad_widget_1\',
\'before_widget\' => \'<div class="frontpage-ads">\',
\'after_widget\' => \'</div>\'
)
);
register_sidebar(
array (
\'name\' => \'Ad Widget 2\',
\'id\' => \'ad_widget_2\',
\'before_widget\' => \'<div class="frontpage-ads">\',
\'after_widget\' => \'</div>\'
)
);
}
你现在有两个新的边栏
wp-admin/widgets.php
. 在此处添加带有广告代码的文本小部件。
然后我们将这些小部件插入到主循环中。
打开loop_start
我们开始执行并加入the_post
和loop_end
如果我们在头版。您可以删除此条件…
if ( ! is_front_page() )
return;
…如果要在所有存档列表上显示广告。
每次通话时,我们都会增加内部计数器$count
由一个。当计数器等于6时,我们低于第5次开机自检dynamic_sidebar()
显示第一个小部件。
当循环结束时,我们将显示第二个小部件并删除回调以节省执行时间循环代码:
add_action( \'loop_start\', \'wpse_84250_show_ad_widgets\' );
function wpse_84250_show_ad_widgets()
{
static $count = 0;
if ( ! is_front_page() )
return;
if ( \'loop_start\' === current_filter() )
return add_action( \'the_post\', __FUNCTION__ )
&& add_action( \'loop_end\', __FUNCTION__ );
$count += 1;
if ( 6 === $count )
dynamic_sidebar( \'ad_widget_1\' );
if ( 11 === $count or \'loop_end\' === current_filter() ) {
dynamic_sidebar( \'ad_widget_2\' );
remove_action( \'the_post\', __FUNCTION__ );
}
}
您可以使用该代码制作插件,请参见:
Where do I put the code snippets I found here or somewhere else on the web?