user2901740 user2901740 - 1 month ago 28x
PHP Question

Display all post meta keys and meta values of the same post ID in wordpress

I'm trying to display post meta values and post meta keys, If only one value is to be display I can used the simple function get_post_meta() but what I need now is to post all post meta data with the same post_id. I tried using foreach loop but nothing displays. can you please check my codes?

function wpt_calendar_display()
global $post;

$columns = array(
'date_event' => 'Date',
'name_event' => 'Event'
register_column_headers('list-header_events', $columns);

$event_name = get_post_meta( $post->ID, '_event_name' );
// $event_date = get_post_meta( $post->ID, '_event_date', false );

$return .= "<table class=\"widefat\">";
$return .= "<tr>";
$return .= print_column_headers('list-header_events');
$return .= "</tr>";
$return .= "<tr>";

if (!empty($event_name))
foreach($event_name as $e_name)
$return .= "<td>";
$return .= $e_name;
$return .="</td>";


$return .= "<td>";

$return .= "</td>";
$return .= "</tr>";
$return .= "</table>";
return $return;


Default Usage

Get the meta for all keys:

<?php $meta = get_post_meta($post_id); ?>

Get the meta for a single key:

<?php $key_1_values = get_post_meta( 76, 'key_1' ); ?>

for example:

$myvals = get_post_meta($post_id);

foreach($myvals as $key=>$val)
    echo $key . ' : ' . $val[0] . '<br/>';

Note: some unwanted meta keys starting with "underscore(_)" will also come, so you will need to filter them out.

For reference: See Codex