Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/12/2013, 15:03
laura_moreno14
Invitado
 
Mensajes: n/a
Puntos:
Expresiones regulares

Hola a tod@s, haber si alguien puede ayudarme.

Estoy utilizando add_filter('the_content', 'mifuncion') para buscar en el contenido de los post ciertas palabras y añadirles un link. Estos links llevan un atributo title se transforma en un tooltip gracias a jquery.

El problema es que cuando en el tooltip (que es lo que esta dentro de title) aparece una palabra de las que hay que ponerle link, pues le pone link. Y esto hace que todo se destroce. No se si me he explicado muy bien, espero que lo entiendan.

Les dejo el codigo que utilizo para reemplazar las palabras por links.

Código PHP:
function reemplazar($cadena){
    
$args = array(
        
'showposts'   => -1,
        
'category_name' => 'glosario',
        
'post_type' => 'glosario',
    ); 
    
$posts_array get_posts$args );
    
$reemplaza = array();
    foreach (
$posts_array as $posts) {
        
$reemplaza[get_the_title($posts->ID)] = '<a href="' get_permalink($posts->ID) . '" title="' $posts->post_content .'">' get_the_title($posts->ID) . '</a>';
    }
    
$patterns array_keys($reemplaza);
    
$pattern_final = array();
    foreach (
$patterns as $pattern) {
        
$pattern_final[] = '/(?<=\s|^)' $pattern '(?=\s|\.|\,|$)/i';
    }
    
$cadena preg_replace($pattern_final$reemplaza$cadena1);
    return 
$cadena;
}
 
add_filter('the_content''reemplazar'); 
Como podria hacer para que no buscara dentro del atributo title de estos links? Lo unico que se me ocurre es hacer que no busque en los textos que estan entre comillas, pero como?

Gracias a todos