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
function my_setup() {
echo 123 . '<br />';
}
add_action('init', 'my_setup');
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With