Dans le suivi de mon précédent question, je veux remplacer tous les cas d'un ALL-CAPS * mot avec un lien du format suivant:preg_replace ne pas remplacer dans un plugin Wordpress
dictionary.com/browse/<TERM>
Le preg_replace
appel J'utilise est le suivant:
$content = preg_replace('#[A-Z][A-Z]+#', '<a href="//dictionary.com/browse/$1">$1</a>', $content);
en utilisant http://gskinner.com/RegExr, il semble que j'ai mon regex correct, et qu'il devrait remplacerai sur chaque ailette ré.
Ai-je fait quelque chose de mal, soit dans l'appel preg_replace
, soit dans l'enregistrement du plugin/filtre dans l'API Wordpress?
contexte complet de l'appel:
function define_filter($content){
$content = preg_replace('#[A-Z][A-Z]+#', '<a href="//dictionary.com/browse/$1">$1</a>', $content);
}
add_filter('the_content', 'define_filter');
* J'utilise la syntaxe [A-Z][A-Z]+
pour assurer que je ne correspondent pas à des mots comme "I" et "A"
les ajouts '\ b' ont aidé ... maintenant c'est substituer le lien, mais ne pas ajouter le' $ 1' former le match .. d'autres pensées peut-être? – warren
Je n'ai pas remarqué que: vous voulez '$ 0' (le match entier), pas' $ 1' (le premier groupe de capture, que votre regex n'a pas). –
c'est ce que je cherchais! Merci, Alan – warren