2010-09-30 17 views
5

tengo un elemento de anclaje de esta manera:Retire el elemento de anclaje alrededor de las imágenes de 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> 

(Es la forma estándar de Wordpress para incrustar las imágenes cargadas en un post.)

Quiero quitar el ancla alrededor del elemento de imagen, pero mantener la imagen. Simplemente quiero que la imagen se muestre sin que se pueda hacer clic.

Esto podría hacerse con un filtro para el contenido de una publicación en Wordpress o después de que la página se cargue con javascript. Filtrar en Wordpress sería preferido. No tengo idea de cómo hacer ninguna de esas dos opciones.

Respuesta

3

Vaya a la carpeta del tema de su WP, edite "functions.php". Añadir código como este:

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'); 

El add_filter significa que cada vez que se visualiza un mensaje, la función se llama remove_anchor.

jQuery es probablemente más fácil, sólo tiene que identificar las imágenes y no hacer que se puede hacer clic (esto no se ha probado)

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

gracias. Voy a buscar en la versión de php con DOM. – reggie

+0

¿Obtuviste una versión funcional de esto? Me encantaría ver el código completo. Acabo de importar Blogger a WordPress y pude convertir imágenes externas en copias locales, con un complemento, pero todavía están envueltas en anclajes que apuntan a Blogger. Además, ¿esta función realmente actualiza la base de datos, por lo que se puede eliminar después de ejecutarla una vez? ¡Gracias! – Zade

4

encontrar el código útiles here:

probado, pero causó código no válido.

su código en ../your_theme/ functions.php se vería así:

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'); 
Cuestiones relacionadas