てくてくあるく

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

Main Content

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

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;

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


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

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

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

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

テキストエディタ の ショートカットボタン を カスタマイズ してみた

詳細へ »

PageSpeed Insights から あまり良い評価が得られなかったのは 別の原因があった…

詳細へ »

SEOについて 私の考えを つらつら 書いてみる

詳細へ »