为什么PhotoSmash插件不能很好地与wp_Query配合使用?

时间:2011-01-11 作者:Carson

我正在使用PhotoSmash 该插件允许用户上传自己的图片并对其进行投票,效果非常好。在我的一个页面上,我使用以下代码列出了具有特定类别的帖子:

    <?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)
?>
这也很好,除非Photomash插件被激活。我得到以下错误:

致命错误:在nas-001\\winspace004\\10-3mpromos中的非对象上调用成员函数get()。ca\\www\\carcrazy\\wp includes\\query。php在线27

第27行是return $wp_query->get($var); 这个问题在bwb photosmash中的某个地方。php在插件的主文件夹中,但我不知道在哪里。还有其他人遇到过这个问题吗?

1 个回复
最合适的回答,由SO网友:Rarst 整理而成

没有必要耍花招$wp_query 对象,将其存储在temp中,等等。除非您绝对需要,否则直接处理重要的全局变量很少是个好主意。

您只需创建自己的任意变量并用new初始化即可WP_query

$some_variable = new WP_Query($args);
等等。

也别忘了用wp_reset_query().

结束

相关推荐

向edit.php添加多个支持搜索的分类筛选器

读完Mike Schinkel的精彩教程后:Adding a Taxonomy Filter to Admin List for a Custom Post Type?我发现了一些需要解决的问题。应用自定义分类筛选时,搜索似乎无法正常工作。此外,如果我输出了多个自定义分类法过滤器下拉列表,那么防止用户为多个下拉列表指定值的最佳方法是什么?我想我应该添加一个JavaScript函数,但它可能必须是动态生成的JavaScript函数。不过,我真的想先解决搜索问题。有什么想法吗?谢谢你的帮助,戴夫·莫里斯