J'ai créé une boucle pour les utilisateurs connectés uniquement qui fonctionne parfaitement pour toutes les données, à l'exception des clés méta. J'aimerais pouvoir également extraire des méta-clés mais je n'ai pas eu de chance jusqu'à présent.
Ceci est ma boucle (basé sur ce post ):
<?php add_shortcode( 'current-userposts' , 'show_userposts' );
function show_userposts(){
$user_id = get_current_user_id();
$loop = new WP_Query( array( 'post_type' => 'photo-spot', 'author' => $user_id ) );
if ( $loop->have_posts() ) {
?>
<form class="pps-results"><?php
while ( $loop->have_posts() ) : $loop->the_post(); ?>
<fieldset>
<legend class="title-block">
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a>
</legend>
<div class="category-block">
<?php $categories = get_the_category();
if ( ! empty( $categories ) ) {
echo esc_html( $categories[0]->name );
}
?>
</div>
<?php
if ( has_post_thumbnail() ) { // check if the post has a Post Thumbnail assigned to it.
?><div class="image-block"><?php
the_post_thumbnail( 'thumbnail' );
?></div><?php
}
?>
<div class="address-block">
<?php echo get_post_meta($post->ID, '_cf_address', true); ?>
</div>
</div>
</fieldset>
<div class="clear"></div>
<?php endwhile; ?>
</form>
<?php
}
wp_reset_postdata();
} ?>
La fonction est appelée via un shortcode
Lorsque j'utilise exactement la même boucle dans un modèle search.php, la valeur personnalisée ('_cf_address') s'affiche parfaitement, mais pas avec le shortcode ...
Une idée de ce qui pourrait mal se passer?
PS> L'écran d'aperçu ne montre pas mon code html - j'espère qu'il s'affiche correctement.
Il n'y a pas de $post
var local dans votre fonction, vous devez d'abord utiliser global $post
ou get_the_ID()
.
get_post_meta( get_the_ID(), '_cf_address', true );