web-dev-qa-db-fra.com

ajout de champs personnalisés au lien suivant ou précédent

J'essaie de faire en sorte que mes boutons de publication suivants et précédents affichent mon champ personnalisé, mais pour une raison quelconque, il n'affiche pas le champ personnalisé, il est tout simplement vide. Heres mon code.

<div id="next-prev-links">
      <?php

      $previous_post = previous_post_link('%link', ''.$image_prev.'', TRUE);
      $next_post = next_post_link('%link',''.$image_next.'', TRUE);
      $image_prev = get_post_meta( $previous_post->ID, 'image', true);
      $image_next = get_post_meta( $next_post->ID, 'image', true);
      ?>

      <?php if ( $image_prev != '' ) : ?>
        <img src="<?php echo $image_prev; ?>" alt="" />
      <?php endif; ?>

      <?php if ( $image_next != '' ) : ?>
        <img src="<?php echo $image_next; ?>" alt="" />
      <?php endif; ?>

      <?php previous_post_link('%link', 'Previous post', TRUE); ?>
      <?php next_post_link('%link', 'Next post', TRUE); ?>
</div>
3
Jeremy Love

Voici le code de ce que vous essayez de faire (accéder à une valeur personnalisée):

<?php    
global $post;

    $prev_post = get_adjacent_post();
    $next_post = get_adjacent_post( false, '', false );
    $prev_post_id = $prev_post->ID;
    $next_post_id = $next_post->ID;
    // this should, according to your code above, be the http://example.com/your/img.jpg string
    $prev_img_path = get_post_custom_values( 'your_key_name', $prev_post_id );
    $next_img_path = get_post_custom_values( 'your_key_name', $next_post_id );
    $prev_def_path = get_bloginfo('stylesheet_directory').'/default_next_img_inside_theme_folder.jpg';
    $next_def_path = get_bloginfo('stylesheet_directory').'/default_prev_img_inside_theme_folder.jpg';

    echo '<img src="'.!empty($prev_img_path) ? $prev_img_path : $prev_def_path.'" alt="Permalink to previous post" />';
    echo '<img src="'.!empty($next_def_path) ? $next_def_path : $next_img_path.'" alt="Permalink to next post" />';
?>
2
kaiser

Je pense que vous essayez d'extraire ID d'une chaîne de liens que les fonctions *_post_link() renvoient, plutôt que d'un objet de publication.

Si vous avez besoin de l’objet complet du message suivant/précédent, vous devez utiliser get_adjacent_post() .

Post-scriptum Il est de bonne pratique de développer avec WP_DEBUG activé , il est beaucoup plus facile de détecter les incohérences de types.

0
Rarst