• Решено egorpromo

    (@egorpromo)


    Помогите разобраться с назначением функции setup_postdata()
    Я делаю простейшую тему с файлом index.php. В этот файл вношу такой код:

    <ul>
    <?php
    global $post;
    $args = array( 'numberposts' => 5);
    $myposts = get_posts( $args );
    foreach( $myposts as $post ) :	setup_postdata($post); ?>
    
    <li><a>"><?php the_title(); ?></a></li>
    <?php endforeach; ?>
    </ul>

    Он выводит названия всех трёх записей, которые я сделал. Всё как и надо.
    Затем я убираю функцию setup_postdata($post) и всякое упоминание об переменной $post:

    <ul>
    <?php
    $args = array( 'numberposts' => 5);
    $myposts = get_posts( $args );
    foreach( $myposts as $post ) :	 ?>
    	<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
    <?php endforeach; ?>
    </ul>

    И результат не изменился! Тогда для чего нужна была эта функция?

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    В данном примере действительно можно обойтись без неё.

    Нужна для дополнительных данных — например, <?php the_content(); ?>.

    Автор egorpromo

    (@egorpromo)

    Во втором способе действительно невозможно использовать the_content()…
    Что-то не очень понятно, чем the_content() отличается от the_title()? Они же обе предназначены для использования внутри Loop. Какой смысл делать одну функция недоступной, а другую доступной, если они обе могут быть использованы для вывода данных об посте?

Просмотр 2 ответов — с 1 по 2 (всего 2)

Тема «Для чего нужна функция setup_postdata()» закрыта для новых ответов.