Question

Je suis assez désespéré à PHP, donc je pensais que je vous demande un peu d'aide!

J'utilise WordPress comme un CMS pour un site de l'agence de musique daviesmusic.com et ont beaucoup d'informations supplémentaires pour les différents artistes via les champs personnalisés. Jusqu'à présent, je viens de récupérai les valeurs de champ personnalisé, un par un, comme suit:

<?php
    //audio title
    $audio_title = get_post_meta($post->ID, 'audio_name', true);
    if ($audio_title) :
?>

    <p><?php echo $audio_title; ?></p>

Cela fonctionne bien, que j'ai beaucoup de champs personnalisés qui nécessitent toutes les sorties différentes. J'ai par exemple une photo pour l'artiste, un fichier audio, le titre du fichier audio et quelques notes sur le fichier audio, comme suit:

    <?php
    //profile image
    $profile_pic = get_post_meta($post->ID, 'profileimage', true);
    if($profile_pic) :
?>

    <img class="post-thumb-single" src="<?php bloginfo('template_directory'); ?>/timthumb.php?src=<?php echo $profile_pic; ?>&a=t&h=278&w=278&zc=1" alt="<?php the_title(); ?>" />

<?php   
    endif;
    //photographer
    $photographer = get_post_meta($post->ID, 'photographer', true);
    if($photographer) :
?>

    <p id="photographer">Photographer: <b><?php echo $photographer; ?></b></p>

<?php
    endif;
    //audio title
    $audio_title = get_post_meta($post->ID, 'audio_title', true);
    if ($audio_title) :
?>

    <h4 class="nsmb">Audio files</h4>

    <p><?php echo $audio_title; ?></p>

<?php
    //audio file
    $audio = get_post_meta($post->ID, 'audiofile', true);
    if ($audio) :
?>


<p class="audio" id="audioplayer_1">Sorry, there was a problem loading the file.</p>
<script>AudioPlayer.embed("audioplayer_1", {soundFile: "<?php echo $audio; ?>"});</script>


  <?php
    $audio_credits_1 = get_post_meta($post->ID, 'audio_credits_1', true);
    if ($audio_credits_1) :
  ?>

    <p class="audio_cred"><?php echo $audio_credits_1; ?></p>

    <?php
        endif; endif; endif;
    ?>

Beaucoup de code. Je suis sûr qu'il doit y avoir un moyen plus efficace de récupérer les valeurs! Toutes les idées?!

Vive

Était-ce utile?

La solution

Prenez cet exemple de :

$custom_fields = get_post_custom(72);
$my_custom_field = $custom_fields['my_custom_field'];
foreach ( $my_custom_field as $key => $value ){
    echo $key . " => " . $value . "<br />";
}

Ce cycle permet de faire défiler toutes les valeurs personnalisées spécifiées pour le poste (id # 72 dans cet exemple, vous pouvez obtenir le vôtre en utilisant $post->ID que vous avez dans votre code). Vous pouvez utiliser $key pour imprimer le nom du champ et $value d'imprimer la valeur de ce champ. Vous pouvez obtenir plus granulaire avec la façon dont ils sont affichés en utilisant une instruction if elseif else ou un switch .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top