В чем разница между $ post_id и get_the_ID ()?

Ответы:

17

get_the_ID()возвращает идентификатор текущего сообщения в виде get_post. Функция Get post предполагает, что текущая запись является globalпеременной,$post если не переданы параметры, указывающие иное. Это означает, что get_the_ID()должно возвращать то же значение, что и в $post->ID. Использование get_the_ID()позволяет избежать прямого обращения с глобальным, хотя вы имеете дело с ним косвенным образом. Использование get_the_ID()имеет тенденцию быть менее подверженным ошибкам в файлах шаблона темы.

$post_idэто имя переменной, обычно используемое для ссылки на идентификатор записи, но это не переменная Core $post, хотя она определена несколько раз в определенных контекстах:

grep -Rn '$ post_id' * | grep global
wp-admin / includes / class-wp-comments-list-table.php: 25: global $ post_id;
wp-admin / includes / class-wp-comments-list-table.php: 45: глобальный $ post_id, $ comment_status, $ search, $ comment_type;
wp-admin / includes / class-wp-comments-list-table.php: 141: глобальный $ post_id, $ comment_status, $ comment_type;
wp-admin / includes / class-wp-comments-list-table.php: 250: global $ post_id;
wp-admin / includes / ajax-actions.php: 691: global $ wp_list_table, $ post_id;
wp-includes / ms-deprecated.php: 115: функция clear_global_post_cache ($ post_id) {
s_ha_dum
источник