rimuovi i collegamenti dalle immagini usando funzioni.php


8

Sto cercando un modo per rimuovere il collegamento dell'allegato dalle immagini nel contenuto del post.

Vorrei aggiungere questo a Functions.php nel mio tema. So che puoi disabilitarlo nel post in base all'immagine, ma mi piacerebbe farlo una volta sola nella mia pagina Functions.php. Qualche idea?

Grazie Bart

Risposte:


5
add_filter( 'the_content', 'attachment_image_link_remove_filter' );

function attachment_image_link_remove_filter( $content ) {
    $content =
        preg_replace(
            array('{<a(.*?)(wp-att|wp-content\/uploads)[^>]*><img}',
                '{ wp-image-[0-9]*" /></a>}'),
            array('<img','" />'),
            $content
        );
    return $content;
}

Il regex potrebbe essere più semplice e sfortunatamente questo ti priva anche della classe unica wp-image-xxx(dove xxx è l'ID allegato) del <img>tag, ma è la più sicura che potrei trovare per rimuovere solo i collegamenti intorno alle immagini degli allegati e lasciare collegamenti nel testo così come i collegamenti intorno alle immagini non allegate intatti.

Se non ti interessano le immagini non allegate e desideri che tutte le immagini all'interno del contenuto del post non vengano comunque racchiuse nei link, questo dovrebbe essere sufficiente:

function attachment_image_link_remove_filter( $content ) {
    $content =
        preg_replace(array('{<a[^>]*><img}','{/></a>}'), array('<img','/>'), $content);
    return $content;
}

Riesco a vederlo spezzare le cose, tuttavia, se l'interno di un'ancora termina in qualche altro elemento a chiusura automatica, come un <br />tag. Sarebbe raro, ovviamente, ma consiglierei di usare la prima, sebbene versione più lunga.


Grazie ha funzionato perfettamente! Ho finito per usare il primo e sì, questo mi ha fatto risparmiare un sacco di tempo.
digitalbart
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.