てくてくあるく

WordPress の テーマ とか プラグイン に ついて 勉強しています

物凄く アフィカスサイト みたいになってしまいましたが

FrontPage に 除外指定した ウィジェットエリアID 以外を 順番に 表示する コードを 書いてみました

最近 アフィリエイトを 掲載する サイト作成依頼が 多く来るので
いろいろ考えてみました

そのうちの 1パターンとして
現在のテーマで タイトル の 上下 コメント欄 の 上下 に 出している アフィリエイト欄を そのまま流用して
FrontPage に 出してみました


まずは 除外する ウィジェットエリアID を 関数に入れておきます
そして その関数を元に ウィジェットエリアID を 配列に 格納していきます

下の例は
使用停止中のウィジェット ( wp_inactive_widgets ) と
サイドバー用のウィジェットエリア ( widget_sidebar ) を 除外しています

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//--------------------------------------------------------------------------------------------------
//  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 の 配列 と (ウィジェットを何個表示したかの) カウンター を 初期化 します

01
02
03
04
05
06
07
08
09
10
<?php
  if( have_posts() ) :
    $counter = 1;
    $widgets = array(
      'counter' => 0,
      'ids'     => get_the_widget_area_ID(),
    );
    while( have_posts() ) :
      the_post();
?>

メインループ の ループ前に Post数が 2の倍数か調べて
2の倍数ならば ウィジェット を 表示する

01
02
03
04
05
06
07
08
09
10
11
    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;

という 処理を行っています


アフィリエイトを 貼ると 読みにくくなっていきますよね…
(´・ω・`)

アフィリエイトサイトを 作る際は どういう所に気をつければ 見やすい綺麗なサイトになるのでしょう??

何か 参考になりそうな記事があったら教えて下さい!!

センスですよ!!
とか ないのわかってるからぁ!!
(`;ω;´)

Related Article

WordPress 4.6 の 日本語版 が 公開されていました!!

詳細へ »

Google AdSense に 登録して 運用してみよう!! – No 3

詳細へ »