WordPressはカスタマイズ性が優れているのは周知の事実だと思います。function.php内にしていする関数?などによっていろいろな事が出来るようになります。
また、テーマによってカスタマイズする場所などは変わってきたりしますが、今回はStinger6とStinger7においてスマホファースト用に少しカスタマイズしてみました。
というのもサイドバー右上の一番上のウィジェットのスマホ用アドセンス内にそのまま、アドセンスコードを挿入したままですとスマホで表示される時にどうしても4つ表示されてしまっていたからです。
参考記事)
スポンサーリンク
上記にてWidget LogicというプラグインにてカテゴリIDなどを指定して4つ表示されることのないようにした(出来た)わけですが、
もうそのWidget Logicというプラグインは今のところ必要なくなりました。
取り急ぎ簡単にカスタマイズ内容を忘れない内に自分用の備忘録として残しておきたいと思います。
まずは、Stinger6および(Stinger7)の親テーマ内のfunction.php内を見ると、
以下のようにショートコードが記載されています。
if ( !function_exists( 'st_showads' ) ) {
/**
* アドセンス
*/
function st_showads() {
ob_start();
get_template_part( 'st-ad' );
$ads = ob_get_clean();
return $ads;
}
add_shortcode( 'adsense', 'st_showads' );
}
これは[adsense]と投稿記事に記載した際に、
テンプレートの「st-ad」を読み込みなさい。という命令文です。
そして、
その「st-ad」のテンプレート内を見ると以下のように記載されています。
<?php if ( st_is_mobile() ) { //スマートフォンの時は300pxサイズを ?>
<?php if ( function_exists( 'dynamic_sidebar' ) && dynamic_sidebar( 4 ) ) : else : ?>
<?php endif; ?>
<?php
} else { //PCの時は336pxサイズを
?>
<?php if ( function_exists( 'dynamic_sidebar' ) && dynamic_sidebar( 3 ) ) : else : ?>
<?php endif; ?>
<?php
}?>
このままですと、スマホの場合での表示の際にショートコードにて[adsense]と入力すると、
サイドバーのウィジェットのスマホ用アドセンスというウィジェットの内容が読み込まれます。
なので、これまでの記事を全部修正するのは大変になってしまいます。
ない頭を捻って考慮した結果、スマホーとフォンの場合は300pxをの後の
<?php if ( function_exists( 'dynamic_sidebar' ) && dynamic_sidebar( 4 ) ) : else : ?>
上記部分のsidebar(4)という読み込むサイドバーウィジェットの数値を変更して、
PCの時は336pxサイズをという部分のsidebar(3)を読み込むようにします。
//PCの時は336pxサイズを
<?php if ( function_exists( 'dynamic_sidebar' ) && dynamic_sidebar( 3 ) ) : else : ?>
スマートフォンの場合でもsidebar(3)を読み込むようにします。
なので、
スマートフォンの場合でもPCの場合でも同じウィジェット内を読み込むように設定することになります。
(注意としてPCの場合のウィジェット内のアドセンスコードはスマホでも問題ないように表示される広告サイズにしておきます。例えばレスポンシブにしておくとか…。)
そうすることによって、
元のスマホ用アドセンスというウィジェット内に他の忍者AdMAX広告などを入れても、
PCにおいてもスマホ(スマートフォン)においてもショートコードで呼び出したアドセンスコードはPCの時のウィジェット内容が指定して表示されるようになります。
具体的には以下のようにしました。
<?php if ( st_is_mobile() ) { //スマートフォンの時は300pxサイズを ?>
<?php if ( function_exists( 'dynamic_sidebar' ) && dynamic_sidebar( 3 ) ) : else : ?>
<?php endif; ?>
<?php
} else { //PCの時は336pxサイズを
?>
<div class="ad_center">
<?php if ( function_exists( 'dynamic_sidebar' ) && dynamic_sidebar( 3 ) ) : else : ?>
</div>
<?php endif; ?>
<?php
}?>
これで、サイドバー右上には常に別のコードなど何でも挿入してもアドセンス広告がスマホにおいて4つ表示になることはなくなります。
そして、
そのままですとスマホの表示の際に2つしかアドセンス広告が表示されなくなってしまうので、single.phpの任意の表示させたい場所に以下のように分岐条件コードを使って挿入します。
<!--スマホ用アドセンスをここに追加ここから-->
<div class="clearfix" style="margin-bottom:0px;">
<?php if ( st_is_mobile() ) { //スマホの場合 ?>
<div class="ad_center">
<p>スポンサーリンク</p>
//ここにスマホの表示の際にひょうじしたいアドセンスコードを記載
</div>
<!--スマホ本文下用アドセンスコード-->
<?php } else { //PCの場合 ?>
<?php } ?>
</div>
<!--スマホ用アドセンスここに追加ここまで-->
※2行目4行目5行目7行目はなくても良いのですが当ブログではこのように指定しています。
また、Stinger7においては以下のようにレクタングル大を記事下に横並びに出来るようになっている為、ちょっと違うようなので各々で確認してみてください。
Stinger7のデフォルトのsingle.php内の記述内容
<!-- 広告枠 -->
<div class="adbox">
<?php get_template_part( 'ad' ); //アドセンス読み込み ?>
<?php if ( st_is_mobile() ) { //スマホの場合 ?>
<div class="adsbygoogle" style="padding-top:10px;">
<?php get_template_part( 'st-smartad' ); //スマホ用広告読み込み ?>
</div>
<?php } else { //PCの場合 ?>
<div style="padding-top:10px;">
<?php get_template_part( 'ad' ); //アドセンス読み込み ?>
</div>
<?php } ?>
</div>
<!-- /広告枠 -->
読み込むテンプレートが「ad」と「st-smartad」になっています。
また、Stinger6においてもデフォルトのsingle.php内の記述は以下のようになっていました。
<div style="padding:20px 0px;">
<?php get_template_part( 'ad' ); //アドセンス読み込み ?>
<?php if ( st_is_mobile() ) { //スマホの場合 ?>
<?php } else { //PCの場合 ?>
<div class="smanone" style="padding-top:10px;">
<?php get_template_part( 'ad' ); //アドセンス読み込み ?>
</div>
<?php } ?>
</div>
なので、
デフォルトの場合はテンプレート「ad」の内容をスマホの場合sidebar(4)という所をsidebar(3)編集すれば良いのかと思われます。
デフォルトのテンプレート「ad」の内容は以下のようになっています。
<?php if ( st_is_mobile() ) { //スマートフォンの時は300pxサイズを ?>
<?php if ( function_exists( 'dynamic_sidebar' ) && dynamic_sidebar( 4 ) ) : else : ?>
<?php endif; ?>
<?php
} else { //PCの時は336pxサイズを
?>
<?php if ( function_exists( 'dynamic_sidebar' ) && dynamic_sidebar( 3 ) ) : else : ?>
<?php endif; ?>
<?php
}
注意)この記事ではショートコードを使う為に、何度かカスタマイズしてきたので参考程度に考えてください。
他参考)
ショートコードを使用しない場合はデフォルトのままで何も問題ないかもしれません。
私の場合は、カスタマイズしていく内にどこかで変わってしまったのかもしれません…。
自分の備忘録として残しているのですべての皆さんに当てはまることではないかもしれませんが、
コードの記述方法や読み込むテンプレートなどは参考になるのではないかと思います。
万人に通用するカスタマイズの備忘録内容ではないかもしれませんが、
参考になれば幸いです。
追記)こんなこともしていました。
comment