¿Es posible hacer que los códigos cortos NO distingan entre mayúsculas y minúsculas?

2

Me preguntaba si es posible hacer que el shortcode no distinga entre mayúsculas y minúsculas, debería ser bastante sencillo pero quiero:

[test=1] 

para trabajar mientras se escribe como

[TeST=1], [TEST=1] 

Y si es así, ¿cómo lo hago?

    
pregunta Thovex 14.10.2013 - 12:04

2 respuestas

3

Aquí hay otra idea simple para un shortcode que no distingue mayúsculas y minúsculas :

/**
 * Make a shortcode case insensitive via the the_content filter
 *
 * @param string $content
 * @return string $content
 */
function my_case_insensitive_shortcode( $content )
{
    $sc   = 'test'; // Edit this shortcode name to your needs

    $from = '['. $sc ; 
    $to   = $from;

    if( stristr( $content, $from ) )    
        $content = str_ireplace( $from, $to, $content );

    return $content;

}

add_filter( 'the_content', 'my_case_insensitive_shortcode', 10 );

También puede usar preg_replace() , si necesita reemplazos más precisos.

Ejemplo:

Escribiendo esto en el editor de posts

[test id="1"]

[tEsT id="2"]

[TeSt id="3"]

proporciona la siguiente salida antes de que se active el filtro do_shortcode con prioridad 11 :

[test id="1"]

[test id="2"]

[test id="3"]
    
respondido por el birgire 14.10.2013 - 13:46
1

Si está hablando de un código corto que ha creado usted mismo, tendría que registrar todas las posibilidades del caso.

Si desea que todos los códigos cortos sean insensibles a mayúsculas y minúsculas, tendría que modificar el código de manejo de códigos breves en las funciones principales de Wordpress (o anularlo, supongo ...)

Esta pregunta ¿Los códigos cortos distinguen entre mayúsculas y minúsculas? contiene información sobre las funciones necesarias tendrías que modificar.

    
respondido por el Matt 14.10.2013 - 12:17

Lea otras preguntas en las etiquetas