描述
钩子名称的动态部分$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 | 开始引入 |
使用示例
示例:过滤主页上的
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' );
从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; }