Domanda

sono abbastanza disperata al PHP, quindi ho pensato di chiedere un po 'di aiuto!

sto usando WordPress come un CMS per un sito di un'agenzia di musica a daviesmusic.com e hanno un sacco di informazioni in più per i vari artisti attraverso i campi personalizzati. Finora, ho appena recuperato i valori dei campi personalizzati uno per uno, in questo modo:

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

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

Questo funziona bene, solo che hanno un sacco di campi personalizzati che richiedono tutti uscite diverse. Ho per esempio una foto per l'artista, un file audio, il titolo del file audio e alcune note circa il file audio, in questo modo:

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

Un sacco di codice. Sono sicuro che ci deve essere un modo più efficiente per recuperare i valori! Tutte le idee?!

Saluti

È stato utile?

Soluzione

Prendete questo esempio da qui :

$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 />";
}

Questo ciclo attraverso tutti i valori personalizzati specificati per il posto (ID # 72 in questo esempio, è possibile ottenere il vostro utilizzando $post->ID come si deve nel codice). È possibile utilizzare $key per stampare il nome del campo, e $value per stampare il valore di quel campo. È possibile ottenere più granulare con come stanno visualizzati con una dichiarazione if elseif else o un switch .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top