Kendimi, üçüncü taraf bir eklenti tarafından sağlanan bir filtreye özel veriler geçirmeye ihtiyaç duyduğumu fark ettim. Bunu yapmak için gördüğüm tüm yollar gerçekten karmaşık ve kafamı sarmak zor.
Bu örneği ele alalım:
$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
Değişkeni nasıl iletebilirim add_score_to_title()
?
Sonunda yaptığım şey değişkenimi global $wp
nesneye eklemekti . Böylece bununla sonuçlanırsınız:
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');
Kirli? Olabilir. Basit? Evet! Bu tekniğin bir dezavantajı var mı? Lütfen tartışın.
GÜNCELLEME İşte söz konusu kodun tamamı -> http://pastebin.com/fkSXY04m
$score
bir şey dizisi üzerinde döngü yaparak ve bir değişkeni artırarak hesaplanır. pastebin.com/fkSXY04m