Ermitteln, ob das Bild nicht angefügt ist

Ich habe ein Problem mit nicht angehängten Anhängen. Ich verwende image.php, um WordPress Bildergalerie anzuzeigen. Ich zeige immer “großes Bild” (für aktuelles geklicktes Bild) … und unter diesem Bild zeige ich restliche Daumen von dieser Galerie.

Ich benutze diesen Code, um ein “großes” Bild zu zeigen:

$img_attachment = wp_get_attachment_image_src($post->ID, 'medium'); $img_height = $img_attachment[2]; $img_full = wp_get_attachment_image_src($post->ID, 'large'); 
<img src="https://wordpress.stackexchange.com/questions/214471/detect-if-is-image-unattached/"/>

Und diesen Code benutze ich, um die restlichen Daumen von dieser Galerie zu zeigen:

 $gallery_shortcode = ''; $gallery_content = do_shortcode($gallery_shortcode); echo $gallery_content; 

Und was ist ein Problem? Problem ist, dass WordPress die Image.php-Datei auch für nicht angehängte Bilder verwendet. Also wenn du 5K Bilder hast und jemand von Google zu einem der Unattached Bilder kommt (kosch google collect auch nicht angehängte Bilder, egal ob du das willst) dann wird Image.php das Bild wie “big image” und in thumbs unter anzeigen Bei diesem großen Bild wird er ALLE nicht aufgenommenen Bilder zeigen … also wird er alle 5K Bilder auf 1 Seite auflisten!

Ich denke, es gibt 2 Lösungen.

  1. Irgendwie erkennen ob Bild an keinem Post angehängt ist … und wenn das stimmt dann gallery von thumbs unter oder nicht anzeigen
  2. Ich muss einige Änderungen im zweiten Teil des Codes vornehmen, um das zu beheben

Wie macht man das?

Solutions Collecting From Web of "Ermitteln, ob das Bild nicht angefügt ist"

Bei nicht post_parent Bildern hat die Spalte post_parent in der Tabelle wp_posts den Wert 0 .

Ihre Galerie-Shortcode ist in diesem Fall:

 [gallery id="0" columns="4"] 

Das heißt, Sie rufen get_children() mit post_parent als 0 .

Sie können zB den Gallerie gallery_shortcode() Callback gallery_shortcode() direkt verwenden:

 if( $parent_id = $post->post_parent ) { echo gallery_shortcode( [ 'id' => (int) $parent_id, 'columns' => 4 ] ); } 

wo wir nur die Galerie für angehängte Bilder anzeigen.