WordPressでAdsense用カスタムウィジェットを作成する
ブンブン丸です。
先日から当サイトの一部ページにAdsenseを組み込んでいます。
Adsense用のプラグインもいくつかありますが、今回は組み込みの際にWord Pressのカスタムウィジェットを作成しました。
コラムページのサイドバーとブログページのサイドバーにはそれぞれ違うユニットIDのタグを入れています。
と言う事でウィジェットでIDを指定できるようにしてみました。
functions.php
/* サイドバーAdsense用ウィジェット */ class MyWidget_SidebarAdsense extends WP_Widget { function __construct() { parent::__construct( 'sidebar_adsense', // Base ID __( 'Adsenseサイドバー用', 'text_domain' ), array( 'description' => __( 'Adsenseサイドバー用です。ID設定必須。', 'text_domain' ), ) // Args ); } function widget($args, $instance) { extract( $args ); $adsense_id = $instance['adsense_id']; ?> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="fluid" data-ad-layout-key="-gx-24+2c-3x+ds" data-ad-client="ca-pub-xxxxxxxxxxxxxxxx" data-ad-slot="<?php echo $adsense_id; ?>"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> <?php echo $before_widget; ?> <?php echo $after_widget; ?> <?php } function update($new_instance, $old_instance) { //更新時処理 $instance = $old_instance; $instance['adsense_id'] = strip_tags($new_instance['adsense_id']); return $instance; } function flush_widget_cache() { wp_cache_delete( 'sidebar_adsense', 'widget' ); } function form($instance) { //ID入力用 $adsense_id = isset( $instance['adsense_id'] ) ? esc_attr( $instance['adsense_id'] ) : ''; ?> <p> <label for="<?php echo $this->get_field_id('adsense_id'); ?>"> <?php _e('ID:'); ?> </label> <input class="widefat" id="<?php echo $this->get_field_id('adsense_id'); ?>" name="<?php echo $this->get_field_name('adsense_id'); ?>" type="text" value="<?php echo $adsense_id; ?>" /> </p> <?php } } add_action('widgets_init', create_function('', 'return register_widget("MyWidget_SidebarAdsense");'));
おしまい。
コメントをどうぞ