Suchen Sie den Post, an den ein Anhang angehängt ist

Ich habe eine Liste von Anhangs-IDs, die mit diesem Array erstellt wurden:

$all_images = get_posts( array( 'post_type' => 'attachment', 'numberposts' => -1, ) ); 

Ist es möglich, die Bild-ID aus dieser Liste zu nehmen und den Titel und den Permalink des POST zu finden, an dem das Bild angehängt ist?

Ich weiß, dass es machbar ist, weil die Medienbibliothek es zeigt, aber ich kann nicht den richtigen Weg finden, dies mit dem Codex zu tun.

Ich habe diesen Code ausprobiert, jedoch gibt er den Titel und den Permanentlink zum Anhang selbst zurück, nicht den Post, an den er angehängt ist:

 $parent = get_post_field( 'post_parent', $imgID); $link = get_permalink($parent); 

Solutions Collecting From Web of "Suchen Sie den Post, an den ein Anhang angehängt ist"

Also, wenn du damit beginnst:

 $all_images = get_posts( array( 'post_type' => 'attachment', 'numberposts' => -1, ) ); 

Dann ist $all_images ein Array von Objekten . Schritt für Schritt durch:

 foreach ( $all_images as $image ) {} 

Innerhalb dieses Foreach können Sie die normalen Parameter verwenden, die für das $post Objekt verfügbar sind:

  • $image->ID ist die ID des Anhangs
  • $image->post_parent ist die ID des übergeordneten $image->post_parent des Anhangs

Also, verwenden wir get_the_title() und get_permalink() , um das zu bekommen, wonach Sie get_permalink() :

 // Get the parent post ID $parent_id = $image->post_parent; // Get the parent post Title $parent_title = get_the_title( $parent_id ); // Get the parent post permalink $parent_permalink = get_permalink( $parent_id ); 

Das wars so ziemlich!

Alles zusammenfügen:

 < ?php // Get all image attachments $all_images = get_posts( array( 'post_type' => 'attachment', 'numberposts' => -1, ) ); // Step through all image attachments foreach ( $all_images as $image ) { // Get the parent post ID $parent_id = $image->post_parent; // Get the parent post Title $parent_title = get_the_title( $parent_id ); // Get the parent post permalink $parent_permalink = get_permalink( $parent_id ); } ?> 

Das $images ist ein Array von Post-Objekten (Attachments). Sie können wp_list_pluck , um die ID ihrer Eltern in ein Array zu extrahieren. ( array_unique und array_filter entfernen doppelte IDs bzw. leere IDs – das mag vielleicht nicht wünschenswert sein).

Sie können sie durch die IDs get_permalink und get_the_title und get_the_title , um den Permalink und den Titel des get_the_title zu erhalten:

 $images = get_posts( array( 'post_type' => 'attachment', 'numberposts' => -1, ) ); $parents = array_filter(wp_list_pluck($images,'post_parent')); $parents = array_unique($parents); echo ""; 

Wir können einfach https://wordpress.org/plugins/find-posts-using-attachment/ verwenden

Ich hoffe es ist der beste Weg!