web-dev-qa-db-fra.com

Filtre de contenu Shortcode?

Je cherche quelque chose, mais je ne sais pas quoi.

J'ai un shortcode, appelons-le [shortcode].

Les utilisateurs entreront des balises HTML, principalement des images, mais aussi des liens, des images dans des liens, etc., par exemple:

[shortcode]
<img src="http://www.site.com/myimage.jpg" />
<a href="http://www.blabla.com"><img src="http://www.site.com/myimage2.jpg" /></a>
(...)
[/shortcode]

Le fait est que je veux formater les URL, différemment, je veux que chaque img src commence par files/myimagescript?

Donc, le code ci-dessus devrait sortir:

<!--- shortcode code before input -->
<img src="files/myimagescript?http://www.site.com/myimage.jpg" />
    <a href="http://www.blabla.com"><img src="files/myimagescript?http://www.site.com/myimage2.jpg" /></a>
    (...)
<!-- shortcode code after input -->

Donc, fondamentalement, j'ai besoin de changer simplement l'image src. Et cela devrait fonctionner pour n'importe quel nombre d'images, de 1 à illimité.

Je pense à foreach PHP boucle, mais je ne sais pas comment saisir chaque ligne img src depuis un shortcode et la traiter avant de l'afficher?

1
Wordpressor

vous pouvez utiliser regex pour trouver votre src et l'utiliser pour ajouter votre "fichiers/myimagescript?" à cela:

function append_myimagescript($attr, $content){ 
    $pattern = '/src="([^"]*)"/i';
    $replacement = 'files/myimagescript?${1}';
    return preg_replace($pattern, $replacement, $content);
}
2
Bainternet