Мне нужно передать пользовательские данные в фильтр, предоставленный сторонним плагином. Все способы, которые я видел, чтобы сделать это, действительно сложны и трудно обернуть мою голову вокруг.
Возьмите этот пример:
$score = 42; //Some crazy calculation I don't want to repeat.
function add_score_to_title($title) {
return 'Quiz Results (' . $score . '/') - ' . $title;
}
add_filter( 'aioseop_title_single', 'add_score_to_title');
Как я могу передать $scoreпеременную add_score_to_title()?
В итоге я добавил свою переменную в глобальный $wpобъект. Итак, вы в конечном итоге с этим:
global $wp;
$score = 42; //Some crazy calculation I don't want to repeat.
$wp->some_random_name_for_score = $score;
function add_score_to_title($title) {
global $wp;
$score = $wp->some_random_name_for_score;
return 'Quiz Results (' . $score . '/') - ' . $title;
}
add_filter( 'aioseop_title_single', 'add_score_to_title');
Грязные? Может быть. Просто? Ага! Есть ли недостатки этой техники? Пожалуйста, обсудите.
ОБНОВЛЕНИЕ Вот полный рассматриваемый код -> http://pastebin.com/fkSXY04m
$scoreрассчитывается путем зацикливания на массиве вещей и увеличения переменной. pastebin.com/fkSXY04m