Intereting Posts
Тема одной страницы: Могу ли я отображать другие страницы с соответствующими темами на другой странице? Теги нарушают пользовательские функции Excerpt Добавление дополнительных полей на страницу добавления пользователей на панели управления Есть ли способ добавить пользовательский текст + ссылку над результатами поиска для разных поисков? Попытка перечислить дочерние страницы с WP_Query wp_dropdown_categories с множественным выбором Как создать панель настроек под плагином Показать пользовательскую таксономию почтового отправления Как декодировать временный кэш WordPress, хранящийся в базе данных? Facebook Комментарий Count График Cron не обновляется после запуска Как я могу реализовать фасетный поиск с помощью WordPress 3.x? Как добавить флажок и переключатель в страницу профиля Пользовательский запрос wpdb – как сортировать сообщение по другой таблице meta_count Существует ли предопределенная функция обратного вызова для настраиваемых категорий?

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

Я думаю, что я понял большую часть того, как создавать свои собственные темы, но это одно: как может цикл в 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-адреса.