programing

모든 게시 메타 키 및 동일한 게시 ID의 메타 값을 워드프레스로 표시합니다.

golfzon 2023. 3. 15. 20:06
반응형

모든 게시 메타 키 및 동일한 게시 ID의 메타 값을 워드프레스로 표시합니다.

투고 메타값과 투고 메타키를 표시하려고 합니다만, 1개의 값만 표시한다면 간단한 함수 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;
}

디폴트 사용방법

모든 키에 대한 메타 가져오기:

<?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」

모든 행을 가져오려면 키를 지정하지 마십시오.이것을 시험해 보세요.

$meta_values = get_post_meta( get_the_ID() );

var_dump( $meta_values );

도움이 됐으면 좋겠다!

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

Key = Youtube 동영상의 모든 메타 키와 가치

2020년 1월 및 WordPress v5.3.2를 기준으로 아래가 정상임을 확인합니다.

필드 키와 그에 상응하는 밑줄 키도 포함되지만, 코드로 키를 적절히 "enum"하면 문제가 없을 것입니다.

$meta_values   = get_post_meta( get_the_ID() );
$example_field = meta_values['example_field_key'][0];

//OR if you do enum style 
//(emulation of a class with a list of *const* as enum does not exist in PHP per se)
$example_field = meta_values[PostTypeEnum::FIELD_EXAMPLE_KEY][0]; 

처럼print_r(meta_values);다음과 같은 기능이 있습니다.

Array
(
    [_edit_lock] => Array
        (
            [0] => 1579542560:1
        )

    [_edit_last] => Array
        (
            [0] => 1
        )

    [example_field] => Array
        (
            [0] => 13
        )
)

그게 도움이 됐으면 좋겠는데, 가서 소란을 피워!

메타박스 형태로 사용합니다.여기에 모든 메타데이터의 값을 덤프하여 게시하는 기능이 있습니다.

    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.

도움이 됐으면 좋겠다.메타 박스 내 또는 프론트 엔드에서 사용할 수 있습니다.

WordPress에는 get_metadata 함수가 있습니다.이 함수는 오브젝트의 모든 메타데이터를 가져옵니다(Post, term, user...).

그냥 사용하다

get_metadata( 'post', 15 );

언급URL : https://stackoverflow.com/questions/22216276/display-all-post-meta-keys-and-meta-values-of-the-same-post-id-in-wordpress

반응형