Como simplificar codigo repetitivo

Inicio Foros WordPress Programación Como simplificar codigo repetitivo

Etiquetado: , ,

Este debate contiene 6 respuestas, tiene 3 mensajes y lo actualizó  LGrusin hace 4 años, 10 meses.

  • Autor
    Publicaciones
  • #73966

    sergiofores
    Participante

    Hola,
    en category.php
    tengo el codigo que os pego más abajo. Mi pregunta es si alguien sabe un modo de hacer esto mismo pero de forma más limpia, con menos codigo vamos. He buscado en el codex pero no encuentro lo que busco. No soy programador pero me gustaría tener el codigo más simple.

    ¿Alguien me puede dar una pista?
    Gracias.

    if ( is_category('cat-1') ) {
    $the_query = new WP_Query( array ( 'post_type' => 'mueble', 'category_name' => 'cat-1' , 'posts_per_page' => 3 ) ) ;
    }
    if ( is_category('cat-2') ) {
    $the_query = new WP_Query( array ( 'post_type' => 'mueble', 'category_name' => 'cat-2' , 'posts_per_page' => 3 ) ) ;
    }
    if ( is_category('cat-3') ) {
    $the_query = new WP_Query( array ( 'post_type' => 'mueble', 'category_name' => 'cat-3' , 'posts_per_page' => 3 ) ) ;
    }
    ...

  • #73968

    Alessandro Degiusti
    Participante

    Puedes probar con concatenación, o quizás creando una función que resuma todo ese código.

    Saludos!

  • #73972

    LGrusin
    Miembro

    Para este tipo de cosas ayuda bastante la función get_template_part. Creo que una de las intenciones de WordPress al incorporar esta función fue la de simplificar tanto código a la vez que permitía modificar los themes a usuarios sin conocimiento de código.

    El inconveniente es que esta filosofía no la comparten algunos usuarios o les parece más complicado. Aquí hay un ejemplo https://ayudawp.com/foros/hilo/necesito-la-fecha-y-autor-por-categorias-ando-desesperada/#post-73795

    Un saludo

  • #73973

    sergiofores
    Participante

    Gracias por las respuestas,
    no sé si estoy pidiendo demasiado pero no soy programador y no sé como crear una función para ello.
    Si alguien se siente generoso y me quiere dar esa función le estaré muy agradecido.

    Me imagino desde mi ignorancia que sería algo así:

    category.php
    $lacategoria = get category ID (obtener dinamicamente el nombre de la categoria en la que se está)
    Luego asignar
    ‘category_name’ => ‘$lacategoria’…

    Un saludo!

  • #73974

    LGrusin
    Miembro

    Me he explicado fatal…

    Lo que quiero decir es que para mostrar contenido diferente en cada categoría sólo tienes que crear un archivo por categoría, o plantillas. Ejemplos: category-primera.php, category-segunda.php, category-
    tercera.php, etc. Cada una se puede personalizar diferente.

    Con los Custom Post Types también es posible hacerlo. http://codex.wordpress.org/Template_Hierarchy

    Esto me parece mucho más limpio que llenar de IF el código.

    Un saludo

  • #73976

    sergiofores
    Participante

    Si, gracias LGrusin, ya pensé en ello, el problema es que tengo 30 categorías en mi proyecto y si tengo que crear 30 archivos *.php vuelvo a estar en las mismas. Por eso decidí crear un solo category.php y meter ahi los IF.

    global $post;
    $category = get_the_category($post->ID);
    $current_cat = $category[0]->cat_name; //This will get me the first category assigned to the current post but since every post has only ONE cat. assigned to, it’s good enough

    He encontrado esto pero no identifica la categoría en la que estoy: bfff!

    global $post;
    $category = get_the_category($post->ID);
    $current_cat = $category[0]->cat_name; //This will get me the first category assigned to the current post but since every post has only ONE cat. assigned to, it's good enough

  • #73991

    LGrusin
    Miembro

    Según entendí sólo quieres modificar 3 categorías, el resto de categorías utilizan el archivo category.php y no necesitan modificarse. Si es otro planteamiento el que quieres hacer habrá que pensarse una solución intermedia, bien sea con código sólo, añadiendo archivos o una mezcla de las dos opciones.

    Dependerá de lo que quieras hacer.

    Sobre el código anterior, creo que no funciona porque no identifica el post actual al tener su propio Custom Post Type (mueble). ¿Muestra la categoría con otros posts que no pertenezcan al Custom Post Type mueble? La cosa puede complicarse si además un post pertenece a varias categorías.

    Al final el código inicial que tenías y querías simplificar no estaba tan mal para estos casos… 😉

    Un saludo

El foro ‘Programación’ está cerrado y no se permiten nuevos debates ni respuestas.

Pin It on Pinterest