web-dev-qa-db-fra.com

Affiche toutes les clés méta et valeurs méta du même identifiant dans wordpress

J'essaie d'afficher les méta-valeurs post et les clés méta. Si une seule valeur doit être affichée, je peux utiliser la fonction simple get_post_meta (), mais ce dont j'ai besoin maintenant, c'est de publier toutes les méta-données post avec le même post_id. J'ai essayé d'utiliser la boucle foreach mais rien ne s'affiche. pouvez-vous s'il vous plaît vérifier mes 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;
}
23
user2901740

Utilisation par défaut

Obtenez la méta pour toutes les clés:

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

Obtenez la méta pour une seule clé:

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

par exemple:

$myvals = get_post_meta($post_id);

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

Remarque: certaines clés méta indésirables commençant par "underscore (_)" viendront également, vous devrez donc les filtrer.

Pour référence: Voir Codex

53
Gopal S Rathore

Je l'utilise sous la forme d'une boîte à méta. Voici une fonction qui vide les valeurs de toutes les métadonnées pour 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.

J'espère que ça aide. Vous pouvez l'utiliser dans une boîte à méta ou au début.

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

Key = vidéos Youtube toutes les clés méta pour les vidéos youtube et la valeur

1
alpc