2010-09-30 2 views
5

Ho un elemento di ancoraggio in questo modo:rimuovere elemento di ancoraggio intorno alle immagini Wordpress con filtro (o jquery)

<a href="/link-to-image/" rel="attachment wp-att-7076"><img src="/uploads/img.jpg" alt="" title="" width="1268" height="377" class="alignnone size-full wp-image-7076" /></a> 

(E 'il modo standard di Wordpress per incorporare le immagini caricate in un post.)

Voglio rimuovere l'ancora attorno all'elemento dell'immagine, ma mantenere l'immagine. Voglio semplicemente che l'immagine mostri senza essere cliccabile.

Questo può essere fatto con un filtro per il contenuto di un post in Wordpress o dopo che la pagina viene caricata con javascript. Si preferirebbe il filtraggio in Wordpress. Non ho idea di come fare nessuna di queste due opzioni.

risposta

3

Andare nella cartella del tema WP, modificare "functions.php". Aggiungere il codice come questo:

function remove_anchor($data) 
{ 
    // the code for removing the anchor here 

    // (not sure if you need help there, too). 

    // you will work on the $data string using DOM or regex 
    // and then return it at the end 


    return $data; 
} 

// then use WP's filter/hook system like this: 
add_filter('the_content', 'remove_anchor'); 

Il add_filter significa che ogni volta che viene visualizzato un messaggio, la funzione viene chiamata remove_anchor.

jQuery è probabilmente più facile, basta individuare le immagini e non farli cliccabile (questo è testato)

$(document).ready(function() 
{ 
    $('#post a.some-class-name').click(function() 
    { 
     return false; 
    } 
}); 
+0

grazie. Guarderò la versione php con DOM. – reggie

+0

Hai avuto una versione funzionante di questo? Mi piacerebbe vedere il codice completo. Ho appena importato Blogger in WordPress e sono riuscito a convertire le immagini esterne in copie locali, con un plug-in, ma sono ancora avvolte in ancore che puntano a Blogger. Inoltre, questa funzione aggiorna effettivamente il database, quindi può essere rimosso una volta eseguito? Grazie! – Zade

4

Trova utili codice here:

provato, ma ha causato codice non valido.

il codice in ../your_theme/ functions.php sarebbe simile a questa:

function remove_anchor($content) { 
    // the code for removing the anchor here 
    $content = 
     preg_replace(
      array('{<a(.*?)(wp-att|wp-content\/uploads)[^>]*><img}', '{</a>}'), 
      array('<img',''), 
      $content 
     ); 
    return $content; 
} 

// then use WP's filter/hook system like this: 
add_filter('the_content', 'remove_anchor');