diff -u -r1.269 functions.php
|
|
|
|
| 871 | 871 | function apply_filters($tag, $string) { |
| 872 | 872 | global $wp_filter; |
| 873 | 873 | |
| 874 | | $args = array_slice(func_get_args(), 3); |
| | 874 | $args = array_slice(func_get_args(), 2); |
| | 875 | $all_args = array_merge(array($string), $args); |
| 875 | 876 | |
| 876 | 877 | merge_filters($tag); |
| 877 | 878 | |
| … |
… |
|
| 879 | 880 | foreach ($wp_filter[$tag] as $priority => $functions) { |
| 880 | 881 | if (!is_null($functions)) { |
| 881 | 882 | foreach($functions as $function) { |
| 882 | | $string = call_user_func_array($function, array($string) + $args); |
| | 883 | $accepted_args = 1; |
| | 884 | |
| | 885 | if (!is_array($function)) { |
| | 886 | $args_marker = strrpos($function, ':'); |
| | 887 | if ($args_marker > 0) { |
| | 888 | $accepted_args = intval(substr($function, $args_marker+1)); |
| | 889 | $function = substr($function, 0, $args_marker); |
| | 890 | } |
| | 891 | } else { |
| | 892 | $args_marker = strrpos($function[1], ':'); |
| | 893 | if ($args_marker > 0) { |
| | 894 | $accepted_args = intval(substr($function[1], $args_marker+1)); |
| | 895 | $function[1] = substr($function[1], 0, $args_marker); |
| | 896 | } |
| | 897 | } |
| | 898 | |
| | 899 | if ($accepted_args > 0) { |
| | 900 | $args = array_slice($all_args, 0, $accepted_args); |
| | 901 | } elseif($accepted_args == 0) { |
| | 902 | $args = NULL; |
| | 903 | } else { |
| | 904 | $args = $all_args; |
| | 905 | } |
| | 906 | |
| | 907 | $string = call_user_func_array($function, $args); |
| 883 | 908 | } |
| 884 | 909 | } |
| 885 | 910 | } |