Pregunta

Estoy bastante desesperada en PHP, por lo que pensé que había que pedir un poco de ayuda!

Estoy usando WordPress como un CMS para un sitio de la agencia de la música en daviesmusic.com y tienen un montón de información adicional para los diversos artistas a través de los campos personalizados. Hasta ahora, sólo he recuperado los valores de los campos personalizados, uno por uno, así:

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

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

Esta bien las obras, lo único que tiene un montón de campos personalizados que todos requieren diferentes salidas. Tengo, por ejemplo, una foto de la artista, un archivo de audio, el título del archivo de audio y algunas notas sobre el archivo de audio, así:

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

Las porciones de código. Estoy seguro de que debe haber una manera más eficiente para recuperar los valores! ¿Alguna idea?!

Saludos

¿Fue útil?

Solución

Tome este ejemplo de aquí :

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

Este ciclo voluntad a través de todos los valores especificados personalizados para el puesto (ID # 72 en este ejemplo, se puede obtener la suya utilizando como $post->ID que tiene en su código). Puede utilizar $key para imprimir el nombre del campo, y $value para imprimir el valor de ese campo. Puede obtener más granular con la forma en que se muestran mediante una instrucción o una if elseif else switch .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top