Intereting Posts
Чтобы войти в систему как другой пользователь Неустранимая ошибка: Непринятая ошибка: вызов функции undefined do_action_ref_array () при использовании функции wp_signon Разбиение на страницы для пользовательского магазина петли woocommerce Создание поля ввода, необходимого с точки зрения WP Что это за файл: wp-config-wpe.php? Как я могу добавить «Использовать как признанное изображение» в пользовательский метабокс? Пользовательский тип сообщения – повторяющиеся пробки страницы Получить сообщение со ссылкой Отключить обновление базы данных? сломать мой сайт Пейджинговые комментарии не показывают Удалена ли база данных при нажатии кнопки «переустановить» в обновлениях WordPress? Создайте короткий код, который создает форму для редактирования пользователями своей информации Как проверить, отображается ли панель администратора текущему пользователю? Добавить Slug Metabox в сообщения для авторов Запросить данные WP с помощью API WPDB извне WordPress

Руководство с петлей для CMS

Возможно, я собираюсь сделать это неправильно, но это мой сценарий … Я бы хотел использовать WordPress как CMS, а не платформу для ведения блогов. У меня есть веб-сайт, который будет находиться где-то между 25-50 страницами и не будет иметь никаких сообщений.

Я хочу разработать свою собственную тему, которая должна быть довольно простой, однако я немного запутался в использовании функций Loop.

Я это понимаю:

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> 

используется для страницы, которая вытягивает x количество сообщений, однако в моем сценарии я хочу только вытащить содержимое страницы, а не x количество сообщений. Нужно ли создавать пользовательские SQL-запросы?

Все примеры, которые я использую, используют The Loop для сообщений. Если я просто использую статические страницы, мне даже нужно использовать The Loop? Могу ли я использовать уникальный URL-адрес, чтобы вытащить страницу из столбца post базы данных MySQL?

Надеюсь, это имеет смысл.

Solutions Collecting From Web of "Руководство с петлей для CMS"

Строго, вам не нужно использовать цикл в шаблоне страницы, но это не повредит, содержимое страницы все равно будет загружаться, цикл будет запускаться только один раз, поскольку есть только одно сообщение / страница. Многие темы включают цикл в шаблонах страниц, я думаю, для некоторых проблем с компиляцией.

Если вы строите свой шаблон страницы с нуля, вам не нужно добавлять к нему цикл, вы правы, WordPress получит правильный контент из URL-адреса, но вам все равно нужно запустить функцию the_post (), прежде чем использовать теги шаблонов, такие как the_title (), the_content () и т. д. Просто поместите the_post () в начало шаблона.

Надеюсь, что это имеет смысл для вас, не стесняйтесь спрашивать, нужны ли вам дополнительные разъяснения.

ИНФОРМАЦИОННОЕ СОДЕРЖАНИЕ

Страницы , подобные сообщениям , хранятся в базе данных как post_types , большая разница в том, что страницы живут за пределами обычного списка, основанного на времени. Проверьте, что говорит код

Какие страницы:

  • Страницы предназначены для контента, который меньше времени, чем сообщения.
  • Страницы могут быть организованы в страницы и подстраницы.
  • Страницы могут использовать разные шаблоны страниц, которые могут содержать файлы шаблонов, теги шаблонов и другой код PHP.
  • У страниц может быть более сложный массив легкодоступных настроек отображения при использовании сложных тем с обширной настройкой.
  • По сути, Страницы предназначены для не-блога. Можно удалить все или большинство сообщений из установки WordPress и, таким образом, создать стандартный веб-сайт, не принадлежащий к блогу.

Какие страницы не являются:

  • Страницы не являются сообщениями, и они не выписываются из более крупных художественных произведений. Они не проходят через главную страницу вашего блога. Плагины WordPress доступны для изменения значений по умолчанию, если это необходимо.
  • Страницы не могут быть связаны со Категориими и не могут быть назначены тегами. Организационная структура страниц поступает только из их иерархических взаимосвязей, а не из тегов или категорий.
  • Страницы не являются файлами. Они хранятся в вашей базе данных точно так же, как и сообщения. Хотя вы можете поместить теги шаблонов и PHP-код в файл шаблона страницы, вы не можете поместить их в контент страницы или публикации без плагина WordPress, такого как Exec-PHP, который перезаписывает процесс фильтрации кода.
  • Страницы не включены в фид вашего сайта.
  • Страницы и сообщения могут привлекать внимание по-разному от людей или поисковых систем.
  • Страницы (или конкретная почта) могут быть установлены как статическая передняя страница, если требуется, с отдельной страницей, заданной для последних сообщений в блоге, обычно называемых «блог».

