自定义帖子类型奇怪的分页问题

时间:2014-04-17 作者:WebCaos

分页有一个奇怪的问题,当我在主页中时,查询工作正常,但如果单击下一页,我会得到一个404 错误禁用permalinks设置时,我在查询字符串中看到(当我转到下一页时),然后?paged=2 作为查询参数,但不是post_type=job_listing (在这种情况下)。这是我的代码:

global $wp_query, $paged;

if ( get_query_var( \'paged\' ) )
    $paged = get_query_var( \'paged\' );
else
    $paged = 1;

if ( get_query_var( \'post_type\' ) )
    $post_type = get_query_var( \'post_type\' );
else
    $post_type = \'job_listing\';

$args = array(
   \'post_type\' => $post_type,
   \'paged\'     => $paged,
);

query_posts( $args );
然后我有一个正常的循环和wp_reset_query() 在最后。问题是,当打开分页链接时,url如下所示www.example.com/?paged=2 而不是www.example.com/?post_type=job_listing&paged=2 如果我手动键入它,它就会工作。

我想尽一切办法让它工作,但它总是忽视post_type 所有页面中的变量。

1 个回复
SO网友:kaiser

我认为你的问题在于以下几点:

if ( get_query_var( \'post_type\' ) )
    $post_type = get_query_var( \'post_type\' );
else
    $post_type = \'job_listing\';
您的post_type var可能已经设置好了,所以您正在调用一些不同的post类型(存储在query_vars 具有的数组post_type 键),它可能没有第二页,因此会引导您404. 你可以简单地

var_dump( $GLOBALS[\'wp_query\'] );

printf( \'<pre>%s</pre>\', var_export( $GLOBALS[\'wp_query\'], TRUE ) );`
根据您的调试设置,查看输出,以了解详细的错误。

除此之外,我会

使用get_posts()new WP_Query() 不要弄乱主查询(query_posts() 是为核心用途保留的专用函数)

$post_type = \'job_listing\';

结束

相关推荐

ACF loop and php formatting

下面的php将遍历每个页面,然后输出ALL ACF自定义字段的。我需要的帮助格式是一个条件语句,它将所有$fields, 除了$field_name 在自己的容器中包含“标题”。$pages = get_pages( array(\'sort_column\' => \'menu_order\')); foreach ($pages as $page_data) { $fields = get_fields($page_data); if( $fields