In paginate_links()
, ensure that query string args are propagated to the resulting paginated links.
Adds unit tests that use `DOMDocument` since `assertTag` is being deprecated - see #29545, [29746]. Props obenland, wonderboymusic. Fixes #29636. git-svn-id: https://develop.svn.wordpress.org/trunk@29780 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
d19b2ded94
commit
18adbb6439
@ -2485,7 +2485,7 @@ function paginate_links( $args = '' ) {
|
|||||||
'end_size' => 1,
|
'end_size' => 1,
|
||||||
'mid_size' => 2,
|
'mid_size' => 2,
|
||||||
'type' => 'plain',
|
'type' => 'plain',
|
||||||
'add_args' => false, // array of query args to add
|
'add_args' => $query_args, // array of query args to add
|
||||||
'add_fragment' => '',
|
'add_fragment' => '',
|
||||||
'before_page_number' => '',
|
'before_page_number' => '',
|
||||||
'after_page_number' => ''
|
'after_page_number' => ''
|
||||||
|
@ -126,11 +126,11 @@ EXPECTED;
|
|||||||
|
|
||||||
$expected_attributes = array(
|
$expected_attributes = array(
|
||||||
array(
|
array(
|
||||||
'href' => 'http://' . WP_TESTS_DOMAIN . '/',
|
'href' => home_url( '/' ),
|
||||||
'class' => 'prev page-numbers'
|
'class' => 'prev page-numbers'
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'href' => 'http://' . WP_TESTS_DOMAIN . '/',
|
'href' => home_url( '/' ),
|
||||||
'class' => 'page-numbers'
|
'class' => 'page-numbers'
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -177,4 +177,43 @@ EXPECTED;
|
|||||||
$this->assertEquals( get_pagenum_link( 2 ), $href );
|
$this->assertEquals( get_pagenum_link( 2 ), $href );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function add_query_arg( $url ) {
|
||||||
|
return add_query_arg( array( 'foo' => 'bar' ), $url );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ticket 29636
|
||||||
|
*/
|
||||||
|
function test_paginate_links_query_args() {
|
||||||
|
add_filter( 'get_pagenum_link', array( $this, 'add_query_arg' ) );
|
||||||
|
$links = paginate_links( array(
|
||||||
|
'current' => 2,
|
||||||
|
'total' => 5,
|
||||||
|
'end_size' => 1,
|
||||||
|
'mid_size' => 1,
|
||||||
|
'type' => 'array',
|
||||||
|
) );
|
||||||
|
remove_filter( 'get_pagenum_link', array( $this, 'add_query_arg' ) );
|
||||||
|
|
||||||
|
$document = new DOMDocument();
|
||||||
|
$document->preserveWhiteSpace = false;
|
||||||
|
|
||||||
|
// All links should have foo=bar arguments:
|
||||||
|
$data = array(
|
||||||
|
0 => home_url( '/?foo=bar' ),
|
||||||
|
1 => home_url( '/?foo=bar' ),
|
||||||
|
3 => home_url( '/?paged=3&foo=bar' ),
|
||||||
|
5 => home_url( '/?paged=5&foo=bar' ),
|
||||||
|
6 => home_url( '/?paged=3&foo=bar' ),
|
||||||
|
);
|
||||||
|
|
||||||
|
foreach ( $data as $index => $expected_href ) {
|
||||||
|
$document->loadHTML( $links[ $index ] );
|
||||||
|
$tag = $document->getElementsByTagName( 'a' )->item( 0 );
|
||||||
|
$this->assertNotNull( $tag );
|
||||||
|
|
||||||
|
$href = $tag->attributes->getNamedItem( 'href' )->value;
|
||||||
|
$this->assertEquals( $expected_href, $href );
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user