向 WordPress 大脑提出一个简单的问题......
我有一个短代码,当前可以导入特定帖子类型的所有帖子。但是,我在向 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 »' . '</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">←</span> Older posts', 'stratford_wp' ) ) . '</div>'
. '<div class="nav-next">' . previous_posts_link( __( 'Newer posts <span class="meta-nav">→</span>', 'stratford_wp' ) ) . '</div>'
. '</div>';
}
add_shortcode( 'feed', 'section_feed_shortcode' );
感谢您的提前答复!
今天遇到这个问题并得到了解决方案:
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
) );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)