Существуют ли ограничения на дескрипторы фильтров?
Сегодня я просматривал код стороннего плагина и обнаружил, что они делают это:
add_filter('some_base_handle'.sanitize_title($string), ...)
Любопытно, так как я использовал xh_prof для поиска кода, который занимал слишком много времени, и был сбит с толку, почему было так много вызовов для очистки заголовка. Безопасно ли удалять заголовок sanitize_title или для этого есть веские причины?
Есть ли у кого-нибудь ссылки на документацию Кодекса, которые я мог пропустить по этому поводу? Я посмотрел на страницу add_filter но ничего не увидел.
ИЗМЕНИТЬ:
Я заглянул в wp-includes/plugins.php код, чтобы узнать, было ли что-нибудь, и не увидел ничего выдающегося, кто-нибудь знает?
function add_filter( $tag, $function_to_add, $priority = 10, $accepted_args = 1 ) {
global $wp_filter, $merged_filters;
$idx = _wp_filter_build_unique_id($tag, $function_to_add, $priority);
$wp_filter[$tag][$priority][$idx] = array('function' => $function_to_add, 'accepted_args' => $accepted_args);
unset( $merged_filters[ $tag ] );
return true;
}
1 answers
add_filter('some_base_handle'.sanitize_title($string), ...)
То, что он здесь делает, - это дескриптор фильтра переменных, и хотя "sanitize_title" может быть не совсем правильной функцией для использования здесь, это действительно зависит от возможных значений $string и источника этой $string.
Имена фильтров переменных могут быть удобны, если у вас есть много разных вещей, которые можно отфильтровать, и вы хотите иметь какой-то простой способ отфильтровать любой/все из них.
Функция sanitize_title
не самая плохая для использования здесь, потому что она в основном форматирует произвольные строки, чтобы они подходили для URL-адресов, заменяя пробелы тире, все в нижнем регистре, удаляя акценты и тому подобное. Может быть, не самый лучший, но опять же, зависит от конкретного случая.