Pregunta

Estoy utilizando el PhotoSmash plugin para permitir a los usuarios subir sus propias imágenes y voto en ellos, y funciona muy bien. En una de mis páginas utilizo el código siguiente para enumerar los mensajes que tienen una determinada categoría:

    <?php
if (is_page() ) {
$category = get_post_meta($posts[0]->ID, 'category', true);
}
if ($category) {
  $cat = get_cat_ID($category);
  $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
  $post_per_page = -1; // -1 shows all posts
  $do_not_show_stickies = 1; // 0 to show stickies
  $args=array(
    'category__in' => array($cat),
    'orderby' => 'date',
    'order' => 'ASC',
    'paged' => $paged,
    'posts_per_page' => $post_per_page,
    'caller_get_posts' => $do_not_show_stickies
  );
  $temp = $wp_query;  // assign orginal query to temp variable for later use   
  $wp_query = null;
  $wp_query = new WP_Query($args); 
  if( have_posts() ) : 
        while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
        <section class="vote6" id="post-<?php the_ID(); ?>">
          <?php the_content(); ?>
          <section class="voter">
              <?php DisplayVotes(get_the_ID()); ?>
          </section>
        </section>
    <?php endwhile; ?>
  <?php else : ?>

        <h2 class="center">Not Found</h2>
        <p class="center">Sorry, but you are looking for something that isn't here.</p>
        <?php get_search_form(); ?>

    <?php endif; 

    $wp_query = $temp;  //reset back to original query

}  // if ($category)
?>

Esto funciona muy bien también, excepto cuando se activa el plugin PhotoSmash. Me sale el siguiente error:

Fatal error: llamada a un get función miembro () en un no-objeto en \ nas-001 \ winspace004 \ 10-3mpromos.ca \ www \ carcrazy \ wp-incluye \ query.php en la línea 27

La línea 27 es return $wp_query->get($var); La cuestión es en algún lugar dentro de BWB-photosmash.php en la carpeta principal del plugin, pero no puedo averiguar dónde. Alguien más ha encontrado con este problema?

¿Fue útil?

Solución

No hay necesidad de objeto $wp_query malabares, almacenarlo en temperatura, etc. Rara vez es buena idea directamente meterse con importantes variables globales, a menos que sea absolutamente necesario.

Sólo puede crear su propia variable arbitraria e init con nueva WP_query

$some_variable = new WP_Query($args);

y así sucesivamente.

Además, no se olvide de la limpieza después de la wp_reset_query() .

Licenciado bajo: CC-BY-SA con atribución
scroll top