2013-07-11 4 views
1

Прежде всего, я был повсюду в Google, StackExchange и Codex, но до сих пор не могу решить мою проблему. Это может быть просто; Я не уверен. У меня есть следующая функция, в которой перечислены пользовательские сообщения. На странице есть несколько запросов, но только один (этот) использует разбиение на страницы. Он находится на первой странице, который установлен на статический.Я не могу получить ссылку на предыдущие сообщения, чтобы показать

Вот функция:

function wight_listings() 
{ 
    global $wp_query; 
    global $page; 

    $backup = $wp_query; 
    $wp_query = NULL; 
    $cur_page = $page; //get_query_var('page') ? get_query_var('page') : 1; 

    $args = array(
      'post_type' => array('wight_listing'), 
      'posts_per_page' => 7, 
      'paged'=>$cur_page 
     ); 
    $wp_query = new WP_Query($args); 
    ?> 
    <?php if ($wp_query->have_posts()) : ?> 
    <?php while ($wp_query->have_posts()) : $wp_query->the_post(); ?> 
     . 
     . 
     . 
    <?php endwhile; ?> 
     <div id="nav-posts" style="margin-top: .5em;"> 
      <div style="float:left;"><?php previous_posts_link('Previous Listings &laquo;'); ?></div> 
      <div style="float:right;"><?php next_posts_link('&raquo; Next Listings'); ?></div> 
      <div class="clear"></div> 
     </div> 
<?php else: ?> 
    <p>Oh no! There's nothing to show. :(</p> 
<?php endif; ?> 
<?php 
    $wp_query = NULL; 
    $wp_query = $backup; 
} 

ссылки "Далее ПРЕДЛОЖЕНИЙ показывает, вверх не связывая только стр.2 независимо от того, на какой странице я на и ссылку«Предыдущие Предложения»никогда не показывается.

Что я делаю неправильно?

WP: 3.5.2

+0

Вам не хватает открывающего и закрывающего тега php или это вопрос с копией/вставкой? – Bun

+0

Спасибо за ответ. Где именно? Я сократил функцию, потому что она довольно длинная. – Joe

+0

' Bun

ответ

1

Я нашел решение. Я заглянул в /wp-includes/link-template.php и нашел две функции, отвечающие за мои мысли. Я скопировал их на свою тему и немного изменил, и все работает фантастически.

function wight_get_previous_posts_page_link($cur_page) 
{ 
    if ($cur_page > 1) 
    { 
     $nextpage = intval($cur_page) - 1; 
     if ($nextpage < 1) 
      $nextpage = 1; 
     return '<a href="' . get_pagenum_link($nextpage) . '">&laquo; Previous Listings</a>'; 
    } 
} 

function wight_get_next_posts_page_link($cur_page, $max_page) 
{ 
    $paged = $cur_page; 

    if (!$paged) 
     $paged = 1; 
    $nextpage = intval($paged) + 1; 

    if ($max_page >= $nextpage) 
     return '<a href="' . get_pagenum_link($nextpage) . '">Next Listings &raquo;</a>'; 

} 

Использовал те вместо прежних_posts_link и next_posts_link.

<?php echo wight_get_previous_posts_page_link($cur_page); ?> 
<?php echo wight_get_next_posts_page_link($cur_page, $query->max_num_pages); ?> 
+0

Хорошо сделано для возврата и отправки вашего ответа и объяснений. Помните, что вы должны принять свой собственный ответ, чтобы показать, что он был решен - вот как принять и ответить. http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work Добро пожаловать в SO :) – McNab

+0

О, круто. Спасибо! Я принял это. – Joe

Смежные вопросы