Etiqueta: php

  • Funciones útiles para manipulación de textos en WordPress

    Funciones útiles para manipulación de textos en WordPress

    Voy a empezar intentar escribir una serie de posts donde voy a explicar algunas funciones útiles que siempre me vienen bien cuando tengo que programar a medida plugins o themes para WordPress.

    Puede que no necesites ni eso, que simplemente el propio WordPress ya tenga esa función (o parecida) que te facilite no tener que reinventar la rueda. Lo de DRY, os suena, verdad? 🙂

    Hacer clicable cualquier URL

    En varias situaciones, por ejemplo, en algún loop he tenido un texto que necesitaba mostrar sin formato de forma simple pero manteniendo las URL o emails con su enlace correspondiente.

    Para ello tenemos la función make_clickable() que convierte cualquier URL completa en un enlace donde poder hacer clic.

    $string = "This is a long text that contains some links like http://www.wordpress.org and http://www.wordpress.com .";
    echo make_clickable( $string );
    Lenguaje del código: PHP (php)

    Ofuscar una dirección email

    Una tarea habitual y para evitar los cansinos spammers de turno es poder ofuscar cualquier dirección de correo para así evitarlos.

    La función antispambot() hace ese trabajo, simplemente pasando un string te ofusca aleatoriamente diferentes caracteres para que mientras el código sea poco legible y lo que aparezca en pantalla cualquier humano pueda leerlo.

    echo '<a href="mailto:'. antispambot( 'hola@dominio.com' ) . '">Contactar</a>';
    Lenguaje del código: PHP (php)

    El código sería algo así:

    Y el resultado:

    <a href="mailto:hola@dominio.com">Contactar</a>
    Lenguaje del código: HTML, XML (xml)

    Limitar palabras de una cadena de texto

    Esta función es, wp_trim_words() de las más útiles en cuanto a sacar texto y poder limitarlo. Te permite recortar un texto a número determinado de palabras y añadir un «leer más» o los «…» sin cortar por la mitad ninguna palabra.

    Me ha venido bien en algunos diseño imposibles con los que he tenido que pelearme alguna vez donde deben encajar un título y un Excerpt particular 🙂

    $long_long_long_text = 'Lorem fistrum sexuarl ahorarr torpedo al ataquerl la caidita qué dise usteer caballo blanco caballo negroorl está la cosa muy malar tiene musho peligro condemor.";
    
    echo wp_trim_words( $long_long_long_text, 5, '[...]' );
    Lenguaje del código: PHP (php)

    Este código daría como resultado un texto así recortando en la 5 palabra:

    Lorem fistrum sexuarl ahorarr torpedo […]

    Escribe correctamente WordPress

    En la comunidad de WordPress somos muy puntillosos con la forma correcta de escribir su nombre. Tal es el caso que no podrás escribir wordpress en minúscula, por ejemplo, y sin que salga bien en el frontend 😀

    La función capital_P_dangit() reescribe correctamente cualquier aparición de la palabra WordPress ya sea en títulos, contenido o incluso el texto de los comentarios.

    Pero por si se os escapa en algún texto on filtrado siempre podreis añadirla.

    <?php capital_P_dangit( $some_text ); ?> 
    Lenguaje del código: HTML, XML (xml)

    Estas son solo algunas funciones incluidas en WordPres que nos pueden facilitar la vida, pero hay más, si conocéis alguna que vale la pena comentar no dudéis en dejarla en los comentarios 🙂

    Mención especial a Chiquito Ipsum para generar esos textos de relleno que muchas veces nos hacen falta.

  • Filtrar post types en la búsqueda de WordPress

    Filtrar post types en la búsqueda de WordPress

    A veces necesitamos filtrar en el buscador que tipos de posts deben aparecer, con esta sencilla función puedes filtrar cada tipo.

    En el ejemplo utilizamos el filtro de ‘pre_get_posts’ que se ejecuta antes de cualquier petición de query en WordPress, lo único que hay que haces es comprobar si estamos en los resultados de búsqueda y en ese caso reemplazar la key «post_type» en el query actual y pasar un array (o string con un post type único) con los tipos de post que queremos que solo aparezcan, y listo.

    function cabans_pre_get_posts_filters( $query ) {
        
        if ( $query->is_search && !is_admin() ) {
            $query->set( 'post_type', array( 'post', 'product' ) );
        }
        
        return $query;
        
    }
    add_filter( 'pre_get_posts', 'cabans_pre_get_posts_filters' );Lenguaje del código: PHP (php)

    Un snippet rápido que nos puede ayudar en más de un proyecto.

  • Elimina párrafos vacíos en WordPress

    Si hay algo en que WordPress suele dar muchisima guerra cuando empiezas a usarlo y a desarrollar cosas con el, son los malditos  párrafos en blanco que aparecen en cualquier tipo de post en al usar la función the_content() por ejemplo.

    He creado alguna función para esto, adoptado varias pero la definitiva que me ha dado el funcionamiento que quiero y que elimina párrafos vacíos en Wordpress de forma eficiente es la siguiente.

    https://gist.github.com/ninnypants/1668216

    Espero que os sirva como me sirve a mi.