Следует ли сбросить 'setup_postdata ()' с помощью 'wp_reset_postdata ()'?

Начиная с примера имеет смысл, поэтому вот пример функции:

function seo_meta_tags() { global $post; if( is_singular() ) { setup_postdata( $post ); $description = str_replace( '... <a class="read-more" href="' . get_permalink() . '">Cont. reading &rarr;</a>', '...', get_the_excerpt() ); wp_reset_postdata(); echo '<meta itemprop="description" name="description" content="' . $description . '">'; } } 

ПРИМЕЧАНИЕ . Код предназначен только для того, чтобы дать вам представление о том, что я пытаюсь выполнить, а не о том, как я это делаю.

Теперь, придя к setup_postdata( $post ) , следует ли setup_postdata( $post ) быть закрытым с помощью wp_reset_postdata() как показано в примере?

Поскольку setup_postdata с глобальными переменными, которые могут быть (наиболее вероятно: являются ) использованы другими циклами (включая The Loop ), вы всегда должны переустанавливать эти переменные на то, что они должны быть – в соответствии с основным запросом (то есть, что WordPress считает пользователь хотел в первую очередь).
Кроме того, setup_postdata снабжается (ссылкой) глобальным значением $post , которое впоследствии может быть изменено.

Итак, да, setup_postdata должен сопровождаться wp_reset_postdata .

Как вы можете видеть в коде , функция reset_postdata , по сути, вызывает setup_postdata на исходном объекте $post .