আপনার কাছে কমপক্ষে দুটি বিকল্প রয়েছে:
- কাঙ্ক্ষিত পরিবর্তনশীলকে বিশ্বায়ন করুন এবং তারপরে এটি কলব্যাকের অভ্যন্তরে উল্লেখ করুন
- একটি ফাংশন দিয়ে স্কোর গণনা যুক্তি মোড়ানো, তারপরে এটি কলব্যাকের অভ্যন্তরে উল্লেখ করুন
ভেরিয়েবলকে বিশ্বায়ন করুন
<?php
global $score;
$score = 42; //Some crazy calculation I don't want to repeat.
function add_score_to_title($title) {
global $score;
return 'Quiz Results (' . $score . '/') - ' . $title;
}
add_filter( 'aioseop_title_single', 'add_score_to_title');
?>
স্কোর গণনা মোড়ানো
আপনি শুধুমাত্র কি কখনো স্কোর হিসাব প্রয়োজন ভিতরে ফিল্টার, কলব্যাক নিজেই মধ্যে যুক্তিবিজ্ঞান টান:
<?php
function add_score_to_title($title) {
$score = 0;
$questions = get_quiz_result_questions();
$total_questions = 0;
foreach( $questions as $question ) {
$order = $question->order;
if( $order >= 100 ) {
break;
}
if( $question->correct == $_POST['Q'][$order] ) {
$score++;
}
$total_questions++;
return 'Quiz Results (' . $score . '/') - ' . $title;
}
add_filter( 'aioseop_title_single', 'add_score_to_title');
?>
আরও ভাল, আপনি নিজের স্কোরের গণনাটি তার নিজের কোনও ফাংশনে গুটিয়ে রাখতে পারেন এবং তারপরে সেই ফাংশনটি আপনার কলব্যাকের ভিতরে কল করতে পারেন:
<?php
function wpse48677_get_score() {
$score = 0;
$questions = get_quiz_result_questions();
$total_questions = 0;
foreach( $questions as $question ) {
$order = $question->order;
if( $order >= 100 ) {
break;
}
if( $question->correct == $_POST['Q'][$order] ) {
$score++;
}
$total_questions++;
$output['score'] = $score;
$output['total_questions'] = $total_questions;
return $output;
}
function add_score_to_title($title) {
$score_results = wpse48677_get_score();
$score = $score_results['score'];
return 'Quiz Results (' . $score . '/') - ' . $title;
}
add_filter( 'aioseop_title_single', 'add_score_to_title');
?>
আপনি যদি $_POST
অবজেক্টটি উল্লেখ করতে সমস্যা বোধ করেন তবে আপনি আপনার ক্যোয়ারী ভেরিয়েবলটিও নিবন্ধভুক্ত করতে পারেন এবং তারপরে get_query_var()
ডেটা পেতে অভ্যন্তরীণভাবে ব্যবহার করতে পারেন:
function add_score_query_vars( $query_vars ) {
$query_vars[] = 'Q';
return $query_vars;
}
add_filter( 'query_vars', 'add_score_query_vars' );
এটি জায়গায়, এর $_POST['Q']
সাথে প্রতিস্থাপন করা যেতে পারে get_query_var('Q')
।