Intereting Posts
как можно использовать woocommerce добавить в корзину всплывающее окно? Как использовать плагин RSS-ридера для отображения в виде сообщений? Пользовательский тип почтового сообщения Переписывать (противоречит URL-адресу страницы) Проблема с разбиением на страницы WordPress отображать пользовательские папки мультимедиа для всплывающего окна WordPress как загрузить файл в медиа-библиотеку, используя ссылку Какие методы использовать для создания небольших редактируемых фрагментов текста для статических страниц? Проблема создания пользовательской страницы категории с разбиением на страницы Как я могу назвать файл .php для отображения пользовательских сообщений в соответствии с термином таксономии? Как добавить новый обработчик встраивания, не поддерживаемый oembed Как создать необязательно доступную таблицу стилей для людей с визуальным поведением? Получить настройки плагина и вставить в строку XML Пользовательский цикл с использованием короткого кода в шаблоне пользовательской страницы WordPress CodeHighlighter Как разделить созданные таблицы таблиц плагинов между двумя сайтами WordPress

Как петля знает, какой пост для просмотра?

Я думаю, что я понял большую часть того, как создавать свои собственные темы, но это одно: как может цикл в say page.php знать, какую страницу просматривать, когда он проходит через все страницы моего сайта? Если я загружаю одну из моих отдельных страниц (например, контактную форму), как page.php знает, что она должна загружать только одну конкретную страницу, когда она проходит через все из них?

Ваш цикл на page.php не перебирает все страницы сайта. Он зацикляет все страницы, возвращаемые основным запросом, и хранится в глобальной переменной $wp_query , так как все первичные страницы «WordPress» работают, включая страницы пост-архива, категорию, теги и т. Д. Для любой «страницы» «только одна страница будет в глобальном $wp_query поэтому вы увидите ее только.

Хотя детали могут усложниться, что происходит со страничной загрузкой в ​​WordPress, так это то, что класс WP_Query получает экземпляр довольно рано, и он анализирует загружаемый URL и обрабатывает, какие сообщения запрашивать. Эта информация wp_query глобальную переменную wp_query и после этого ее wp_query многочисленные биты кода (поэтому вы никогда не хотите изменять эту переменную вручную или через query_posts() ). Это чрезвычайно сложный механизм, который вы можете увидеть здесь: https://core.trac.wordpress.org/browser/tags/4.3.1/src/wp-includes/query.php#L1448

Более короткая / упрощенная версия ответа @ s_ha_dum.

Запуск шаблонов для фактического вывода HTML – это последнее, что делает WordPress. Перед тем, как попасть туда, wordpress отправляет URL-адрес и на основании этого определяет конкретный контент, который будет отображаться. На самом деле это не открыто, хотя плагины могут расширить цикл, чтобы сделать какой-нибудь странный материал, он полностью определяется на основе URL-адреса.