Home CMS Come creare un auto link per i tuoi post wordpress

Come creare un auto link per i tuoi post wordpress

108
0

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
Previous articleGenerare stringhe random in PHP
Next articleCreare un cerca in php

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.