Передача переменной из дочерней темы в родительскую тему

Я хочу передать свои собственные цвета карты Google для моей дочерней темы в родительскую тему.

Так что в моей функции родительской темы.php у меня есть

add_filter( 'post_thumbnail_html', "map_thumbnail" ); function map_thumbnail($html, $color1, $color2) { $my_post = get_post($post->ID); $water_color=$color1; $tree_color=$color2; if($my_post->post_name == "contact") { $html = '<img height="100%" width="100%" src="http://maps.googleapis.com/maps/api/staticmap?watercolor='.$water_color.'treecolor='.$tree_color.'">'; } return $html; } 

Я просто хочу передать два цвета из функции functions.php моей дочерней темы, например,

 $color1 = '#fb0000'; $color2 = '#c0e8e8'; apply_filters('post_thumbnail_html', $color1, $color2); 

Но, к сожалению, это не работает. Может кто-нибудь помочь мне здесь ? У меня есть 3 дочерних темы, и все они имеют одну и ту же карту, только цвет дерева и цвет воды разные. Я хочу сохранить основную функцию map_thumbnail в родительской теме и передавать только отдельные цвета из моих дочерних тем. Пожалуйста, помогите мне, если это возможно.

Придерживайтесь фильтрации одного значения за раз, чтобы оно было простым, и добавьте фильтры для цветов, которые будут использоваться дочерней темой:

 add_filter( 'post_thumbnail_html', 'map_thumbnail'); function map_thumbnail($html) { $my_post = get_post($post->ID); $defaultcolor1 = "#??????"; // parent theme default $defaultcolor2 = "#??????"; // parent theme default $water_color = apply_filters('water_color',$defaultcolor1); $tree_color = apply_filters('tree_color',$defaultcolor2); if($my_post->post_name == "contact") { $html = '<img height="100%" width="100%" src="http://maps.googleapis.com/maps/api/staticmap?watercolor='.$water_color.'treecolor='.$tree_color.'">'; } return $html; } 

Итак, в детской теме вы можете использовать:

 add_filter('water_color','custom_water_color'); add_filter('tree_color','custom_tree_color'); function custom_water_color() {return '#fb0000';} function custom_tree_color() {return '#c0e8e8';} 

Не пробовав себя, я предлагаю вам написать небольшую функцию для вашей дочерней темы, а затем вызвать funstion темы родителя следующим образом:

 add_filter( 'post_thumbnail_html', "child_map_thumbnail", 11 ); function child_map_thumbnail($html) { $color1 = '#fb0000'; $color2 = '#c0e8e8'; map_thumbnail($html, $color1, $color2); return $html; } 

Как я уже сказал: я сам не пробовал – но я полагаю, что функция родительской темы должна быть доступна, поэтому в основном мое предложение было бы назвать эту функцию вместо передачи переменных …