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

前端 未结 6 1670
长发绾君心
长发绾君心 2020-12-23 17:10

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

相关标签:
6条回答
  • 2020-12-23 17:38

    To get all rows, don't specify the key. Try this:

    $meta_values = get_post_meta( get_the_ID() );
    
    var_dump( $meta_values );
    

    Hope it helps!

    0 讨论(0)
  • 2020-12-23 17:43

    As of Jan 2020 and WordPress v5.3.2, I confirm the following works fine.

    It will include the field keys with their equivalent underscore keys as well, but I guess if you properly "enum" your keys in your code, that should be no problem:

    $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]; 
    

    As the print_r(meta_values); gives:

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

    Hope that helps someone, go make a ruckus!

    0 讨论(0)
  • 2020-12-23 17:46

    WordPress have the function get_metadata this get all meta of object (Post, term, user...)

    Just use

    get_metadata( 'post', 15 );
    
    0 讨论(0)
  • 2020-12-23 17:52

    I use it in form of a meta box. Here is a function that dumps values of all the meta data for post.

        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.
    

    Hope it helps. You can use it inside a meta box or at the front-end.

    0 讨论(0)
  • 2020-12-23 17:59

    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

    0 讨论(0)
  • 2020-12-23 18:00
    $myvals = get_post_meta( get_the_ID());
    foreach($myvals as $key=>$val){
      foreach($val as $vals){
        if ($key=='Youtube'){
           echo $vals 
        }
       }
     }
    

    Key = Youtube videos all meta keys for youtube videos and value

    0 讨论(0)
提交回复
热议问题