2016-12-21 2 views
0

Mon code compte les tags p, puis insère le code d'annonce après le x-e p tag. Si je veux compter img tags, puis insérer le code de l'annonce après x 0 e img tag comment dois-je faire?Insérer le contenu après le tag x img

add_filter('the_content', 'prefix_insert_post_ads2'); 

function prefix_insert_post_ads2($content) { 
    $imgs = preg_match_all("#<img.+>#U", $content, $matches); 
    $ad_codea = "ads code"; 
    if (is_single() && ! is_admin() && $imgs >= 4) { 
     return prefix_insert_after_paragraph2($ad_codea, 3, $content); 
    } 
    return $content; 
} 

function prefix_insert_after_paragraph2($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); 
} 
+0

vous pouvez utiliser js ou jquery pour cela –

Répondre

1

J'ai résolu par moi-même.

add_filter('the_content', 'prefix_insert_post_ads2'); 
function prefix_insert_post_ads2($content) { 
    $imgs = preg_match_all("#<img.+>#U", $content, $matches); 
    preg_match_all('/<img[^>]+>/i',$content, $result); 
    $ad_codea = '123'; 
    if ($imgs < 4) {$result[0][1]='';} 
    if (is_single() && ! is_admin()) { 
     return str_replace($result[0][1], $result[0][1].$ad_codea, $content); 
    } 
}