Отображать все сообщения мета-ключей и мета-значения одного и того же идентификатора сообщения в wordpress

Я пытаюсь отображать значения post meta и отправлять мета-ключи. Если нужно отображать только одно значение, я могу использовать простую функцию get_post_meta(), но теперь мне нужно опубликовать все метаданные сообщений с тем же post_id, Я попытался использовать цикл foreach, но ничего не отображается. можете ли вы проверить мои коды?

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;
}

Ответы

Ответ 1

Использование по умолчанию

Получить мета для всех ключей:

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

Получить мета для одного ключа:

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

например:

$myvals = get_post_meta($post_id);

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

Примечание: появятся некоторые нежелательные мета ключи, начинающиеся с "underscore (_)", поэтому вам необходимо отфильтровать их.

Для справки: Смотрите Codex

Ответ 2

Я использую его в виде мета-поля. Вот функция, которая выдает значения всех метаданных для сообщения.

    function dump_all_meta(){

        echo "<h3>All Post Meta</h3>";

        // Get all the data.
        $getPostCustom=get_post_custom();


        foreach( $getPostCustom as $name=>$value ) {

            echo "<strong>".$name."</strong>"."  =>  ";

            foreach($getPostCustom as $name=>$value) {

        echo "<strong>".$name."</strong>"."  =>  ";

        foreach($value as $nameAr=>$valueAr) {
                echo "<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
                echo $nameAr."  =>  ";
                echo var_dump($valueAr);
        }

        echo "<br /><br />";

        }
    } // Callback funtion ended.

Надеюсь, это поможет. Вы можете использовать его в мета-окне или в интерфейсе.

Ответ 3

$myvals = get_post_meta( get_the_ID()); foreach($myvals as $key=>$val){foreach($val as $vals){if ($key=='Youtube'){echo $vals };};};

Ключ = Youtube видео все мета-ключи для видеороликов youtube и значение

Ответ 4

WordPress имеет функцию get_metadata, чтобы получить всю мета объекта (сообщение, термин, пользователь...)

Просто используйте

get_metadata( 'post', 15 );