Me encuentro necesitando pasar datos personalizados a un filtro proporcionado por un complemento de terceros. Todas las formas en que he visto hacer esto son realmente complicadas y difíciles de entender.
Toma este ejemplo:
$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');
¿Cómo puedo pasar la $score
variable a add_score_to_title()
?
Lo que terminé haciendo fue agregar mi variable al $wp
objeto global . Entonces terminas con esto:
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');
¿Sucio? Tal vez. ¿Simple? ¡Sip! ¿Alguna desventaja de esta técnica? Por favor discutelo.
ACTUALIZACIÓN Aquí está el código completo en cuestión -> http://pastebin.com/fkSXY04m
$score
se calcula recorriendo un conjunto de cosas e incrementando una variable. pastebin.com/fkSXY04m