Explode Content within specific HTML element

I am trying to insert some ad code in a site after X number of elements. The base code I am using was from using

tags (from: http://www.wpbeginner.com/wp-tutorials/how-to-insert-ads-within-your-post-content-in-wordpress/):

function prefix_insert_after_list_item( $insertion, $paragraph_id, $content ) {
  $closing_p = '/p';
  $paragraphs = explode( $closing_p, $content );
  var_dump($paragraphs);
  foreach ($paragraphs as $index = $paragraph) {

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

    if ( $paragraph_id == $index + 1 ) {
      $paragraphs[$index] .= $insertion;
    }
  }

  return implode( '', $paragraphs );
}

Instead of paragraphs, I am trying to insert them between certain elements. Here is my HTML structure:

div class="listing"
  div class="list-item"
  /div
  div class="list-item"
  /div
  div class="list-item"
  /div
  div class="list-item"
  /div
/div

I'd like to insert the ads between the list items. Replacing $closing_p = '/p'; with $closing_p = 'div class="list-item"'; doesn't seem to work though. Is there a way with to target the overall $content element in WordPress, but then target 's within the parent 'listing' ? Or is there another/better way to do what I am trying to do?

Topic php content Wordpress

Category Web


You should be able to get it to work by changing it to this:

$closing_p = '</div>';

I hope I didn't miss something

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.