wake-up-neo.com

Wenn das ausgewählte Bild nicht vorhanden ist, zeigen Sie den Inhalt des Beitrags an

Bevor ich mich entschied, diese Frage zu stellen, googelte ich und suchte in diesem Forum, fand aber keine Antwort auf meine Frage, obwohl es wie ein Duplikat erscheinen mag.

Wie auch immer, ich habe einen benutzerdefinierten Beitragstyp erstellt, der das angegebene Bild verwendet. Jetzt möchte ich festlegen, ob kein ausgewähltes Bild vorhanden ist, den Inhalt des Posts anzeigen und damit zeigen, was auch immer in meinem Post enthalten ist (in meinem Fall ist es ein eingebettetes YouTube-Video).

Bisher habe ich zu functions.php folgendes hinzugefügt:

function zm_get_backend_preview_thumb($post_ID) {
    $post_thumbnail_id = get_post_thumbnail_id($post_ID);
    if ($post_thumbnail_id) {
        $post_thumbnail_img = wp_get_attachment_image_src($post_thumbnail_id, 'thumbnail');
        return $post_thumbnail_img[0];
    }
}

function zm_preview_thumb_column_head($defaults) {
    $defaults['featured_image'] = 'Image';
    return $defaults;
}

add_filter('manage_posts_columns', 'zm_preview_thumb_column_head');

function zm_preview_thumb_column($column_name, $post_ID) {
    if ($column_name == 'featured_image') {
        $post_featured_image = zm_get_backend_preview_thumb($post_ID);
            if ($post_featured_image) {
                echo '<img src="' . $post_featured_image . '" />';
            }

    }
}

add_action('manage_posts_custom_column', 'zm_preview_thumb_column', 10, 2);
}

Und auf meiner Seite, auf der ich das stattdessen gezeigte Video-Bild zeigen möchte, habe ich den folgenden Code:

<?php
// WP_Query arguments
$args = array (
    'post_type'              => array( 'zm_gallery' ),
);
// The Query
$query_gallery = new WP_Query( $args );

// The Loop
if ( $query_gallery->have_posts() ) {

    while ( $query_gallery->have_posts() ) {
        $query_gallery->the_post();

        echo '<ul>';
        echo '<li>';
        $name = get_post_meta($post->ID, 'ExternalUrl', true);

        if( $name ) { ?>
            <a href="<?php echo $name; ?>"target="_blank"><?php the_post_thumbnail(); ?></a>
           <?php
        } else {
            the_post_thumbnail();
        }   

        echo '</li>';
        echo '</ul>';
    }    
} else {
    if ( "" === $post->post_content ) {
        the_post_thumbnail();
    } else {
        the_content();
    }
}

// Restore original Post Data
wp_reset_postdata();
?>

Ihre Hilfe wäre sehr dankbar. Ich danke Ihnen allen im Voraus.

1
Nancy

the_post_thumbnail gibt das Thumbnail aus, also versuchen Sie es vielleicht

if ( has_post_thumbnail() ) {
  the_post_thumbnail();
} else {
  the_content();
}

Hoffe das hilft

2
David

Mir ist aufgefallen, dass ich zwei Probleme mit meinem Code auf der Seite hatte, auf der der Inhalt der Posts angezeigt werden musste:

  1. Ich habe folgendes gesagt:

        if ( "" === $post->post_content )
        {
             the_post_thumbnail();
        }
        else
        {
            the_content();
        } 
    

    am falschen Ort.

    Ich hätte das unten in die Zeile setzen sollen:

    if( $name ) { ?>
            <a href="<?php echo $name; ?>"target="_blank"><?php the_post_thumbnail(); ?></a>
            <?php } else {
        //MY CODE SHOULD GO HERE
    } 
    
    1. Der einzige Code, den ich anstelle des Codes unter Punkt 1 hätte setzen sollen, ist:

      the_content();
      

Das hat mir gebracht, was ich wollte. Und das Problem gelöst. Ich hoffe, jemand findet dies in Zukunft hilfreich. Ps. Ich habe versucht, die Antwort zu formatieren, aber etwas stimmt nicht. Ich würde gerne die Bearbeitung akzeptieren, damit es so aussieht, wie es sollte.

0
Nancy