2014-12-04 58 views
0

看了看周围,找不到任何与此有关的东西。尝试在WordPress网站上运行多个短代码过滤器实例,以预先填充网页表单中的某些表单值。WordPress多个做简码过滤器

我们仍然在通过这种方式工作,并获得一些错误。我们如何组合它们并避免重复的功能错误和其他相关问题?

单做简码过滤器的当前工作例如,仅此作品:

add_filter('gform_field_value_Leadsource', 'my_custom_population_function'); 
function my_custom_population_function($value){ 
return do_shortcode('[Leadsource]'); 
} 

会如何,我们下面就简码过滤器组合成一个代码单个位?复制和粘贴示例会非常有用。

add_filter('gform_field_value_Leadsource', 'my_custom_population_function'); 
function my_custom_population_function($value){ 
return do_shortcode('[Leadsource]'); 
} 
add_filter('gform_field_value_First', 'my_custom_population_function'); 
function my_custom_population_function($value){ 
return do_shortcode('[i4w_db_FirstName]'); 
} 
add_filter('gform_field_value_Last', 'my_custom_population_function'); 
function my_custom_population_function($value){ 
return do_shortcode('[i4w_db_LastName]'); 
} 
add_filter('gform_field_value_Email', 'my_custom_population_function'); 
function my_custom_population_function($value){ 
return do_shortcode('[i4w_db_Email]'); 
} 

谢谢任何​​人谁可以帮忙! :)

回答

0

我觉得这样的事情应该做的伎俩(PHP 5.3或更高版本):

add_action('init', 'so27284262_shortcode_init'); 
function so27284262_shortcode_init() 
{ 
    $xref = array(
     'Leadsource' => 'Leadsource', 
     'First'   => 'i4w_db_FirstName', 
     'Last'   => 'i4w_db_LastName', 
     'Email'   => 'i4w_db_Email' 
    ); 

    foreach($xref as $name => $cb) { 
     add_filter('gform_field_value_' . $name, function($value) use ($cb) { 
      return do_shortcode("[$cb]"); 
     }); 
    } 
} 
+0

这似乎这样的伎俩,非常感谢你@diggy – Chris 2014-12-04 01:03:19