how to display custom data from custom post types how to display custom data from custom post types wordpress wordpress

how to display custom data from custom post types


If the metadata shows up when editing posts of the type, then yes, it must have been successfully stored in the DB.

There's two wp functions to retrieve the custom post type's metadata: get_post_custom_values and get_post_meta. The difference being, that get_post_custom_values can access non-unique custom fields, i.e. those with more than one value associated with a single key. You may choose to use it for unique fields also though - question of taste.

Assuming, that your post type is called "obituary":

// First lets set some arguments for the query:// Optionally, those could of course go directly into the query,// especially, if you have no others but post type.$args = array(    'post_type' => 'obituary',    'posts_per_page' => 5    // Several more arguments could go here. Last one without a comma.);// Query the posts:$obituary_query = new WP_Query($args);// Loop through the obituaries:while ($obituary_query->have_posts()) : $obituary_query->the_post();    // Echo some markup    echo '<p>';    // As with regular posts, you can use all normal display functions, such as    the_title();    // Within the loop, you can access custom fields like so:    echo get_post_meta($post->ID, 'birth_date', true);     // Or like so:    $birth_date = get_post_custom_values('birth_date');    echo $birth_date[0];    echo '</p>'; // Markup closing tags.endwhile;// Reset Post Datawp_reset_postdata();

A word of caution, to avoid confusion:Leaving out the boolean in get_post_meta will make it return an array rather than a string. get_post_custom_values always returns an array, which is why, in the above example, we're echoing the $birth_date[0], rather than $birth_date.

Also I'm not 100% certain at the moment, whether $post->ID will work as expected in the above. If not, replace it with get_the_ID(). Both should work, one will for sure. Could test that, but saving myself the time...

For the sake of completeness, check the codex on WP_Query for more query arguments and correct usage.