mehrere Wordpress benutzerdefinierte Post Meta-Werte
Frage
Ich bin in PHP ziemlich hoffnungslos, so dass ich dachte, ich für ein bisschen Hilfe bitten würde!
Ich bin mit Wordpress als CMS für eine Musikagentur Website unter daviesmusic.com und haben viele zusätzliche Informationen für die verschiedenen Künstler über benutzerdefinierte Felder. Bisher habe ich nur die benutzerdefinierten Feldwerte nacheinander abgerufen werden, etwa so:
<?php
//audio title
$audio_title = get_post_meta($post->ID, 'audio_name', true);
if ($audio_title) :
?>
<p><?php echo $audio_title; ?></p>
Das funktioniert gut, nur habe ich viele benutzerdefinierte Felder, dass alle verschiedenen Ausgänge erfordern. Ich habe zum Beispiel ein Foto für den Künstler, eine Audio-Datei, der Titel der Audio-Datei und ein paar Notizen über die Audio-Datei, etwa so:
<?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;
?>
Viele Code. Ich bin es sicher ein effizienter Weg sein, müssen die Werte abrufen! Irgendwelche Ideen?!
Prost
Lösung
Nehmen Sie dieses Beispiel von hier :
$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 />";
}
Dies wird durch alle angegebenen benutzerdefinierten Werte für die Post (id # 72 in diesem Beispiel können Sie Ihre mit $post->ID
erhalten, wie Sie in Ihrem Code haben). Sie können $key
verwenden Sie die Feldnamen zu drucken, und $value
den Wert dieses Feldes zu drucken. Sie können mehr granulare bekommen mit, wie sie sind eine if elseif else
Anweisung oder eine switch
angezeigt mit .