Страницы в основном используются для целей, не связанных с ведением блога, и прекрасно сочетают ваши потребности. Вы можете посмотреть, как создавать шаблоны страниц в кодексе.

РЕАЛЬНЫЙ ВОПРОС

Чтобы ответить на ваш вопрос, вся информация, введенная на страницу, хранится в базе данных, как и в сообщениях, но в отличие от сообщений, которые хранятся как post_type , страницы хранятся как page post_type . Чтобы получить эту информацию и отобразить эту информацию, вы должны сделать запрос к базе данных для вызова этой информации.

Вот как основной запрос определяет, какая информация должна возвращаться при загрузке страницы, взятая из обзора запросов

Итак, вот шаги, которые WordPress использует для определения того, какие сообщения или страницы отображаться на странице, и отображать их:

  • Когда посетитель сначала нажимает или набирает URL-адрес страницы, входящей в ваш блог, WordPress запускает несколько основных файлов (wp-config.php, wp-settings.php и т. Д.). Если вас интересует особенности порядка загрузки файла, начинаются с index.php и следуют цепочке файлов, так как каждый PHP-файл содержит / требует дополнительных файлов PHP (или прочитал эту отличную запись на сайте peoplehell.net)
  • WordPress загружает и инициализирует любые подключенные вами плагины (вызывает действия инициализации плагина).
  • WordPress загружает «текстовый домен» для интернационализации и файл functions.php из текущей активной темы.
  • WordPress запускает функцию wp () (в wp-includes / functions.php), которая вызывает $ wp-> main () ($ wp – объект класса WP, который определен в wp-includes / class-wp.php ). Это говорит WordPress: -Поставить URL-адрес в спецификации запроса, используя WP-> parse_request () – подробнее об этом ниже.
  • Задайте все переменные is_, которые используются условными тегами, используя $ wp_query-> parse_query () ($ wp_query – объект класса WP_Query, который определен в wp-includes / query.php). Обратите внимание: несмотря на имя этой функции, в этом случае WP_Query-> parse_query фактически не проводит синтаксический разбор для нас, так как это делается до WP-> parse_request ().
  • Преобразуйте спецификацию запроса в запрос базы данных MySQL и запустите запрос базы данных, чтобы получить список сообщений, в функции WP_Query-> get_posts (). Сохраните сообщения в объекте $ wp_query, который будет использоваться в Loop WordPress.
  • Обработать ошибки 404.
  • Отправьте HTTP-заголовки блога.
  • Настройте некоторые переменные для Loop WordPress.
  • WordPress загружает ваш шаблон, определяет, какой файл шаблона использовать в соответствии с иерархией шаблонов, и запускает этот файл (в основном, делая то, что говорит ваш файл шаблона). Или WordPress может запустить один из файлов фида (например, wp-rss2.php). Как правило, шаблон или файл подачи запускают WordPress Loop для печати сообщений в блогах или статической страницы.
  • Файл шаблона или файла подачи также, вероятно, распечатает постоянные ссылки на некоторые архивы, категории или сообщения, используя встроенные функции WordPress.

Я это понимаю:

 <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> 

используется для страницы, которая вытягивает x количество сообщений, однако в моем сценарии я хочу только вытащить содержимое страницы, а не x количество сообщений

Таким образом, ответ на этот вопрос: цикл выводит информацию или данные из основного запроса. Это основной запрос, который извлекает данные из базы данных, и, как было сказано ранее, основной запрос извлекает только информацию в соответствии с URL-адресом и типом сообщения

Нужно ли создавать пользовательские SQL-запросы?

Нет, основной запрос сделал это. Вы можете просто использовать the_post() чтобы получить эту информацию из основного запроса (). Если вам нужно сделать пользовательские запросы, скорее используйте WP_Query . Никогда не используйте собственные SQL-запросы

Если я просто использую статические страницы, мне даже нужно использовать The Loop?

Это необязательно, вы можете просто использовать the_post() для отображения вашей информации. Однако хорошей практикой является использование цикла, так как have_posts() запускает конец цикла, когда цикл достигает конца.

Надеюсь, это объяснит как можно больше проблем. Если я могу оставить вас с этим, никогда не пытайтесь изобретать колесо, но это не значит, что вы не сможете улучшить дизайн, если этот день наступит. Но на данный момент придерживайтесь основ и почти всегда используем цикл по умолчанию.