Problema con un loop

Inicio Foros WordPress Programación Problema con un loop

Etiquetado: ,

Este debate contiene 6 respuestas, tiene 2 mensajes y lo actualizó  fmoroso hace 7 años, 2 meses.

  • Autor
    Publicaciones
  • #22555

    fmoroso
    Participante

    <p>Para hacer un slideshow con imágenes de ciertos post como "Noticias" use Custom Post Type para ingresas post de esa forma cuando quiero que se vea en el slideshow. Para ello use llamadas a la base de datos de la forma correspondiente a los custom post type. </p>
    <p>Esas llamadas para ser útiles obviamente llevaban su respectivo while, su loop con su correspondiente inicio y término… bien hecho.</p>
    <p>El problema fue a la hora de usar otros loops para mostrar el contenido de las paginas… no me muestra el contenido (con the_content()) de la pagina si no que me muestra el contenido de la query anterior, o sea, los post de tipo noticias.</p>
    <p>No se si se debe resetear la query anterior, o hacer otra, etc…</p>
    <p>La versión de WordPress es 3.2 y el tema es Twentyten.</p>
    <p>Saludos…
    </p>

  • #55802

    LGrusin
    Miembro

    Depende de cómo hayas hecho la consulta. query_posts y get_posts eliminan la consulta anterior. Podrías guardar la consulta previa, realizar la nueva consulta y al terminar volver a reponer la consulta como estaba.

    Si es con query_posts

    $temp_query = clone $wp_query; // guardas consulta anterior

    ….código nueva consulta…. // realizas la nueva consulta

    $wp_query = clone $temp_query; // al terminar repones la consulta anterior

    Lo mismo si es con get_posts

    $tmp_post = $post;

    y al final

    $post = $tmp_post;

    Saludos

  • #55810

    fmoroso
    Participante

    <?php global $wp_query;
    $wp_query = new WP_Query(array(‘post_type’ => ‘eventobanners’,
    ‘paged’ => $paged,
    ‘posts_per_page’ => 3,
    ‘orderby’ => ‘date’,
    ‘order’ => ‘DESC’)
    );
    $num = 0;
    ?>

    <?php while ($wp_query->have_posts()) : $wp_query->the_post();
    $dat = get_post_meta( $post->ID, ‘eventobanners’, true );
    $num = $num +1;

    etc etc

    Ese es el query.

    EL tema es que luego aunque haga otra llamada, lo que me muestra es la info del query que describo, ahora probaré lo que me dices a ver que tal.

  • #55813

    LGrusin
    Miembro

    Si es con WP_Query no es necesario hacer lo anterior. Cambia la variable $wp_query por cualquier otro nombre. Por ejemplo, $mi_query

    $mi_query = new WP_Query(array(‘etc etc etc….’…

    <?php while ($mi_query->have_posts()) etc etc

    Si aun así sigue sin restaurar el query anterior lo puedes forzar poniendo al final después del bucle while wp_reset_postdata(); tal como pone en el [url=http://codex.wordpress.org/Class_Reference/WP_Query#Usage]CODEX[/url]

    El global $wp_query; tampoco debería existir porque quieres hacer una consulta diferenciada y no global.

    Un saludo

  • #55820

    fmoroso
    Participante

    Es increíble como cada problema que tengo me lo terminas solucionando tu.

    Muchas gracias.

  • #55830

    LGrusin
    Miembro

    Prometo no responderte más… 😉

    Recuerda cerrar el hilo.

    Saludos

  • #56003

    fmoroso
    Participante

    ajajjajajja Sigue respondiendo no más ¬¬ ajajj

    Saludos

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

Pin It on Pinterest

Ir al contenido