apply_filters( “pre_option_{$option}”, mixed $pre_option, string $option, mixed $default_value )

Filters the value of an existing option before it is retrieved.


The dynamic portion of the hook name, $option, refers to the option name.

Returning a value other than false from the filter will short-circuit retrieval and return that value instead.


The value to return instead of the option value. This differs from $default_value, which is used as the fallback value in the event the option doesn’t exist elsewhere in get_option() .
Default false (to skip past the short-circuit).
Option name.
The fallback value to return if the option does not exist.
Default false.

More Information

  • This hook is used to temporarily alter a WordPress option before the display of a specific view. WordPress options (e.g. the blog configuration) are usually set in the back-end by the user or programmatically by a plugin. The options are stored in the database. To alter the value of an option during the rendering of a page without changing it permanently in the database, you may use this hook.
  • Example option name {$option} can the following:

  • For a list of all available options, call
    which returns the list of available options as an array that you could store in a variable or display for debugging purposes.


$pre = apply_filters( "pre_option_{$option}", false, $option, $default_value );


4.9.0The $default_value parameter was added.
4.4.0The $option parameter was added.

User Contributed Notes

  1. Skip to note 3 content

    Example: Filter the blogname option on the homepage

     * Filters the blogname option on the homepage.
     * @param false|mixed $value   Pre-option value. Default false.
     * @return false|mixed (Maybe) filtered pre-option value.
    function wp_docs_pre_filter_option( $pre_option ) {
    	if ( ! is_home() ) {
    		return $pre_option;
    	return 'My Awesome Homepage';
    add_filter( 'pre_option_blogname', 'wp_docs_pre_filter_option' );
  2. Skip to note 4 content

    Example migrated from Codex:

    The example below shows how to alter the amount of displayed posts per page for a specific category (here, the ‘foo’ category). The code is added to the functions.php file of the theme.

    add_filter('pre_option_posts_per_page', 'limit_posts_per_page');
    function limit_posts_per_page( $posts_per_page ) {
       global $wp_query;
       if ( $wp_query->query_vars['category_name'] == 'foo' )
          return 20;
       return $posts_per_page;

You must log in before being able to contribute a note or feedback.