Beginner's Guide for WordPress / Start your WordPress Blog in minutes

How to Insert Ads within your Post Content in WordPress

Have you seen blogs that has ads inside their post content? These ads are either after the first paragraph or the second paragraph in most cases. Most beginners wonder whether these sites insert ads manually when they write the content, or if there is a special code for this. In this article, we will show you how to insert ads within your post content after specific paragraphs.

Often when beginners want to include ads in their post, they either add the code manually which is extremely inefficient specially if you have to change advertisers, or they insert ads above or below their post using one of the ad management plugins.

Well, we’ve been adding ads in List25 after first paragraphs, and a lot of users asked about it, so here’s the easiest way to do it.

Simply install and activate the plugin we created called Insert Post Ads. Upon activation, the plugin will add a new menu item called Post Adverts.

Click on Post Adverts » Add New. On the next screen, simply add the name of your ad for identification purposes, enter the ad code itself, and select the paragraph you want to display the ad code after. Once done simply click publish.

Insert Post Ads

Next you want to go to Post Adverts » Settings to select which post types you want to show your ads on such as posts, pages, and custom post types.

Now if you don’t like using the plugin, and want to do it the code way, then follow the directions below.

Open your theme’s functions.php or a site-specific plugin file and paste the following code:

//Insert ads after second paragraph of single post content.

add_filter( 'the_content', 'prefix_insert_post_ads' );

