Programación

Foro WordPress » WordPress » Programación

Filtrar post que comiencen con una letra especifica (9 mensajes)

Acerca de este hilo

Tags

Etiquetas:

No hay tags todavía.

  1. ironweb

    2.0
    Antiguedad: Sep 2010
    Mensajes: 7

    offline

    Publicado hace 1 año
    #

    Hola...

    Yo quiero mostrar los post que comiencen con una letra especifica.

    La idea es crear un listado de post por letras.

    Ya tengo listo el codigo para mostrar solo los titulos de los post, solo me falta filtrarlo para que revise el primer caracter del titulo del post y si cumple con la condición (que sea igual a "A" por ejemplo) lo muestre.

    Conozco poco de programación.

    Si alguien puede decirme como hacerlo, se lo agraddecería en el alma.

    Saludos y gracias!

  2. Sanchez Toledano

    3.0
    Antiguedad: Sep 2010
    Mensajes: 21

    offline

    Publicado hace 1 año
    #

    Puedes empezar, considerando este plugin: http://www.nateomedia.com/wares/downloads/wordpress/wp-snap/

    Los expertos en WordPress usamos Movable Type
  3. ironweb

    2.0
    Antiguedad: Sep 2010
    Mensajes: 7

    offline

    Publicado hace 1 año
    #

    No quiero usar un plugin, ya he tocado parte del codigo php.

    Por ejemplo al seleccionar alguna categoria o tags se muestran solo los titulos de los post ordenados de manera alfabetica y asi otras cosas.

    Lo que quiero esa una instrucción para filtrar al momento de mostrar los titulos de los posts.

    Gracias!

  4. Lluna

    Moderador
    Antiguedad: Jun 2009
    Mensajes: 859

    offline

    Publicado hace 1 año
    #

    Buenas, lo que tienes que hacer es usar el filtro posts_where dentro de la plantilla añadiendo algo así como "(wp_posts.post_title like '".$letra."%')"

    Saludos

  5. metacortex

    5.0
    Antiguedad: Jun 2009
    Mensajes: 193

    offline

    Publicado hace 1 año
    #

    ironweb escribió:

    Lo que quiero esa una instrucción para filtrar al momento de mostrar los titulos de los posts.

    Eso suena a "pásenme el código listo para copiar y pegar", lo cual es muy difícil que consigas en ésta u otra comunidad. Este foro, por ejemplo, se llama "Programación", no "Menú à la Carte", lo cual significa que estás frito si en un futuro no muestras código (bueno o malo) antes que cualquier cosa.

    En cuanto a tu caso, te adelanto que no se trata de una simple instrucción de 3 o 4 líneas, sino de algo más (o mejor dicho bastante más). A continuación una lista básica de lo que se requiere para tal fin:

    1) Convertir el título en un array de caracteres para tomar la primera letra. (implode)
    2) Limpiar esa primera letra de caracteres extraños y borrar signos no alfabéticos (preg_replace, strtr)
    3) Orientar el query a dicho resultado.

    Te dejo un código que hice para construir un glosario. No se adapta 100% a lo que quieres puesto que éste hace un insert en una tabla nueva, pero sin duda puedes tomarlo como ejemplo para este caso. De hecho puedes usarlo si le aplicas unas mínimas modificaciones orientadas a la línea que te dejó Lluna en su último post:

    $reemplazos = array(
    	'Š'=>'S', 'Ž'=>'Z', 'Č'=>'C', 'À'=>'A', 'Á'=>'A', 'Â'=>'A', 'Ã'=>'A', 'Ä'=>'A', 'Å'=>'A', 'È'=>'E', 'É'=>'E', 'Ê'=>'E', 'Ë'=>'E', 'Ì'=>'I', 'Í'=>'I', 'Î'=>'I', 'Ï'=>'I', 'Ò'=>'O', 'Ó'=>'O', 'Ô'=>'O', 'Õ'=>'O', 'Ö'=>'O', 'Ù'=>'U', 'Ú'=>'U', 'Û'=>'U', 'Ü'=>'U', 'Ý'=>'Y', 'š'=>'s', 'ž'=>'z', 'č'=>'c', 'à'=>'a', 'á'=>'a', 'â'=>'a', 'ã'=>'a', 'ä'=>'a', 'å'=>'a', 'è'=>'e', 'é'=>'e', 'ê'=>'e', 'ë'=>'e', 'ì'=>'i', 'í'=>'i', 'î'=>'i', 'ï'=>'i', 'ò'=>'o', 'ó'=>'o', 'ô'=>'o', 'õ'=>'o', 'ö'=>'o', 'ù'=>'u', 'ú'=>'u', 'û'=>'u', 'ü'=>'u', 'ý'=>'y', '1'=>'#', '2'=>'#', '3'=>'#', '4'=>'#', '5'=>'#', '6'=>'#', '7'=>'#', '8'=>'#', '9'=>'#', '0'=>'#',
    );
    
    $permitidos = implode( '' , array_keys($reemplazos) );
    $texto = str_replace('¡' , '' , $_POST['titulo']);
    $txt = preg_replace('/^([^a-zA-Z'. $permitidos .']+)/', '', $texto);
    
    $alfa = strtr($txt , $reemplazos);
    $alfa = strtoupper($alfa);
    $alfa = $alfa[0];
    
    $con_bd = 'INSERT INTO ' . $vars['tabla'] . ' (alpha) VALUES ("'. mysql_real_escape_string($alfa) .'")';
    

    Desde luego aquí se trabaja con $_POST porque el proyecto para el que lo construí era otro. Todo lo que debes hacer es una consulta de los posts que necesitas (es decir, query_posts, get_posts, WP_Query) y reventar ese array en el primer caracter de cada elemento, suprimiendo los símbolos no alfabéticos (esto quiere decir que tendrás que pasar la lista previamente por el strtr).

  6. metacortex

    5.0
    Antiguedad: Jun 2009
    Mensajes: 193

    offline

    Publicado hace 1 año
    #

    El CSS de este foro oculta el código. Lo subí aquí:

    http://pastebin.com/aCM84pMf

  7. skozz

    4.0
    Antiguedad: Sep 2010
    Mensajes: 77

    offline

    Publicado hace 1 año
    #

    ironweb escribió:
    Lo que quiero esa una instrucción para filtrar al momento de mostrar los titulos de los posts.

    Eso suena a "pásenme el código listo para copiar y pegar", lo cual es muy difícil que consigas en ésta u otra comunidad. Este foro, por ejemplo, se llama "Programación", no "Menú à la Carte", lo cual significa que estás frito si en un futuro no muestras código (bueno o malo) antes que cualquier cosa.

    Chapó.

  8. ironweb

    2.0
    Antiguedad: Sep 2010
    Mensajes: 7

    offline

    Publicado hace 1 año
    #

    Gracias a todos por su respuesta, pero ya me ayudaron en otraq comunidad y sin esas criticas acidas.

    Saludos!!!

    PD: nothing

  9. metacortex

    5.0
    Antiguedad: Jun 2009
    Mensajes: 193

    offline

    Publicado hace 1 año
    #

    Caramba... Lloriqueas por las 4 líneas de crítica, pero no mencionas las otras 27 de ayuda útil con código de ejemplo incluido. Así es la vida jejeje.

Responder

Debes Identificarte para publicar.

Foro WordPress » WordPress » Programación