Skip to content

Commit

Permalink
Merge pull request #2492 from ampproject/add/amp-story-auto-ads
Browse files Browse the repository at this point in the history
Add new filter for amp-story-auto-ads
  • Loading branch information
westonruter authored Jun 3, 2019
2 parents 02c13b5 + 59edcc3 commit 1196ad8
Show file tree
Hide file tree
Showing 3 changed files with 72 additions and 1 deletion.
31 changes: 31 additions & 0 deletions includes/amp-helper-functions.php
Original file line number Diff line number Diff line change
Expand Up @@ -1130,3 +1130,34 @@ function amp_add_admin_bar_view_link( $wp_admin_bar ) {

$wp_admin_bar->add_menu( $parent );
}

/**
* Prints AMP Stories auto ads.
*
* @since 1.2
*/
function amp_print_story_auto_ads() {
/**
* Filters the configuration data for <amp-story-auto-ads>.
*
* This allows Dynamically inserting ads into a story.
*
* @param array $data Story ads configuration data.
* @param WP_Post $post The current story's post object.
*/
$data = apply_filters( 'amp_story_auto_ads_configuration', array(), get_post() );

if ( empty( $data ) ) {
return;
}

$script_element = AMP_HTML_Utils::build_tag(
'script',
array(
'type' => 'application/json',
),
wp_json_encode( $data )
);

echo AMP_HTML_Utils::build_tag( 'amp-story-auto-ads', array(), $script_element ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
7 changes: 6 additions & 1 deletion includes/templates/single-amp_story.php
Original file line number Diff line number Diff line change
Expand Up @@ -62,12 +62,17 @@
poster-landscape-src="<?php echo esc_url( $poster_landscape ); ?>"
<?php endif; ?>
>
<?php the_content(); ?>
<?php
amp_print_story_auto_ads();
the_content();
?>
</amp-story>

<?php
// Note that \AMP_Story_Post_Type::filter_frontend_print_styles_array() will limit which styles are printed.
print_late_styles();

amp_print_analytics( '' );
?>
</body>
</html>
35 changes: 35 additions & 0 deletions tests/test-class-amp-story-post-type.php
Original file line number Diff line number Diff line change
Expand Up @@ -373,4 +373,39 @@ public function create_story_posts_with_featured_images( $featured_images ) {

return $stories;
}

/**
* Test amp_print_story_auto_ads()
*
* @covers ::amp_print_story_auto_ads()
*/
public function test_amp_print_story_auto_ads_empty() {
$actual = get_echo( 'amp_print_story_auto_ads' );

$this->assertEmpty( $actual );
}

/**
* Test amp_print_story_auto_ads()
*
* @covers ::amp_print_story_auto_ads()
*/
public function test_amp_print_story_auto_ads() {
add_filter(
'amp_story_auto_ads_configuration',
static function() {
return array(
'ad-attributes' => array(
'type' => 'doubleclick',
'data-slot' => '/30497360/a4a/amp_story_dfp_example',
),
);
}
);

$actual = get_echo( 'amp_print_story_auto_ads' );

$this->assertStringStartsWith( '<amp-story-auto-ads', $actual );
$this->assertContains( '<script type="application/json">{"ad-attributes":{"type":"doubleclick"', $actual );
}
}

0 comments on commit 1196ad8

Please sign in to comment.