I was wondering... Let's consider this:
function get_current_post_id(){
global $wp_query;
return $wp_query->get_queried_object_id();
}
Later...
function test($post_id = null){
if(!$post_id) $post_id = get_current_post_id();
}
Ok. But it would be fantastic if I could only write this:
function test($post_id = null){
if(!$post_id) get_current_post_id();
// ...and directly have $post_id populated and ready to use
do_something($post_id);
}
And have my $post_id variable auto-populated in the current context (the test() function). Is there a way? I mean, without using globals .
Ok, I've found that's possible, as @arkascha said, I can pass by reference:
function get_current_post_id(&$post_id = null){// &$post_id instead of $post_id
global $wp_query;
$post_id = $wp_query->get_queried_object_id();
return $post_id; // optional
}
The thing is: I can simply pass the variable by reference. Then:
function test($post_id = null){
if(!$post_id) get_current_post_id($post_id); // even if I know it's null
// ...then $post_id will be auto-populated
do_something($post_id);
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.