Мне нужно передать пользовательские данные в фильтр, предоставленный сторонним плагином. Все способы, которые я видел, чтобы сделать это, действительно сложны и трудно обернуть мою голову вокруг.
Возьмите этот пример:
$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