Crie um foreach-loop na pesquisa e substitua

Atualmente, tenho um script para o meu site WordPress que encontra um

-tag e adiciona um id para ele

 <?php $phrase = get_the_content(); $phrase = apply_filters('the_content', $phrase); $replace = '

'; echo str_replace('

', $replace, $phrase); ?>

Gostaria de adicionar um id="$i++" a cada tag

.

Eu pensei sobre isso, mas isso me dá um erro foreach:

 <?php $phrase = get_the_content(); $phrase = apply_filters('the_content', $phrase); $tag='

'; $i=0; foreach ($tag as $replace){ $replace = '

'; echo str_replace($tag, $replace, $phrase); } ?>

Erro: Warning: Invalid argument supplied for foreach() in...

Alguma ideia? M.

Na function str_replace, o terceiro parâmetro é uma variável de saída para verificar quantas substituições foram realizadas. Use a function preg_replace:

 < ?php $phrase = get_the_content(); $phrase = apply_filters('the_content', $phrase); $tag='

'; $i=0; $c = substr_count($phrase, $tag); for($i=0; $i< $c; $i++){ $replace = '

'; $phrase = preg_replace('/'.$tag.'/', $replace, $phrase, 1); } echo $phrase; ?>

Você precisa primeiro obter uma matriz de todas as tags, você faz um foreach em uma string.

 foreach(array("

","

") as $replace){ ... }

Não testei isso, mas isso ajudará você a sair. 🙂

Saudações.