Query: Add a `WP::remove_query_var()` helper function.

This makes cleaning up public query vars easier.

Fixes #35234.

git-svn-id: https://develop.svn.wordpress.org/trunk@36177 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Pascal Birchler 2016-01-05 20:56:10 +00:00
parent e306e801a9
commit e50296de48
2 changed files with 48 additions and 0 deletions

View File

@ -95,6 +95,17 @@ class WP {
$this->public_query_vars[] = $qv;
}
/**
* Remove name from list of public query variables.
*
* @since 4.5.0
*
* @param string $name Query variable name.
*/
public function remove_query_var( $name ) {
$this->public_query_vars = array_diff( $this->public_query_vars, array( $name ) );
}
/**
* Set the value of a query variable.
*

View File

@ -0,0 +1,37 @@
<?php
/**
* @group wp
*/
class Tests_WP extends WP_UnitTestCase {
/**
* @var WP
*/
protected $wp;
public function setUp() {
$this->wp = new WP();
}
public function test_add_query_var() {
$public_qv_count = count( $this->wp->public_query_vars );
$this->wp->add_query_var( 'test' );
$this->wp->add_query_var( 'test2' );
$this->wp->add_query_var( 'test' );
$this->assertSame( $public_qv_count + 2, count( $this->wp->public_query_vars ) );
$this->assertTrue( in_array( 'test', $this->wp->public_query_vars ) );
$this->assertTrue( in_array( 'test2', $this->wp->public_query_vars ) );
}
public function test_remove_query_var() {
$public_qv_count = count( $this->wp->public_query_vars );
$this->wp->add_query_var( 'test' );
$this->assertTrue( in_array( 'test', $this->wp->public_query_vars ) );
$this->wp->remove_query_var( 'test' );
$this->assertSame( $public_qv_count, count( $this->wp->public_query_vars ) );
}
}