it-swarm.com.de

Wie zeige ich das_post_thumbnail an, wenn ein Post eines hat oder auf andere Weise das erste Bild in einem Post?

Ich möchte eine Bedingung erstellen, die prüft, ob ein Beitrag ein Miniaturbild enthält und ob es angezeigt wird. Andernfalls wird das erste Bild in einem Beitrag angezeigt.

Ich habe so etwas in meiner loop.php versucht, aber es schien nicht zu funktionieren:

<?php if (has_post_thumbnail()) { ?>
<a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(array(640,320)); ?></a>
<?php } else { ?>
<a href="<?php the_permalink(); ?>"><img src="<?php echo catch_that_image(); ?>" /></a>
<?php } ?>

Das geht in meiner functions.php Datei:

<?php
    function catch_that_image() {
        global $post, $posts;
        $first_img = '';
        ob_start();
        ob_end_clean();
        $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
        $first_img = $matches [1] [0];

        // no image found display default image instead
        if(empty($first_img)){
             $first_img = get_bloginfo('template_url')."/images/no_image.gif";
        }
            return $first_img;
    }

    $imgURL = catch_that_image();
?>
3
Matt

Holen Sie sich das Bild macht was Sie brauchen und besser. Es ist NICHT überwältigend mit vielen unnötigen Funktionen und macht das, was es sagt. Probieren Sie es aus, um zu sehen, ob es das tut, was Sie brauchen.

Wie holt sich das Image Plugin Bilder?

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

  • 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).

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

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

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

3
its_me

Dies sollte es tun, ich benutze es und es ist super einfach und leicht, füge es einfach in deinen functions.php ein:

function autoset_featured() {
    global $post;
    $already_has_thumb = has_post_thumbnail($post->ID);
    if (!$already_has_thumb) {
        $attached_image = get_children( 
            "post_parent=$post->ID&post_type=attachment&post_mime_type=image&numberposts=1" 
        );
        if ($attached_image) {
            foreach ($attached_image as $attachment_id => $attachment) {
                set_post_thumbnail($post->ID, $attachment_id);// the size of the thumbnail is defined in a function above
            }
        }
    }
}  //end function

add_action('the_post', 'autoset_featured');
add_action('save_post', 'autoset_featured');
add_action('draft_to_publish', 'autoset_featured');
add_action('new_to_publish', 'autoset_featured');
add_action('pending_to_publish', 'autoset_featured');
add_action('future_to_publish', 'autoset_featured');
1
Sara