I did a fresh installation of wordpress 3.0.4 and attempted to write a simple theme for just the sake of trying.
In functions.php, I created a function called my_setup and hooked it up to init. I noticed that my_setup() is called multiple times and I tried to use a global flag variable to control the execution of the function but to no avail. How do I ensure that my function is only called once?
<?php
// global variables
$setup_run_before = 0;
?>
<?php
function my_setup() {
global $setup_run_before, $a;
if($setup_run_before == 0) {
$setup_run_before = 1;
// this section is always called even with global variable.
}
}
?>
<?php
add_action('init', 'my_setup');
?>
Regards,
John Doe
I see 123 appear once only. Init should not run more than once, and does not on my installation.
However i think you’ll find the clue you’re looking for in Rob’s Answer to WordPress why is the init hook invoked multiple times.
Hope that helps.