wordpress 高级自定义字段重复器上的分页停止工作

8tntrjer  于 2023-08-03  发布在  WordPress
关注(0)|答案(2)|浏览(109)

不确定这是升级到PHP 7.2还是最新的WordPress版本,但下面的代码允许我为repeater值添加分页。现在似乎发生的是,页面只是重新加载页面。分页链接显示为/example/2/,这用于加载页面,但现在它只是重新加载example
有什么想法吗

<?php
/* 
 * Paginatation on Advanced Custom Fields Repeater
 */

 if ( get_query_var('paged') ) {
    $page = get_query_var('paged');
 } elseif ( get_query_var('page') ) {
    $page = get_query_var('page');
 } else {
    $page = 1;
 }

// Variables
$row              = 0;
$images_per_page  = 10; // How many images to display on each page
$images           = get_field( 'image_gallery' );
$total            = count( $images );
$pages            = ceil( $total / $images_per_page );
$min              = ( ( $page * $images_per_page ) - $images_per_page ) + 1;
$max              = ( $min + $images_per_page ) - 1;

// ACF Loop
if( have_rows( 'image_gallery' ) ) : ?>

<?php while( have_rows( 'image_gallery' ) ): the_row();

    $row++;

    // Ignore this image if $row is lower than $min
    if($row < $min) { continue; }

    // Stop loop completely if $row is higher than $max
    if($row > $max) { break; } ?>

<?php $img_obj = get_sub_field( 'image' ); ?>
    <a href="<?php echo $img_obj['sizes']['large']; ?>">
        <img src ="<?php echo $img_obj['sizes']['thumbnail']; ?>" alt= "Your ALT Tag" />
    </a>

<?php endwhile;

  // Pagination
  echo paginate_links( array(
    'base' => get_permalink() . '%#%' . '/',
    'format' => '?paged=%#%',
    'current' => $page,
    'total' => $pages
  ) );
  ?>

<?php else: ?>

    <p>No images found</p>

<?php endif; ?>

字符串

pgky5nke

pgky5nke1#

5.5之后有bug跟踪器:https://core.trac.wordpress.org/ticket/50976#comment:7
你可以在那里查看一些解决方案。这似乎是一个问题与查询var“页”这是保留在WordPress的核心,因为它通常使用?p和?page重定向到某个页面。
所以你可以用别的东西。

w41d8nur

w41d8nur2#

如果其他人仍然在努力解决这个问题,这里是我在大多数解决方案都无法正常工作后解决它的方法:

$page = 1; //right after get_header();
global $wp_query;

$wp_query->is_paged = 1;
if ( isset( $_GET['chapter'] ) ) {
    $wp_query->query_vars['paged'] = $_GET['chapter'];    
}

if( get_query_var('paged') ) {
  $page = get_query_var( 'paged' );
}

字符串
对于paginate_links,我使用了

echo paginate_links( array(
'base' => get_permalink() . '?chapter=%#%',
'current' => $page,
'total' => $pages
) );


这不是最好的解决方案,但对我来说很有效。

相关问题