Oggi vi spiego come creare un auto link in wordpress, la prima cosa da fare e creare una funzione che si castonizza nel contenuto del tuo cms, nello script che vedete qui sotto e` stato creato un array che contiene la keyword di linkare e url di destinazione, poi tramite explode divide il contenuto e crea un secondo array che viene suddiviso in index che sono le parti spezzettate e il testo dell’articolo.
Come vedete hanno creato un secondo filtro dove evita i tag h, creano a questo punto leggendo un cerca all’interno del paragrafo e il link da inserire e ultima istruzione che e` preg_replace gli dice al tuo wordpress di cercare la parola del primo array e cambiare tutto con il comando che abbiamo dato $link_text come potete vedere ultimo richiamo e` il paragrafo cioe` il tuo articolo scansionato.
function link_words_in_posts( $content ) {
$words_and_links = array(
'parola_da_linkare_1' => 'https://tuolinkbetterlinks1.com',
'parola_da_linkare_2' => 'https://tuolinkbetterlinks2.com',
'parola_da_linkare_3' => 'https://tuolinkbetterlinks3.com'
); // Array associativo di parole e URL a cui linkarle
$apri_nuova_finestra = true; // Flag booleana per decidere se aprire i link in una nuova finestra
$target = $apri_nuova_finestra ? ' target="_blank"' : ''; // Imposta l'attributo "target" del link
$paragraphs = explode( '</p>', $content ); // Dividi il contenuto in paragrafi
foreach ( $paragraphs as $index => $paragraph ) {
// Ignora i titoli dei paragrafi
if ( preg_match( '/<h\d+.*?>.*?<\/h\d+>/i', $paragraph ) ) {
continue;
}
foreach ( $words_and_links as $word => $link ) {
$search = '/\b'.preg_quote( $word, '/' ).'\b/i'; // Cerca la parola ignorando maiuscole/minuscole
if ( preg_match( $search, $paragraph, $matches ) ) {
$link_text = '<a href="'.$link.'"'.$target.'>'. $matches[0] .'</a>';
// Aggiungi il link solo se la parola non è già linkata
if ( ! preg_match( '/<a.*?>'.$matches[0].'<\/a>/i', $paragraph ) ) {
$paragraphs[$index] = preg_replace( $search, $link_text, $paragraph );
}
}
}
}
$content = implode( '</p>', $paragraphs ); // Ricompatta i paragrafi
return $content;
}
add_filter( 'the_content', 'link_words_in_posts' ); // Applica la funzione a tutti i pos
