it-swarm.com.de

Anhang nur vom Autor als Nächstes und Vorheriges abrufen

Ich versuche, den nächsten und vorherigen Anhang von dem Benutzer abzurufen, der gerade angezeigt wird. Das habe ich und es funktioniert hervorragend, außer es werden alle Anhänge anstatt nur die von einem bestimmten Benutzer abgerufen.

<p>
<?php $attachment_size = apply_filters( 'twentyten_attachment_size', 900 ); 
echo wp_get_attachment_image($post->ID, array( $attachment_size, 9999) ); // filterable image width with, essentially, no limit for image height.?>
</p>

<div id="next-prev-links"><div class="previmg"><?php previous_image_link(); ?></div><p id="previmgtxt" class="imgtxt"><?php previous_image_link(false, 'Previous Photo'); ?></p>
<div class="nextimg"> <?php next_image_link(); ?></div><p id="nextimgtxt" class="imgtxt"><?php next_image_link(false, 'Next Photo'); ?></p></div>
2
Jeremy Love

Hallo @ Jeremy Love:

Gute Frage! Und das ist eine gute Frage, da es anscheinend keine Hooks gibt, mit denen Sie Code zum Filtern nach Autor schreiben können.

Das bedeutet leider, dass Sie ihre Kopie kopieren müssen, um Ihre eigenen Funktionen zu erstellen, damit Sie die erforderliche Änderung von 1 Zeile vornehmen können (in diesem Fall 'post_author' => $post->post_author,). Hier sind Funktionen, die Sie können sollten benutzen:

function yoursite_previous_image_link($size = 'thumbnail', $text = false) {
  yoursite_adjacent_image_link(true, $size, $text);
}
function yoursite_next_image_link($size = 'thumbnail', $text = false) {
  yoursite_adjacent_image_link(false, $size, $text);
}
function yoursite_adjacent_image_link($prev=true,$size='thumbnail',$text=false) {
  global $post;
  $post = get_post($post);
  $attachments = array_values(get_children( array(
   'post_author' => $post->post_author,
   'post_parent' => $post->post_parent, 
   'post_status' => 'inherit', 
   'post_type' => 'attachment', 
   'post_mime_type' => 'image', 
   'order' => 'ASC', 
   'orderby' => 'menu_order ID'
   )));

  foreach ( $attachments as $k => $attachment )
    if ( $attachment->ID == $post->ID )
      break;
  $k = $prev ? $k - 1 : $k + 1;
  if ( isset($attachments[$k]) )
    echo wp_get_attachment_link($attachments[$k]->ID, $size, true, false, $text);
}
1
MikeSchinkel