WordPress.org

Make WordPress Core


Ignore:
Timestamp:
12/02/2016 07:09:33 AM (4 years ago)
Author:
pento
Message:

Plugins: Add a current_priority() method to WP_Hook.

This allows plugins to determine the currently running priority of a filter.

Fixes #39007.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/filters.php

    r38762 r39430  
    348348        $this->assertSame( $val, apply_filters_deprecated( 'tests_apply_filters_deprecated', array( $val ), '4.6' ) );
    349349    }
     350
     351    private $current_priority;
     352    /**
     353     * @ticket 39007
     354     */
     355    public function test_current_priority() {
     356        add_action( 'test_current_priority', array( $this, '_current_priority_action' ), 99 );
     357        do_action( 'test_current_priority' );
     358        remove_action( 'test_current_priority', array( $this, '_current_priority_action' ), 99 );
     359
     360        $this->assertSame( 99, $this->current_priority );
     361    }
     362
     363    public function _current_priority_action() {
     364        global $wp_filter;
     365        $this->current_priority = $wp_filter[ current_filter() ]->current_priority();
     366    }
     367
     368    /**
     369     * @ticket 39007
     370     */
     371    public function test_other_priority() {
     372        add_action( 'test_current_priority', array( $this, '_other_priority_action' ), 99 );
     373        do_action( 'test_current_priority' );
     374        remove_action( 'test_current_priority', array( $this, '_other_priority_action' ), 99 );
     375
     376        $this->assertSame( false, $this->current_priority );
     377    }
     378
     379    public function _other_priority_action() {
     380        global $wp_filter;
     381        $this->current_priority = $wp_filter[ 'the_content' ]->current_priority();
     382    }
    350383}
Note: See TracChangeset for help on using the changeset viewer.