WPMLでマルチランゲージのサイトをいくつか管理をさせていただいているのですが、そんな中から出てきた案件で、広告を言語毎にダ仕分けたいと言う要望だった。

広告と言ってもサイト内の違うページへのリンクだったりもするのでアドセンスを~とか言うような内容ではありません。

だって、アドセンスなどはそうした配慮は実質不要ですからね。

この要望自体はサイト内にあるページをこの言語の時にはこのリンクを出したいという要望だったので、どうしようかなと考えた時にWPMLの機能が使えるとハタと気付いたわけです。

言語毎に何かを出す場合は

<?php if(ICL_LANGUAGE_CODE=='en'){ ?><!-- English -->
  <?php the_ad_group(ID); ?>
<?php } ?>
<?php if(ICL_LANGUAGE_CODE=='zh-hans'){ ?><!-- 香港・シナ -->
  <?php the_ad_group(ID); ?>
<?php } ?>
<?php if(ICL_LANGUAGE_CODE=='zh-hant'){ ?><!-- 台湾 -->
  <?php the_ad_group(ID); ?>
<?php } ?>
<?php if(ICL_LANGUAGE_CODE=='th'){ ?><!-- タイ語 -->
  <?php the_ad_group(ID); ?>
<?php } ?>
<?php if(ICL_LANGUAGE_CODE=='vi'){ ?><!-- ベトナム語 -->
  <?php the_ad_group(ID); ?>
<?php } ?>
<?php if(ICL_LANGUAGE_CODE=='id'){ ?><!-- インドネシア語 -->
  <?php the_ad_group(ID); ?>
<?php } ?>
<?php if(ICL_LANGUAGE_CODE=='tl'){ ?><!-- タガログ語 -->
  <?php do_shortcode(ID) ?>
<?php } ?>
<?php if(ICL_LANGUAGE_CODE=='ja'){ ?><!-- Japan -->
  <?php the_ad_group(ID); ?>
<?php } ?>
<?php if(ICL_LANGUAGE_CODE=='fr'){ ?><!-- フランス語 -->
  <?php do_shortcode(ID) ?>
<?php } ?>
<?php if(ICL_LANGUAGE_CODE=='de'){ ?><!-- ドイツ語 -->
  <?php do_shortcode(ID) ?>
<?php } ?>
<?php if(ICL_LANGUAGE_CODE=='it'){ ?><!-- イタリア語 -->
  <?php do_shortcode(ID) ?>
<?php } ?>
<?php if(ICL_LANGUAGE_CODE=='ru'){ ?><!-- ロシア語 -->
  <?php do_shortcode(ID) ?>
<?php } ?>
<?php if(ICL_LANGUAGE_CODE=='es'){ ?><!-- スペイン語 -->
  <?php do_shortcode(ID) ?>
<?php } ?>
<?php if(ICL_LANGUAGE_CODE=='ko'){ ?><!-- 韓国語 -->
  <?php do_shortcode(ID) ?>
<?php } ?>
<?php if(ICL_LANGUAGE_CODE=='pt-br'){ ?><!-- ポルトガル語(ブラジル) -->
  <?php do_shortcode(ID) ?>
<?php } ?>

<?php if(ICL_LANGUAGE_CODE=='en'){ ?>

<?php the_ad_group(ID); ?>

<?php } ?>

と書いてあげる事で表示している時には英語のページへ遷移してな~という記述です。

<?php the_ad_group(ID); ?>

はアドバンスアドというプラグインの広告を表示するためのグループタグです。

上記のプラグインは広告枠を管理したりグループ分けして出したり出来るので内部リンクなどのバナーを作っておいて表示したい場合には便利なプラグインです。

アドセンスなどもサイズで管理出来るし。

そもそも、この出しわけと言う部分でどうすればいいの~という話になったのはモーダルで表示するバナーを言語毎に制御したいという話であったのです。

そのプラグインは以下

Google先生はポップアップで画面を占有する広告は禁止する意向のようですが、内部リンクや広告オンリーで無ければ平気なんだろうと思います。

トップバーとかスライドインといった表記やCookie管理やリファラー管理もできるので実際に使いこなせばかなり協力なプラグインとなっています。

動作についてはphp5.6以上でないと使えない機能など(エクスポートやインポートが使えない)もあるので気を付けた方がいいです。

コレを使ってアドバンスアドのグループを表示するって事にしました。

んで、ショートコードを作ってそれを上記のConvertPlugというポップアッププラグインで表示してやろうという企み。

//言語セレクト付きのショートコード
function custom_popup_shortcode($params = array()) {
  extract(shortcode_atts(array('file' => 'advancedbanner'), $params));
 		ob_start();
    include(STYLESHEETPATH . "/inc/custom/$file.php");
    return ob_get_clean();
  }
add_shortcode('langpopup', 'custom_popup_shortcode');

言語セレクターはadvancedbanner.phpと指定あげているので上記のような記述になるわけですが、あとは任意の位置に [langpopup]というショートコードを貼ってあげれば言語毎に自動で違うバナーリンクを表示出来るようになるという複合技。

投稿なども実はだしわける事は出来るわけなので、作ればいいのでしょうけど、無制限に作られても困るし、実際にはアドバンスアドのグループに広告を入れていけばだしわけもさらには可能なので、要望にかなった機能になっていると思います。