2012-07-11 77 views
1

爲WordPress的腦袋有一個快速的問題...WordPress的分頁的簡碼

Ive得到了目前進口的所有帖子從某一個崗位類型簡碼。然而,我無法將分頁添加到wp_query。

爲了解釋一次這個代碼的功能,我把[feed type =「attractions」limit =「2」]放在頁面上,它根據景點顯示2個帖子,但是它沒有分頁。只是想知道什麼即時做錯準確...

繼承人的代碼! --->

function section_feed_shortcode($atts) { 
    extract(shortcode_atts(array('limit' => -1, 'type' => 'post'), $atts)); 

    $q = new WP_Query( array ('posts_per_page' => $limit, 'post_type' => $type, order => 'ASC', orderby =>'menu_order', 'paged' => get_query_var('page') )); 

    $list = ' '; 

    while ($q->have_posts()) { $q->the_post(); 

     $list .= '<article class="listing-view clearfix">' 
     . '<div class="listing-content">' 
     . '<h3>' . get_the_title() . '</h3>' 
     .'<p>' . get_the_excerpt() . '</p>' 
     . '<a href="' . get_permalink() . '">' . 'View &raquo;' . '</a>' 
     . '</div>' 
     . '<a class="listing-thumb" href="' . get_permalink() . '">' . get_the_post_thumbnail($page->ID, 'listing-thumb') . '<span></span></a>' 
     . '</article>'; 
    } 

    wp_reset_query(); 

    return 
    '<div class="listings clearfix">' 
    . $list 
    . '<div class="nav-previous">' . next_posts_link(__('<span class="meta-nav">&larr;</span> Older posts', 'stratford_wp')) . '</div>' 
    . '<div class="nav-next">' . previous_posts_link(__('Newer posts <span class="meta-nav">&rarr;</span>', 'stratford_wp')) . '</div>' 
    . '</div>'; 
} 
add_shortcode('feed', 'section_feed_shortcode'); 

感謝您的提問!

回答

-1

你需要添加全球$分頁,然後你的數組被傳遞給WP_Query你需要添加「分頁」 => $分頁

您的查詢應該這樣。

global $paged 
$q = new WP_Query( array ('posts_per_page' => $limit, 'post_type' => $type, order => 'ASC', orderby =>'menu_order', 'paged' => $paged )); 
+0

可惜,這似乎並沒有改變任何東西中調用它。它並不是分頁不起作用......當我輸入url和「/ page/2」時,它顯示下一組帖子,但get_next_posts_link和上一個鏈接似乎沒有任何東西。 – Aaron 2012-07-12 09:09:31

0

您正在重置您的查詢,然後再進入下一個/上一個鏈接。如果將wp_reset_query()函數進一步向下移動,會發生什麼?

此外,您還可能有更多的運氣與此有關http://wordpress.stackexchange.com

+0

感謝道爾頓,試着移動重置功能,這沒有效果。 我已轉貼此http://wordpress.stackexchange.com/questions/58880/shortcode-displaying-custom-post-types 感謝您的幫助。 – Aaron 2012-07-18 14:15:01

2

今天面對這一問題,得到了一個解決方案:

global $paged 
$q = new WP_Query( array ('posts_per_page' => $limit, 'post_type' => $type, order => 'ASC', orderby =>'menu_order', 'paged' => $paged )); 

然後,你必須改變paginate_links查詢您的自定義後。請參見wp codex示例。你可以更好的添加功能和wp_reset_query()之前和函數使用

$big = 999999999; // need an unlikely integer 
echo paginate_links(array(
    'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))), 
    'format' => '?paged=%#%', 
    'current' => max(1, get_query_var('paged')), 
    'total' => $q->max_num_pages //$q is your custom query 
));