it-swarm.com.de

Post-Thumbnail anzeigen, ohne ausgewähltes Bild zu sein

Ich hoffe, dass ich erklären kann, was ich hier vorhabe. Auf der Hauptseite meines aktuellen Projekts zeige ich die Thumbnails der einzelnen Posts zusammen mit einem Auszug aus dem Inhalt des Posts an. Auf jeder der tatsächlichen Postseiten befindet sich eine WP Standardgalerie mit 2 bis 4 Bildern.

Was ich tun möchte, ist, es so zu gestalten, dass mein Kunde nicht immer ein ausgewähltes Bild in jedem Beitrag verwenden muss, sodass das Miniaturbild immer auf der Startseite angezeigt wird. Mit anderen Worten, im Moment muss er ein Bild auswählen, das vorgestellt werden soll, damit dieses repräsentative Vorschaubild für jeden Beitrag in der Schleife auf der Homepage angezeigt wird.

Kann ich es so machen, dass es immer noch eine Miniaturansicht gibt, die den Beitrag darstellt, auch wenn er kein ausgewähltes Bild für einen Beitrag auswählt? Kann ich es automatisch machen, indem ich das erste Bild in der Galerie des Posts auswähle, wenn kein ausgewähltes Bild ausgewählt ist?

Nur für den Fall, hier ist einiges von dem, was ich verwende:

              <div id="image-wrap">
             <?php 
              if ( has_post_thumbnail() ) {
              the_post_thumbnail();
               } 
              ?>




         </div><!--end image-wrap-->


                <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
                 <?php the_title('<h2 class="entry-title"><a href="' .  

get_permalink() . '" title="' . the_title_attribute('echo=0') . '" 
rel="bookmark">', '</a></h2>'); ?>

                 <div class="entry-content">
<?php the_content(__('Continue reading', 'example')); ?>
<?php wp_link_pages('before=<p class="pages">' . __('Pages:','example') .

'&after=</p>'); ?>
</div>





</div>

<?php endwhile; ?>

<?php else : ?>

<p class="no-posts"><?php _e('Sorry, no posts matched your criteria',  
'example'); ?></p>

<?php endif; ?>
<?php wp_reset_query(); ?> 

Dann ist dies in meiner FUNCTIONS-Datei:

 // This theme uses post thumbnails
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 150, 100, true );




// Automatically makes featured image thumbs a clickable link
add_filter( 'post_thumbnail_html', 'my_post_image_html', 10, 3 );

function my_post_image_html( $html, $post_id, $post_image_id ) {

$html = '<a href="' . get_permalink( $post_id ) . '" title="' . esc_attr(   
get_post_field( 'post_title', $post_id ) ) . '">' . $html . '</a>';
return $html;

}

// This theme displays full size featured image on the Post's page
function InsertFeaturedImage($content) {

global $post;

$original_content = $content;

if ( current_theme_supports( 'post-thumbnails' ) ) {

    if ((is_page()) || (is_single())) {
        $content = the_post_thumbnail('page-single');
        $content .= $original_content;

    }

}
return $content;
}

add_filter( 'the_content', 'InsertFeaturedImage' ); 

http://dependablecarcompany.com ist die Adresse, wenn Sie sehen möchten, wovon ich spreche. Sie werden sehen, was ich meine, wenn Sie sich den Beitrag "1991 GMC Sierra" ansehen. Ich habe für den Beitrag kein ausgewähltes Bild verwendet, daher wird kein Miniaturbild angezeigt. Danke im Voraus!

5
Anthony Myers

Kann nicht empfehlen,Holen Sie sich das ImagePlugin (von Justin Tadlock) genug. Es gehört zu den besten auf dem Markt, ist sehr gut gewartet und ordentlich - was noch wichtiger ist, es macht das, was Sie brauchen, und bietet Ihnen eine ganze Reihe von Optionen.

Wie zieht es Bilder?

  1. Sucht ein Bild nach benutzerdefiniertem Feld (eines Ihrer Wahl).

  2. Wenn in einem benutzerdefinierten Feld kein Bild hinzugefügt wird, suchen Sie mit the_post_thumbnail () nach einem Bild (neue Bildfunktion von WP 2.9).

  3. Wenn kein Bild gefunden wird, wird ein an Ihren Beitrag angefügtes Bild abgerufen.

  4. Wenn kein Bild angehängt ist, kann es ein Bild aus Ihrem Beitragsinhalt extrahieren (standardmäßig deaktiviert).

  5. Wenn zu diesem Zeitpunkt kein Bild gefunden wird, wird standardmäßig ein von Ihnen festgelegtes Bild verwendet (nicht standardmäßig festgelegt).

6
its_me

Suchen Sie einfach nach der Miniaturansicht, und verwenden Sie stattdessen das erste Bild aus der Galerie, wenn es nicht festgelegt ist. Etwas wie das:

$size = 'thumbnail'; // whatever size you want
if ( has_post_thumbnail() ) {
    the_post_thumbnail( $size );
} else {
    $attachments = get_children( array(
        'post_parent' => get_the_ID(),
        'post_status' => 'inherit',
        'post_type' => 'attachment',
        'post_mime_type' => 'image',
        'order' => 'ASC',
        'orderby' => 'menu_order ID',
        'numberposts' => 1)
    );
    foreach ( $attachments as $thumb_id => $attachment ) {
        echo wp_get_attachment_image($thumb_id, $size);
    }
}

Grundsätzlich gibt has_post_thumbnail () false zurück, wenn kein ausgewähltes Bild vorhanden ist. Rufen Sie get_children an, um die angehängten Bilder für diesen Beitrag abzurufen. Beachten Sie, dass numberposts = 1 ist, sodass nur der erste angezeigt wird. Dann geben Sie dieses Bild mit wp_get_attachment_image aus.

Beachten Sie, dass ich foreach verwendet habe, obwohl ich hier nur 1 Bild erhalte. Dies liegt daran, dass get_children ein Array von Posts zurückgibt, unabhängig davon, wie viele Posts zurückgegeben werden. Ich "schleife" also durch ein Array der Größe 1. Wenn es keine Bilder gibt, ist das Array leer und es wird nichts ausgegeben.

Wenn Sie get_children nicht mögen, kann eine ähnliche neue WP_Query erstellt werden, um das erste Anhangsbild auf ähnliche Weise abzurufen.

  • Der foreach-Schleife wurde die fehlende geschweifte Klammer hinzugefügt.
6
Otto