答案 0 :(得分:2)
我认为你的旧WordPress网址重定向的情况很糟糕。
尝试添加此过滤器以停止它:
add_filter('redirect_canonical','my_disable_redirect_canonical');
function my_disable_redirect_canonical( $redirect_url ) {
if ( is_single( 'portfolio' ) )
$redirect_url = false;
return $redirect_url;
}
答案 1 :(得分:1)
自定义帖子类型数字分页 - > http://designphiliconline.blogspot.in/2012/08/wordpress-custom-post-type-pagination.html
这适用于固定链接设置为默认值或postname
答案 2 :(得分:0)
我在Wordpress中遇到分页问题,无法修复它,所以我自己扩展了WP_Query类 - > MF_Query
只需使用MF_Query代替WP_Query,然后使用$your_query->next("Next Page")
或$your_query->prev("Previous Page")
添加下一个和上一个链接(文本有默认值,因此不需要参数。
要求您将参数作为数组直接传递给类初始化,与您使用标准WP_Query
的各种选项相对应。
这有点hacky,但它确实有效!!
答案 3 :(得分:0)
这是我将分页变量传递到CPT查询以进行导航的方式,您可以使用不同的方法来执行此操作,但这是使用WP_QUERY为我工作的唯一方法。并且不需要任何导航插件只是标准导航链接。
您应该在WP_QUERY
之前将此行放在此处 $paged = 1;
if ( get_query_var('paged') ) $paged = get_query_var('paged');
if ( get_query_var('page') ) $paged = get_query_var('page');
$temp = $wp_query;
$wp_query = null;
$wp_query = new WP_Query();
$wp_query->query('post_type=portafolio&showposts=7&orderby=post_date&order=DESC&paged='.$paged);
while ($wp_query->have_posts()) : $wp_query->the_post();
//post format
get_template_part("content");?>
<?php endwhile; ?>
//pagination links here
<?php
$wp_query = null;
$wp_query = $temp; // Reset
?>
修改循环文件后,将其添加到您的functions.php中,这是一个可以处理您的页面的变量。
function paginate() {
global $wp_query, $wp_rewrite;
$wp_query->query_vars['paged'] > 1 ? $current = $wp_query->query_vars['paged'] : $current = 1;
$pagination = array(
'base' => @add_query_arg('page','%#%'),
'format' => '',
'total' => $wp_query->max_num_pages,
'current' => $current,
'show_all' => true,
'type' => 'plain'
);
if ( $wp_rewrite->using_permalinks() ) $pagination['base'] = user_trailingslashit( trailingslashit( remove_query_arg( 's', get_pagenum_link( 1 ) ) ) . 'page/%#%/', 'paged' );
if ( !empty($wp_query->query_vars['s']) ) $pagination['add_args'] = array( 's' => get_query_var( 's' ) );
echo paginate_links( $pagination );
}
function portafolio_posts_per_page( $query ) {
if ( $query->query_vars['post_type'] == 'portafolio' ) $query->query_vars['posts_per_page'] = 10;
return $query;
}
if ( !is_admin() ) add_filter( 'pre_get_posts', 'portafolio_posts_per_page' );
你也可以阅读这篇文章解释链接模板的方法,这将解决我们在涉及自定义查询时必须处理的分页问题。
http://wp.tutsplus.com/tutorials/custom-post-type-pagination-chaining-method/
答案 4 :(得分:0)
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts(array(
'post_type' => 'portfolio',
'paged' => $paged,
'caller_get_posts' => 1,
'posts_per_page' => T_Panel('portfolio_page_num')
));
if (have_posts()) :
while (have_posts()) : the_post();
// your content loop her
endwhile;
wp_reset_query();
endif;
?>