0

Ich habe eine neue Template-Seite erstellt, und ich bin Anzeige benutzerdefinierte Post-Typ in dieser Seite wie folgtwie benutzerdefinierte Post-Typ verwenden dynamisch

    <div class="col-sm-4"> 
        <?php $i = 1 ?> 
        <?php $posts = get_posts(array(
         'post_type' => 'astroalbums', 
         'posts_per_page' => -1 
         )); 
         foreach ($posts as $post) : start_wp(); ?> 
        <?php if ($i == 1): ?> 
        <?php $link = get_permalink($post->ID); ?> 
        <?php the_title('<h3 class="entry-title"><a href="' . esc_url(get_permalink()) . '" rel="bookmark">', '</a></h3>');?> 
        <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(); ?></a> 
        <?php endif; ?> 
        <?php if($i == 3){$i = 1;} else {$i++;} ?> 
        <?php endforeach; ?> 

Meine benutzerdefinierten Post-Typ „astroalbums“ und ich möchte verwenden, es dynamisch. Ich habe 4 benutzerdefinierte Beitragstypen. Ich möchte eine neue Seite im Dashboard erstellen und die oben erstellte Seitenvorlage zuweisen. und jede Seite ruft einen anderen benutzerdefinierten Post-Typ auf. Es ist wirklich eine große Hilfe Danke, Trupti

Antwort

0

Sie die Beiträge richtig abrufen, aber es ist scheint, dass das Problem in der foreach Schleife ist. Da die Standard-WordPress-Schleife nicht verwendet wird, müssen Sie Funktionen aufrufen, die die Post-ID als Parameter erhalten, oder die im $post-Objekt vorhandenen Eigenschaften verwenden (eine Instanz der Klasse WP_POST), um die Daten anzuzeigen.

Eine mögliche Lösung:

<?php 
    $posts = get_posts([ 
     'post_type' => 'astroalbums', 
     'posts_per_page' => 1 
    ]); 
?> 

<?php foreach($posts as $post): ?> 
    <?php $link = get_permalink($post->ID); ?> 

    <h3 class="entry-title"> 
     <a href="<?php echo esc_url($link); ?>" rel="bookmark"> 
      <?php echo get_the_title($post->ID); ?> 
     </a> 
    </h3> 
    <a href="<?php echo esc_url($link); ?>"> 
     <?php echo get_the_post_thumbnail($post->ID); ?> 
    </a> 
<?php endforeach; ?> 
Verwandte Themen