• Resuelto juanmiwordpress

    (@juanmiwordpress)


    Hola a todos, este es mi primer mensaje en los foros de WordPress y lo primero que quiero hacer es agradecer a todo el equipo de WordPress la gran labor que está haciendo, un saludo a todos desde España.Lo segundo es que no se he puesto en el sitio adecuado esta pregunta, si no es así pedir perdón al moderador 😉

    Llevo tiempo utilizando WordPress con las funciones básicas, he tenido que cambiar estilos, themes, algún funcionalidad de algún plugin pero nunca me había planteado el crear una función nueva. Os cuento lo que necesito hacer y si podéis me dais alguna pista de como hacerlo.

    Se trata de un periódico digital, tengo las entradas divididas en distintas categorías, nacionales, internacioneles…. y luego las noticias de cabecera y las noticias destacadas que las distingo porque las pongo en esa categoría. Cuando doy de alta una entrada marco por ejemplo que la noticia es nacional, destacada y debe estar en cabecera, con lo cual le marco esas tres categorías.

    A la hora de sacar las noticias en portada, tengo un sitio donde pongo la noticia de cabecera, luego otro contenedor donde saco las últimas 5 destacadas y otro contenedor donde saco la última noticia de cada categoría que yo le digo (Nacionales, internacionales, …)

    Problematica, cuando la noticia está en Cabecera, destacada y cualquie otra categoría de las que saco en portada, la misma noticia sale 3 veces en portada.

    La categoría destacadas la soluciono ponendo el offset a -1 y así no me saca la noticia que está en cabecera, ya que normalmente la noticia que está en cabecera es a la vez destacada.

    El problema que tengo es cuando saco la delas categoráis principales. Ya que aquí no puedo jugar con el offset.

    Necesito crear una función que compruebe si la noticia a poner es una de las cinco primeras de la categoría destacada (es decir que ya está en portada), si es así no sacarla como primera de la categoría nacional y pasar a la siguiente para volver a preguntarle si es una de las cinco primeras de las destacadas, así hasta dar con una que no esté en la categoría destacadas.

    Muchísimas gracias por adelantado.

    Juanmi.

Viendo 1 respuesta (de un total de 1)
  • Iniciador del debate juanmiwordpress

    (@juanmiwordpress)

    Hola a todos, ya lo he resuelto. os cuento la forma.

    He ido metiendo en un array los IDs de las noticias que voy sacando en portada:

    Aquí añado el ID de la noticia en cabecera

    <?php while ($lead_query->have_posts()) : $lead_query->the_post();
          $post_en_portada[] = (get_the_ID());
    ...
    ...

    Aquí saco las noticias que tengo en destacadas menos la que esté en cabecera y además agrego al array las que saco en destacadas, total tendrá 6 noticias:

    $featured_query = new WP_Query(array ('showposts' => prinz_get_option('prinz_featurednumber'), 'cat' => get_cat_id(prinz_get_option('prinz_featured')), 'post__not_in' => $post_en_portada ) );?>
        while ($featured_query->have_posts()) : $featured_query->the_post();
        $post_en_portada[] = (get_the_ID());

    Y ya por último saco las primeras noticias que no estén en portada de cada una de las categorias que quiero sacar, nacionales, internacionales, ….

    <?php $homecats_query = new WP_Query(array ('showposts' => prinz_get_option('prinz_homecatsnumber'), 'cat' => current($display_categories), 'post__not_in' => $post_en_portada ) ); ?>

    Saludos y muchas gracias 😉

Viendo 1 respuesta (de un total de 1)
  • El debate ‘Crear nueva función’ está cerrado a nuevas respuestas.