我将此序列化数据放入我的wp_option表中。 我想创建一个函数来检索数据(get_option),然后应用过滤器将“http://mywebsite.com/wp-content/uploads/2016/03/logo.png”的值更改为其他内容......
(146,'theme_mods_theme-child','a:9:{i:0; b:0; s:8:“bg_color”; s:7:“#ef4036”; s:11:“header_logo” ; S:65: “http://mywebsite.com/wp-content/uploads/2016/03/logo.png”; S:14: “menu_no_switch”; S:0: “”,S:10: “main_color”; S:7: “#ef4036”; S:18:” nav_menu_locations“; a:1:{s:11:”header-menu“; i:2;} s:9:”copyright“; s:77:”nom nom nom nom“; s:7:”credits“; s:66:“la la la la”; s:8:“sidebars”; s:51:“Audio1 | Audio2 | Audio3 | Audio4 | News1 | News2 | News3 | News4”;}','yes'),< / p>
答案 0 :(得分:1)
您需要使用apply_filters
向变量添加过滤器。
首先,使用get_option
从数据库中获取options数组。然后拔出header_logo
键并将其存储在变量中。
接下来,为变量添加过滤器。最后,编写一个函数来返回新值,并使用add_filter
将其注册到过滤器。
// The header logo
$theme_mods_theme_child_options = get_option('theme_mods_theme-child');
$header_logo = apply_filters( 'my_header_logo_filter', $theme_mods_theme_child_options['header_logo'] );
// Do something with $header_logo
// functions.php or a plugin
function my_header_logo_filter_function(){
return 'some-new-image.png';
}
add_filter('my_header_logo_filter', 'my_header_logo_filter_function');
答案 1 :(得分:0)
您可以使用option _ {$ option}过滤器,可以像这样更新get_option上的值。
add_filter( 'option_theme_mods_theme-child', function( $values ){
if ( $values ) {
//do somthing with data
}
return $values;
});
详细了解https://developer.wordpress.org/reference/hooks/option_option/上的option _ {$ option}过滤器