@rshruslan

WP setup_postdata присылает несколько одинаковых постов, а не последние, как исправить?

global $post;
add_shortcode('text_recent', function($atts) {
    $atts = shortcode_atts( array(
      'kolvo' => 5
    ),$atts);

    $str = '';

    $args = array(
      'numberposts' => $atts['kolvo'],
      'orderby'     => 'date',
      'order'       => 'DESC',
      'post_type'   => 'post'
    );

    $posts = get_posts($args);

    foreach($posts as $item) {
      // var_dump($item);
      $post = $item;
      setup_postdata($post);

      $link = get_the_permalink();
      $title = get_the_title();
      $date = get_the_date();
      $intro = the_field('intro');
      $str .= "<div>
                <div>$date</div>
                <div>$title</div>
                <div>$intro</div>
                <a href = '$link'>GO</a>
              </div>";
    }
    wp_reset_postdata();
    return $str;
  });

Есть код, он должен показываться последние посты - но показывается несколько одинаковых.
Как исправить?
  • Вопрос задан
  • 126 просмотров
Решения вопроса 1
@rshruslan Автор вопроса
Решил проблему, путем добавление в функции(get_the_permalink,get_the_title) $post.
$link = get_the_permalink($post);
$title = get_the_title($post);
$date = get_the_date('Y/m/d',$post);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы