Get all wordpress custom fields from a page or a post

October 10, 2009 · Print This Article

Sometimes you may need to get all custom fields from a specific post or page. How can we do that?

Just paste the following functions on the functions.php files from your theme.

Note: The function have lots of comments so it will help you to understand how it works.

function all_my_customs($id = 0){
//if we want to run this function on a page of our choosing them the next section is skipped.
//if not it grabs the ID of the current page and uses it from now on.
if ($id == 0) :
global $wp_query;
$content_array = $wp_query->get_queried_object();
$id = $content_array->ID;
endif;

//knocks the first 3 elements off the array as they are WP entries and i dont want them.
$first_array = array_slice(get_post_custom_keys($id), 3);

//first loop puts everything into an array, but its badly composed
foreach ($first_array as $key => $value) :
$second_array[$value] = get_post_meta($id, $value, FALSE);

//so the second loop puts the data into a associative array
foreach($second_array as $second_key => $second_value) :
$result[$second_key] = $second_value[0];
endforeach;
endforeach;

//and returns the array.
return $result;
}

Now, you can use the function like this:

$result = all_my_customs();
echo $result['my_meta_key'];


Related articles:

Your choice for site templates and wordpress themes

Comments

Got something to say?

You must be logged in to post a comment.