2012-02-10 4 views
0

Я создаю шаблон Wordpress для запросов к своим пользовательским сообщениям типа post с помощью tax_query. Он работает нормально, и я получаю правильные сообщения на странице # 1, но я вижу те же сообщения, что и на странице # 1, когда я нажимаю на странице # 2. Что я здесь пропустил? Заранее спасибо.Wordpress tax_query и проблема с разбивкой по страницам

<?php 

get_header(); 
?> 

<h1><?php 
the_title(); 
?></h1> <hr> <br> 
<div id="content" class="three_fourth <?php 
echo of_get_option('blog_sidebar_pos'); 
?>"> 
     <?php 

?> 
    <?php 
$temp  = $wp_query; 
$wp_query = null; 
$wp_query = new WP_Query(); 
$page  = (get_query_var('paged')) ? get_query_var('paged') : 1; 
$args  = array(
    'tax_query' => array(
     array(
      "taxonomy" => "wpdic-category", 
      "field" => "slug", 
      "terms" => "featured-charities", 
      "numberposts" => 5, 
      "paged" => $paged 
     ) 
    ) 
); 


$wp_query = new WP_Query($args); 
?> 
    <?php 

if ($wp_query->have_posts()): 
    while ($wp_query->have_posts()): 
     $wp_query->the_post(); 
?> 
    <article id="post-<?php 
     the_ID(); 
?>" <?php 
     post_class(); 
?>> 
     <header> 
     <h2><a href="<?php 
     the_permalink(); 
?>" title="<?php 
     the_title(); 
?>" rel="bookmark"><?php 
     the_title(); 
?></a></h2> 

     <?php 
     $post_meta = of_get_option('post_meta'); 
?> 
     <?php 
     if ($post_meta == 'true' || $post_meta == '') 
      { 
?> 
      <div class="post-meta"> 
      <div class="fleft"></div> 
      <div class="fright"></div> 
      </div><!--.post-meta--> 
     <?php 
      } 
?>  
     </header> 
     <?php 
     $post_image_size = of_get_option('post_image_size'); 
?> 
     <?php 
     if ($post_image_size == '' || $post_image_size == 'normal') 
      { 
?> 
     <?php 
      if (has_post_thumbnail()) 
       { 
       echo '<a href="'; 
       the_permalink(); 
       echo '">'; 
       echo '<div class="featured-thumbnail"><div class="img-wrap">'; 
       the_post_thumbnail(); 
       echo '</div></div>'; 
       echo '</a>'; 
       } 
?> 
     <?php 
      } 
     else 
      { 
?> 
     <?php 
      if (has_post_thumbnail()) 
       { 
       echo '<a href="'; 
       the_permalink(); 
       echo '">'; 
       echo '<div class="featured-thumbnail large"><div class="img-wrap"><div class="f-thumb-wrap">'; 
       the_post_thumbnail('post-thumbnail-xl'); 
       echo '</div></div></div>'; 
       echo '</a>'; 
       } 
?> 
     <?php 
      } 
?> 

     <div class="post-content"> 

     <?php 
     $post_excerpt = of_get_option('post_excerpt'); 
?> 
     <?php 
     if ($post_excerpt == 'true' || $post_excerpt == '') 
      { 
?> 
      <div class="excerpt"><?php 
      $excerpt = get_the_excerpt(); 
      echo my_string_limit_words($excerpt, 52); 
?></div> 
     <?php 
      } 
?> 
     <div id="widget_my_contentwidget"><ul><li><a class="link" href="<?php 
     the_permalink(); 
?>"> read more</a></li></ul></div> 
<hr> 
     </div> 
    </article> 

    <?php 
    endwhile; 
else: 
?> 
    <div class="no-results"> 
     <p><strong>There has been an error.</strong></p> 
     <p>We apologize for any inconvenience, please <a href="<?php 
    bloginfo('url'); 
?>/" title="<?php 
    bloginfo('description'); 
?>">return to the home page</a> or use the search form below.</p> 
     <?php 
    get_search_form(); 
?> <!-- outputs the default Wordpress search form--> 
    </div><!--noResults--> 
    <?php 
endif; 
?> 

    <?php 
if (function_exists('wp_pagenavi')): 
?> 
     <?php 
    wp_pagenavi(); 
?> 
    <?php 
else: 
?> 
    <?php 
    if ($wp_query->max_num_pages > 1): 
?> 
     <nav class="oldernewer"> 
     <div class="older"> 
      <?php 
     next_posts_link('&laquo; Older Entries'); 
?> 
     </div><!--.older--> 
     <div class="newer"> 
      <?php 
     previous_posts_link('Newer Entries &raquo;'); 
?> 
     </div><!--.newer--> 
     </nav><!--.oldernewer--> 
    <?php 
    endif; 
?> 
    <?php 
endif; 
?> 
    <!-- Page navigation --> 

    <?php 
$wp_query = null; 
$wp_query = $temp; 
?> 

<div id="footer"> 
<div class="clearfix"> 
    <?php 
if (!dynamic_sidebar('Footer Content')): 
?> 
     <?php 
endif; 
?></div></div> 

</div><!--#content--> 



<?php 
get_footer(); 
?> 

ответ

0

wp_pagenavi() будет работать с глобальным $ WP_Query по умолчанию; если вы хотите постраничной некоторый пользовательский запрос вы должны передать его в качестве параметра, например:

wp_pagenavi(array('query' => $mycustomquery)); 
0

Я сталкивался с такой же проблемой раньше. По некоторым причинам я не могу заставить WP запрос работать, но вместо этого я использовал query_posts. Вот код

<?php 

/** 
* @author MESMERiZE 
* @copyright 2012 
*/ 
$page  = (get_query_var('paged')) ? get_query_var('paged') : 1; 
$args  = array(
    'tax_query' => array(
     array(
      "taxonomy" => "wpdic-category", 
      "field" => "slug", 
      "terms" => "featured-charities", 
      "numberposts" => 5, 
      "paged" => $paged 
     ) 
    ) 
); 
query_posts($args); 
while(have_posts()): the_post(); 

endwhile; 
?> 

Затем я добавил функцию wp pagenavi после ключевого слова endwhile.

if (function_exists('wp_pagenavi')) { 
wp_pagenavi();} 
Смежные вопросы