FrontPage に 広告用 ウィジェットエリア を 表示させてみた
この記事は 2016年 2月 19日 に書かれた記事です。
この記事は WordPress Version 4.4.2 の時の記事です。
物凄く アフィカスサイト みたいになってしまいましたが
FrontPage に 除外指定した ウィジェットエリアID 以外を 順番に 表示する コードを 書いてみました
最近 アフィリエイトを 掲載する サイト作成依頼が 多く来るので
いろいろ考えてみました
そのうちの 1パターンとして
現在のテーマで タイトル の 上下 コメント欄 の 上下 に 出している アフィリエイト欄を そのまま流用して
FrontPage に 出してみました
まずは 除外する ウィジェットエリアID を 関数に入れておきます
そして その関数を元に ウィジェットエリアID を 配列に 格納していきます
下の例は
使用停止中のウィジェット ( wp_inactive_widgets ) と
サイドバー用のウィジェットエリア ( widget_sidebar ) を 除外しています
//--------------------------------------------------------------------------------------------------
// Widget : 除外 ID
//--------------------------------------------------------------------------------------------------
if( !function_exists( 'remove_widget' ) ) {
function remove_widget() {
return array(
'wp_inactive_widgets',
'widget_sidebar',
);
}
}
//--------------------------------------------------------------------------------------------------
// ウィジェットエリア ID取得
//--------------------------------------------------------------------------------------------------
if( !function_exists( 'get_the_widget_area_ID' ) ) {
function get_the_widget_area_ID() {
$widget_ids = array();
foreach( wp_get_sidebars_widgets() as $key => $value ) {
if( in_array( $key, remove_widget() ) )
continue ;
$widget_ids[] = $key;
}
return $widget_ids;
}
}
そして メインループ の 開始時に (現在の表示しているPost数の) カウンター と
ウィジェット ID の 配列 と (ウィジェットを何個表示したかの) カウンター を 初期化 します
<?php
if( have_posts() ) :
$counter = 1;
$widgets = array(
'counter' => 0,
'ids' => get_the_widget_area_ID(),
);
while( have_posts() ) :
the_post();
?>
メインループ の ループ前に Post数が 2の倍数か調べて
2の倍数ならば ウィジェット を 表示する
if( $counter % 2 == 0 ) {
if( is_active_sidebar( $widgets['ids'][$widgets['counter']] ) ) {
echo( '<div class="col-md-12">' . PHP_EOL );
dynamic_sidebar( $widgets['ids'][$widgets['counter']] );
echo( '</div>' . PHP_EOL );
}
$widgets['counter']++;
}
$counter++;
endwhile;
endif;
という 処理を行っています
アフィリエイトを 貼ると 読みにくくなっていきますよね…
(´・ω・`)
アフィリエイトサイトを 作る際は どういう所に気をつければ 見やすい綺麗なサイトになるのでしょう??
何か 参考になりそうな記事があったら教えて下さい!!
センスですよ!!
とか ないのわかってるからぁ!!
(`;ω;´)