function prefix_insert_post_ads( $content ) {
	$ad_code = '<div>Ads code goes here</div>';

	if ( is_single() && ! is_admin() ) {
		return prefix_insert_after_paragraph( $ad_code, 2, $content );
	return $content;
// Parent Function that makes the magic happen
function prefix_insert_after_paragraph( $insertion, $paragraph_id, $content ) {
	$closing_p = '</p>';
	$paragraphs = explode( $closing_p, $content );
	foreach ($paragraphs as $index => $paragraph) {

		if ( trim( $paragraph ) ) {
			$paragraphs[$index] .= $closing_p;

		if ( $paragraph_id == $index + 1 ) {
			$paragraphs[$index] .= $insertion;
	return implode( '', $paragraphs );

To add your ad code, simply edit $ad_code value where it says “Ad code goes here” on line 9. Once you do that, you are done. To change the paragraph number, simply change the number 2 to another paragraph number on line 12.

We hope that this article helped you insert ads within your post content in WordPress.

If you liked this article, then please consider subscribing to our YouTube channel and join us on Twitter.

Thanks to @GaryJ for improving the code that we had.

Disclosure: Our content is reader-supported. This means if you click on some of our links, then we may earn a commission. See how WPBeginner is funded, why it matters, and how you can support us.

The Ultimate WordPress Toolkit

Get FREE access to our toolkit – a collection of WordPress related products and resources that every professional should have!

Reader Interactions

208 CommentsLeave a Reply

  1. Hi,

    I added an ad just fine before my post. However, when I tried removing it, the blank white space remains. Please let me know how to fix this, my site looks terrible and i’m at my wits’ end!


      • fix drawAdsPlace to return the content, add simple-ads-manager.php (somewhere in the class):

        function get_drawAdsPlace($args = null, $codes = false) {
        global $samObject;

        if(is_null($args)) return ”;
        if(is_object($samObject)) return $samObject->buildAd($args, $codes);
        else return ”;

        then use get_drawAdsPlace instead drawAdsPlace. (Updating plugin will kill this)

  2. I have noticed that there are around three ads in each post in list25 with one ad after every the first post while two other ads randomly between the images.

    So, could you please inform how can it be achieved? Are you using the insert post ads or some manual coding for the second and third ads. If so, what is the manual code and where are you inserting it.

  3. Hi,
    “Insert Post Ads” plugin setting doesn’t work for me, when i click on settings-nothing displaying.

    Code works fine, Thanks!

    So my question is, can i repeat this action? I mean if i can insert the ads after paragraph 1 and 2.

    I tried to repeat the code, but doesn’t work : “Fatal error: Cannot redeclare prefix_insert_post_ads()…..”

    Please help

    Thanks in advance

  4. Hi, its possible to use the above code with this one integrated?

    //////////////////here mobile ad

    ////////////////// here desktop ad

  5. Great plugin BUT I’m missing one very important thing -> if I create 4 ads to be displayed after paragrahp two I should get the option to show one of them randomly…

    It would also be great to be able to define “categories” for banner, so that a poker related banner doesn’t show up in my day trading section.

  6. Hi,

    For multi-author WP-blog who does not want to use plugins, can you recommend the code that I can put in the functions.php?

  7. This one really worked for me. I removed the CSS and added some inline css and got the ad before the content, float left, etc. and it ended up exactly as I wanted it.

    You can see it here :

    Thanks for sharing.

  8. Quick question, what if I assigned “5” as the number of paragraph for the adsense code to appear, but the number of paragraphs in my post is only four. What will happen? Will it still work?

  9. I have 2 qusestions:

    1. Is there a way to add text above an ad? For example, amazon affiliates has a banner for $3 per sign up, but they are also doing a contest in the same signup where users can win $500, I’d like to ad a note above the referral banner for sign up about the contest, is there away to do that?

    2. How can I had this to the front page?

  10. Great tutorial, thanks. Is there a way for me to had the ads also show up on my homepage? I have a sticky post at the top and then my posts show up after that but this version of the posts have no ads. So ads only appear if the reader actually clicks through on a post to the individual post URL. Would be great if the ads would show also on the homepage.

  11. What impact does this have on SEO considering there will be links to adverts within the content of the page?

  12. Hello Wpbeginner,
    Really a good explanation. Really like it. However I have one question, would be really grateful if you could help me. If we use the code way,Is there a way to exclude some pages like- about, contact us etc where we dont want want the ads to appear.

  13. With this plugin the ads placed in a post appear in all the other posts. How can I place an ad in one specific post, and that it won’t appear on other posts?

    I have posts related to specific services, products, and topics. I need to be able to place ads related to the specific post, and that won’t appear on other posts, because ads won’t be related to those other posts.

  14. How do i get it to only appear on posts pages using the code above, not the plugin. Currently its also appearing on my product pages.

  15. Is there a way to get this to work within a custom loop? For example, when showing the full content of a featured post on the home page.

  16. Thanks for this. I would recommend tweaking the code slightly to add the insert at the end of a post if it is shorter than the specified number of paragraphs. This can be done with:

    $num = count($paragraphs);
    if ($num == 0 || $num < $paragraph_id) {
    return $content.$insertion;

  17. Is there a way I can do this but have it on last paragraph? I want to insert at bottom right of every post’s content and have text wrapped using div align=”right” which I can see in your code I can change the div ad container, but I want it on bottom. Thanks!

  18. Thanks for the tutorial. What would the functions.php code be if I wanted the ad to show as the second paragraph up from the “bottom” of the page (not the second paragraph from the top of the page)?

  19. What do I do if there is only a blank space showing up where the ad is supposed to be? I don’t have an ad-blocking software on my computer so am I doing something wrong?

  20. Hi, great, simple plugin. Just wanted to make two suggestions.

    I would recommend removing the hard-coded styling for the div or add a css box in settings, so it can be positioned easier. For those wondering, remove this in insert-post-ads.php…

    style=”clear:both;float:left;width:100%;margin:0 0 20px 0;”

    A simple option (checkbox?) on the post/page to “exclude content ads” would be great as well.

  21. Hi Syed, could you please tell me how to add 2 ads after 1st paragraph so that there is one ad then a tab then another ad code?

    • You could use the code to add to functions.php and instead of using ad code here … you could do first ad code here second ad code here

      Then edit style sheet to set sizes and alignment for .maincontainer

  22. I’ve installed the plugin and it shows all in the preview but the ads are not shown when I publish the post. What did I do wrong? Thanks.

    • Not familiar with Adsense, could you provide an example? If I’m designing my own ad and its is a jpeg, what would the ad code be if the jpeg is called MattsAutoSales.jpeg ?? I’m used to working with print ads which usually just use the digital name for placement (MattsAutoSales.jpeg)
      Thanks for the help!

  23. An existing plugin on your site may be conflicting. We recommend deactivating all plugins except insert post ads and then activate other plugins one by one until you figure out which plugin is causing the issue. Let us know.

  24. Very helpful information! Thank you very much. What plug-in do you recommend for inserting ads into a sidebar?

Leave A Reply

Thanks for choosing to leave a comment. Please keep in mind that all comments are moderated according to our comment policy, and your email address will NOT be published. Please Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.