当前浏览:首页 / WordPress钩子 / pre_option_{$option}

apply_filters( "pre_option_{$option}", mixed $pre_option, string $option, mixed $default )

在检索现有选项之前过滤该选项的值

option 选项more...

premore...


描述

钩子名称的动态部分$option指的是选项名称。

从过滤器返回真实(truthy)值将有效地缩短检索,并返回传递的值。


参数

$pre_option

(mixed) 要返回的值,而不是选项值。这与$default不同,后者在get_option()中其他地方不存在该选项时用作为返回值。默认值为false(以跳过短路)。

$option

(string) 选项名称。

$default

(mixed) 如果该选项不存在,则作为返回的值。默认值为false。


更多信息

  • 此挂钩用于在显示特定视图之前临时更改WordPress选项。WordPress选项(例如博客配置)通常由用户在后端设置,或者由插件以编程方式设置。选项存储在数据库中。要在呈现页面期间更改选项的值,而不在数据库中永久更改它,可以使用此挂钩。
  • 示例选项名称{$option}可以是以下名称:

    pre_option_posts_per_page
    pre_option_posts_per_rss
    pre_option_template
    pre_option_stylesheet
    pre_option_blog_charset
    pre_option_home
    ...

  • 要获得所有可用选项的列表,请调用
    wp_load_alloptions()
    它将可用选项列表作为数组返回,您可以将其存储在变量中或显示以进行调试。


源码

查看源码 官方文档


更新日志

版本描述
4.9.0添加了$default参数。
4.4.0添加了$option参数。
1.5.0开始引入

使用示例

  • 示例1

    示例:过滤主页上的blogname选项

    /**
     * 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

    从Codex迁移的示例:

    下面的示例显示了如何更改特定类别(这里是“foo”类别)每页显示的文章数量。代码将添加到主题的functions.php文件中。

    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;
    }