get_post_custom( int $post_id )

Retrieve post meta fields, based on post ID.

Description Description

The post meta fields are retrieved from the cache where possible, so the function is optimized to be called more than once.

Parameters Parameters


(int) (Optional) Post ID. Default is ID of the global $post.

Top ↑

Return Return

(array) Post meta for the given post.

Top ↑

Source Source

File: wp-includes/post.php

function get_post_custom( $post_id = 0 ) {
	$post_id = absint( $post_id );
	if ( ! $post_id ) {
		$post_id = get_the_ID();

	return get_post_meta( $post_id );

Top ↑

Changelog Changelog

Version Description
1.2.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

  1. Skip to note 1 content
    Contributed by Codex

    Default Usage
    Use the following example to set a variable ($custom_fields) as a multidimensional array containing all custom fields of the current post.

    <?php $custom_fields = get_post_custom(); ?>

    Retrieving data from the array
    The following example will retrieve all custom field values with the key my_custom_field from post ID 72 (assuming there are three custom fields with this key, and the values are “dogs”, “47” and “This is another value”).

      $custom_fields = get_post_custom(72);
      $my_custom_field = $custom_fields['my_custom_field'];
      foreach ( $my_custom_field as $key => $value ) {
        echo $key . " => " . $value . "<br />";

    0 => dogs
    1 => 47
    2 => This is another value

    Note: not only does the function return a multi-dimensional array (ie: always be prepared to deal with an array of arrays, even if expecting array of single values), but it also returns serialized values of any arrays stored as meta values. If you expect that possibly an array may be stored as a metavalue, then be prepared to maybe_unserialize.

You must log in before being able to contribute a note or feedback.