// ============================================================================ // AdSense Direct Injection System // ============================================================================ // Code Snippets Compatible Version // ============================================================================ // Add AdSense Script to Head add_action('wp_head', 'add_adsense_injection_script', 1); function add_adsense_injection_script() { echo ''; } // Main Ad Injection Function add_action('wp_enqueue_scripts', 'enqueue_adsense_feed_injection'); function enqueue_adsense_feed_injection() { // Page Detection - Only load on pages with feeds $should_load = false; //if (is_archive() || is_search() || is_home() || is_front_page()) { // $should_load = true; //} //if (is_singular(array('post', 'place', 'event', 'job'))) { // $should_load = true; //} $current_page_slug = get_post_field('post_name', get_the_ID()); $feed_page_slugs = array('explore'); if (in_array($current_page_slug, $feed_page_slugs)) { $should_load = true; } $should_load = apply_filters('direct_ads_should_load', $should_load); if (!$should_load) { return; } //wp_enqueue_script('jquery'); // ======================================================================== // CONFIGURE YOUR ADSENSE ADS HERE // ======================================================================== $multi_feed_config = array( 'placesarchive' => array( 'selector' => '.placesfeed', //'interval' => 4, 'positions' => array(1, 11, 21), 'ads' => array( array( 'type' => 'adsense', 'client' => 'ca-pub-XXXXXXXXXXXXXXXX', 'slot' => 'XXXXXXXXXX', 'format' => 'fluid', // or 'auto', 'rectangle', 'horizontal', 'vertical' 'layout_key' => '-6r+di+5g-2m-8y', // copy from AdSense 'priority' => 3, 'enabled' => true ), array( 'type' => 'adsense', 'client' => 'ca-pub-XXXXXXXXXXXXXXXX', 'slot' => 'XXXXXXXXXX', 'format' => 'fluid', 'layout_key' => '', 'priority' => 2, 'enabled' => true ), array( 'type' => 'adsense', 'client' => 'ca-pub-XXXXXXXXXXXXXXXX', 'slot' => 'XXXXXXXXXX', 'format' => 'fluid', 'layout_key' => '', 'priority' => 1, 'enabled' => true ), ) ), 'eventsarchive' => array( 'selector' => '.eventsfeed', 'interval' => 4, //'positions' => array(2, 8, 12), 'ads' => array( array( 'type' => 'adsense', 'client' => 'ca-pub-XXXXXXXXXXXXXXXX', 'slot' => 'XXXXXXXXXX', 'format' => 'fluid', 'layout_key' => '', 'priority' => 3, 'enabled' => true ), array( 'type' => 'adsense', 'client' => 'ca-pub-XXXXXXXXXXXXXXXX', 'slot' => 'XXXXXXXXXX', 'format' => 'fluid', 'layout_key' => '', 'priority' => 2, 'enabled' => true ), array( 'type' => 'adsense', 'client' => 'ca-pub-XXXXXXXXXXXXXXXX', 'slot' => 'XXXXXXXXXX', 'format' => 'fluid', 'layout_key' => '', 'priority' => 1, 'enabled' => true ), ) ), // add your own feed here ); // Process feeds $processed_feeds = array(); foreach ($multi_feed_config as $feed_key => $feed_config) { $ads = array(); $use_positions_mode = isset($feed_config['positions']) && is_array($feed_config['positions']); $interval = isset($feed_config['interval']) ? $feed_config['interval'] : 0; $max_ads = isset($feed_config['max_ads']) ? $feed_config['max_ads'] : 999; if (isset($feed_config['ads']) && is_array($feed_config['ads'])) { foreach ($feed_config['ads'] as $index => $ad_config) { if (!isset($ad_config['enabled']) || !$ad_config['enabled']) { continue; } if (!isset($ad_config['type'])) { continue; } $ad_data = array( 'type' => $ad_config['type'], 'priority' => isset($ad_config['priority']) ? $ad_config['priority'] : 0, 'index' => $index ); if ($ad_config['type'] === 'adsense') { if (!isset($ad_config['client']) || !isset($ad_config['slot'])) { continue; } $ad_data['client'] = $ad_config['client']; $ad_data['slot'] = $ad_config['slot']; $ad_data['format'] = isset($ad_config['format']) ? $ad_config['format'] : 'auto'; if (isset($ad_config['layout_key'])) { $ad_data['layout_key'] = $ad_config['layout_key']; } } elseif ($ad_config['type'] === 'html') { if (!isset($ad_config['content'])) { continue; } $ad_data['content'] = $ad_config['content']; } else { continue; } $ads[] = $ad_data; } } usort($ads, function($a, $b) { return $b['priority'] - $a['priority']; }); $processed_feeds[$feed_key] = array( 'selector' => $feed_config['selector'], 'ads' => $ads, 'config' => array( 'mode' => $use_positions_mode ? 'positions' : 'interval', 'interval' => $interval, 'positions' => $use_positions_mode ? $feed_config['positions'] : array(), 'max_ads' => $max_ads ) ); } if (!empty($processed_feeds)) { $json_data = wp_json_encode($processed_feeds); wp_add_inline_script('jquery', 'var directAdsFeedData = ' . $json_data . ';'); if (!defined('DONOTCACHEPAGE')) { define('DONOTCACHEPAGE', true); } } } // Output JavaScript in Footer add_action('wp_footer', 'output_adsense_injection_javascript', 20); function output_adsense_injection_javascript() { ?>