Wörter automatisch verknüpfen, aber nur einmal

Ich brauche dringend ein Stück Code, der ein einfaches Wort durch einen Hypertext-Link ersetzt, indem ich die str_replace-Methode verwende. Und zum Glück habe ich diesen Code unten gefunden, aber das Problem ist, dass es den Link mit allen passenden Keywords wiederholt, während ich den Link nur einmal hinzufügen und andere übereinstimmende Keywords vergessen möchte.

Zum Beispiel, wenn es “Kinderreime” sieht, ersetzen Sie es durch einen Hypertext-Link, aber fügen Sie den Link nicht wieder mit “Kinderreime”, “Reime” oder “Gedichte” Schlüsselwörter auf der gleichen Seite. Eine URL nur einmal.

Ich habe auch gehört, dass dies mit str_replace wahrscheinlich nicht möglich ist, aber mit preg_replace möglich ist, was das Auftreten von Ersetzungen einschränken könnte.

Bitte helfen Sie. Ich bin nicht vertraut mit PHP oder Kodierung, also benutze bitte kompletten Code, damit ich einfach in meine functions.php kopieren und einfügen kann. Hier ist der Code, den ich verwende:

function wp_affiliate_links($text) { $replace = array( ' nursery rhymes ' => ' nursery rhymes ', ' poems ' => ' poems ', ' rhymes ' => ' rhymes ', ); $text = str_replace(array_keys($replace), $replace, $text); return $text; } add_filter('the_content', 'wp_affiliate_links'); add_filter('the_excerpt', 'wp_affiliate_links'); 

Solutions Collecting From Web of "Wörter automatisch verknüpfen, aber nur einmal"

Können Sie die Anzahl der Ersetzungen in str_replace nicht überschreiten? So wie das

 $text = str_replace(array_keys($replace), $replace, $text, 1); 

BEARBEITEN:

Entschuldigung, ich habe über etwas anderes nachgedacht und dieses hier verpasst. Sie können preg_replace verwenden und das Limit setzen. Wie dieser.

 function wp_affiliate_links($text){ $replace = array( '/ nursery rhymes /' => ' nursery rhymes ', '/ poems /' => ' poems ', '/ rhymes /' => ' rhymes ', ); $text = preg_replace( array_keys($replace), $replace, $text, 1 ); return $text; } add_filter('the_content', 'wp_affiliate_links'); add_filter('the_excerpt', 'wp_affiliate_links'); 

EDIT 2:

Probier diese.

 function wp_affiliate_links($text){ $replace = array( '/ nursery rhymes /' => ' nursery rhymes ', '/ poems /' => ' poems ', '/ rhymes /' => ' rhymes ', ); foreach ( $replace as $key ) { $text = preg_replace( array_keys($replace), $replace, $text, 1 ); return $text; } } add_filter('the_content', 'wp_affiliate_links'); add_filter('the_excerpt', 'wp_affiliate_links');