it-swarm.com.de

setup_postdata scheint nicht zu funktionieren

Ich habe Probleme mit setup_postdata(). Nach meinem Verständnis muss ich the_permalink() verwenden, wenn ich Funktionen wie the_title() oder setup_postdata() verwenden möchte.

Momentan gibt the_permalink() oder the_title() nichts zurück (leer). Ich habe auch versucht, echo get_the_title() zu sehen, was passiert, aber selbst das führt zum gleichen Ergebnis.

Hier ist der Code, der sich auf das Problem bezieht:

  $posts = get_posts($args);
  foreach($posts as $post) {
    setup_postdata($post);
  ?>
  <article class="col two tablet-four mobile-six box">
    <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
      <div class="featured-image">
      <?php if(has_post_thumbnail(get_the_ID())): ?>
        <?php $image = wp_get_attachment_image_src(get_post_thumbnail_id(get_the_ID()), array(650,200)); ?>
        <div style="background: url('<?php echo $image[0]; ?>') center center no-repeat;"></div>
      <?php endif; ?>
      </div>
      <section class="content">
        <?php $cat = get_the_category(get_the_ID()); ?>
        <span class="category"><?php echo $cat[0]->cat_name; ?></span>
        <?php the_title(); ?>
        <?php the_excerpt(); ?>
      </section>
    </a>
  </article>
  <? }
  wp_reset_postdata();

Dieser Code befindet sich also im Grunde genommen in einer Funktion, die eine Rückruffunktion für eine AJAX -Anforderung ist. Die Funktion erfasst die nächste Gruppe von Posts, um zu simulieren, dass jemand auf die Schaltfläche für die nächste Seite klickt.

Nach get_posts() wird die Variable $posts mit den richtigen Einträgen gefüllt, sodass sie etwas erhält.

Im Moment antwortet es nur mit den Tags, in denen sich keine Daten befinden.

Vielen Dank.

1
Koralarts

Nach dem Codex scheinen Sie den wichtigsten global $post; am Anfang so zu überspringen:

global $post;
$posts = get_posts($args);
  foreach($posts as $post) {
    setup_postdata($post);
  ?>
  <article class="col two tablet-four mobile-six box">
    <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
      <div class="featured-image">
      <?php if(has_post_thumbnail(get_the_ID())): ?>
        <?php $image = wp_get_attachment_image_src(get_post_thumbnail_id(get_the_ID()), array(650,200)); ?>
        <div style="background: url('<?php echo $image[0]; ?>') center center no-repeat;"></div>
      <?php endif; ?>
      </div>
      <section class="content">
        <?php $cat = get_the_category(get_the_ID()); ?>
        <span class="category"><?php echo $cat[0]->cat_name; ?></span>
        <?php the_title(); ?>
        <?php the_excerpt(); ?>
      </section>
    </a>
  </article>
  <? }
  wp_reset_postdata();
3
1fixdotio