带有Pages_Links的定制POST类型档案404

时间:2011-05-31 作者:MartinJJ

im使用paginate_links function 要在我的自定义post类型归档文件上创建分页,无论我做什么,在查看第2页时,我都会遇到404个错误(即单击分页跟踪中的一页)。

我已经检查和研究过了,似乎没有取得任何进展。这是archive-my\\u CUSTOM\\u POST\\u类型中循环前的my查询。php:

<?php

global $wp_query;

$args = array_merge( $wp_query->query, array( \'post_type\' => \'sales\', \'posts_per_page\'  => 1, ) );

query_posts( $args );


if (have_posts()) :
while (have_posts()) : the_post();  
循环结束后下降,wp\\u reset\\u query以上下降

<?php endif; ?>

<div class="clear"></div><!-- / clear -->

<div class="pagination">

<?php 
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 );
?>

</div><!-- / paginate -->  
在我的循环索引上。php这项工作没有问题,但在自定义帖子类型中的循环中,这是不可能的,我与重复的slug没有冲突,因为我已经读到这可能是一个问题,所以我认为这与我如何在循环之前查询帖子有关,有什么指针吗?

问候马丁

3 个回复
最合适的回答,由SO网友:MartinJJ 整理而成

如果其他人与我的问题相同,我的全部解决方法是:
1)在wp admin>>settings>>reading中,将博客帖子设置为显示为1
2),然后重写此循环日志。php每页发布\\u=>10
3)在自定义帖子类型循环中。php文件设置posts\\u per\\u page=>5。

请记住,这些是我需要的设置,您的需要可能不同,底线是,将wp admin中的blog posts设置为1,您可以根据自己的需要配置每个页面的其他posts\\u数量

现在一切都很好,有点不正常,但至少它能工作,所以我的下一个问题是>>>这是一个wp bug吗?

SO网友:Nathan Hangen

Martin的修复很有效,但更好的解决方案是使用pre\\u get\\u posts函数。

示例:

function custom_type_archive_display($query) {
    if (is_post_type_archive(\'custom_type\')) {
        $query->set(\'posts_per_page\',1);
        return;
    }
}

add_action(\'pre_get_posts\', \'custom_type_archive_display\');

SO网友:RAMIREZ

我知道这是旧的,但我也有同样的问题,并通过更改导致404的页面永久对齐来解决它。

这是因为,很明显,您不能有与自定义帖子类型同名的页面段塞。

所有功劳都归于Ryan S.分享原始解决方案:http://www.sutanaryan.com/2013/09/404-error-in-custom-post-type-pagination-wordpress/

结束

相关推荐

Pagination with custom loop

我的问题可能是Pagination not working with custom loop, 但有一种不同。我使用自定义循环来显示flash游戏。我想按类别在游戏页面上分页。类别php:<?php if ($cat) { $cols = 2; $rows = 4; $paged = ((\'paged\')) ? get_query_var(\'paged\') : 1; $post_per_page = $cols * $rows; // -1 s