Wordpress вывести список файлов
В WordPress можно создавать страницы (pages) или записи (posts). Когда вы пишете обычную запись в блог - вы создаёте запись. Записи автоматически появляются на главной странице в обратном хронологическом порядке.
Также можно привести такие примеры как страницы об авторском праве, лицензионные соглашения, правила использования, информации о сайте. Кстати, хорошим правилом является наличие страницы с информацией о сайте или компании и/или страницы с контактными данными. Вот один из советов от Lorelle (на английском языке).
В целом, страницы очень похожи на записи - и те и другие имеют название и содержимое и могут использовать шаблоны представлений (Presentation Templates) для сохранения целостного вида сайта. Однако страницы имеют несколько ключевых отличий от записей.
Примеры страниц и шаблонов
Ниже приводится список примеров. Вы можете добавить свои.
Использование страницы в качестве главной
В WordPress версии 2.1 появилась возможность использовать любую страницу в качестве главной.
Для этого необходимо перейти в Параметры > Чтение в административной панели. В секции "На главной странице отображать" можно выбрать что показывать в качестве главной страницы. По умолчанию там стоит значение "Ваши последние записи".
Вывод страниц на сайте
WordPress способен автоматически создавать список страниц сайта, например в боковой колонке, используя метку шаблона называемую wp_list_pages(). Прочтите wp_list_pages для более подробной информации, в том числе как:
- Сортировать список страниц. Полная настройка порядка вывода описана в секции "Page Order" административной панели Write > Page. из вывода или прятать страницу
- Управлять отображением страниц, то есть выводить ли все страницы или некоторые подстраницы.
- Определять насколько глубоко список уходит в иерархию страниц.
Естественно, вы можете определять ссылки на страницы вручную используя HTML-ссылки. Например, если вы хотите вывести страницу об авторских правах в "подвале", ссылка может быть такой:
Если пермалинки НЕ настроены
Если пермалинки настроены
Создание собственных шаблонов страниц
Файлы, определяющие шаблоны, находятся в папке с темой. Для создания собственного шаблона нужно создать файл. Итак, для примера, назовём наш новый шаблон snarfer.php. В первых строчках файла напишем следующее:
Приведённый код определяет что файл snarfer.php - шаблон "Snarfer" (естественно, вы можете переименовать "Snarfer" во что угодно, только не запутайтесь). Это имя появится в редакторе тем со ссылкой на соответствующий файл.
Файл можно назвать как угодно с расширением .php (об именах, которые нельзя использовать см. в reserved Theme filenames; это специальные имена, зарезервированные системой для внутреннего использования).
Примеры приведены ниже. С того момента, как вы создали шаблон страницы и поместили его в папку с темой он становится доступным для выбора во время создания или правки страницы.
Примечание: когда страница создаётся или правится, настройка шаблона не появляется пока не будет создан как минимум один шаблон, как описано выше.
Аргументы параметра $args
Эта функция является оберткой для WP_Query, поэтому она может принимать такие же параметры.
- numberposts (число)
- posts_per_page (число)
- offset (число)
- category (число/строка/массив)
- category_name (строка)
- tag (строка)
- include (строка/число/массив)
- exclude (строка/число)
- meta_key и meta_value (строка)
- meta_query (массив)
- date_query (массив)
- post_type (строка/массив)
- post_mime_type (строка/массив)
- post_status (строка)
- post_parent (число)
- nopaging (логический)
- orderby (строка)
- order (строка)
- suppress_filters (true/false)
Укажите ID категории из которой нужно получить посты. Можно указать ID со знаком минус -3 , тогда эта категория будет исключена (будут получены все записи, кроме записей из категории 3). Можно указать несколько ID через запятую в виде строки 3,5,12 или -3,-5,12 ).
В значении нужно передавать ID, а не название категории.
Смотрите также описание параметра cat у WP_Query .
category_name(строка) Показывать посты только из этой категории (указывается название или альтернативное имя(slug) категории).
По умолчанию: '' tag(строка) Получить записи имеющие указанные в этом параметре метки. Нужно указывать альтернативное имя (slug) метки. Если указать несколько имен (меток) через запятую, то будут получены записи соответствующие любой метке, а если разделить пробелами, то будут получены записи имеющие все указанные метки.
По умолчанию: '' include(строка/число/массив)
ID постов, которые нужно получить. Если указывается строка, то ID нужно разделять запятыми или пробелами. Пример, получит 6 постов: '45,63,78,94,128,140'.
Важно: Указав этот параметр, бессмысленно указывать параметры posts_per_page , offset , category , exclude , meta_key , meta_value и post_parent .
По умолчанию: ''
exclude(строка/число) ID постов которые нужно исключить из выборки, указывать через запятую или пробел.
По умолчанию: '' meta_key и meta_value(строка)
Получить посты имеющие указанное произвольное поле (meta_key) со значением (meta_value).
Можно указать meta_key и meta_value , тогда будут получены посты, у которых есть указанное метаполе и значение которого равно указанному значение.
Или можно указать только meta_key , тогда будут получены все записи у которых это метаполе есть и не важно какое там значение.
meta_query(массив) Выборка записей по произвольным полям. Подробнее см. в описании WP_Query (meta_query).
По умолчанию: [] date_query(массив) Выборка записей по датам. Подробнее см. в описании WP_Query (date_query).
По умолчанию: [] post_type(строка/массив)
Какого типа посты нужно получать, может быть:
-
any - все типы, кроме revision и типов у которых указан параметр exclude_from_search=true .
attachment - прикрепленные записи.
по умолчанию WP_Query ставит статус 'post_status'=>'publish' , а вложения имеют статус 'post_status'=>'inherit' , поэтому чтобы вывести вложения нужно еще изменить параметр post_status на 'inherit' или 'any'.
По умолчанию: 'post'
Какого типа вложения нужно получить. Можно использовать, когда параметр post_type = attachment .
- image/jpeg
- image/png
- image/gif
- image - для любых картинок
- audio/mpeg
- application/pdf
- application/zip
Вместо одно миме типа можно указать несколько в массиве. Полный список миме типов смотрите здесь.
Статус записи. Можно передать несколько статусов через запятую. Может принимать:
- publish - опубликовано
- private - личная запись
- draft - черновик
- future - запланировано
- pending - на модерации
- inherit - вложение, любое вложение получает этот статус. Ставиться автоматически, при $post_type='attachment'
- any - все статусы
По умолчанию: publish
post_parent(число) Показать только дочерние записи к указанному ID.
По умолчанию: 0 nopaging(логический) Включить или отключить пагинацию, если стоит true параметр $numberposts игнорируется.
По умолчанию: false orderby(строка)
Сортировать результат по указанным полям. Можно указывать несколько полей сортировки, через пробел. Допустимые поля:
- author - сортировать по ID авторов.
- content - сортировать по контенту.
- date - сортировать по дате создания записи.
- ID - сортировать по ID записи. Указываются ID в массиве или через запятую.
- menu_order - сортировать по полю menu_order . Используется для постоянных страниц и вложений (картинки, файлы и т.п.).
- mime_type - сортировать по MIME типу. Используется для вложений.
- modified - сортировать по дате изменения.
- name - сортировать по альтернативному имени (slug).
- rand - случайная сортировка. Создает повышенную нагрузку на БД.
- status - сортировать по статусу (черновик, опубликовано и т.п.)
- title - сортировать по названию.
- parent - сортировать по ID родителя (parent ID).
- password - сортировать по паролю.
- type - сортировать по типу (пост, страница и т.д. ).
- comment_count - по количеству комментариев.
- meta_value - по значению указанного произвольного поля.
- post__in - учитывает порядок указанных ID в параметре include.
Префикс post_ у полей таблицы опускается для удобства. Например вместо date можно написать post_date , вместо content post_content и т.д.
По умолчанию: 'date'
order(строка) В каком направлении упорядочить, указанное в параметре $orderby , поле:
ASC - по порядку (от меньшего к большему: а,б,в).
DESC - в обратном порядке (от большего к меньшему: в,б,а).
По умолчанию: 'DESC' suppress_filters(true/false)
При true (по умолчанию) пропускает все хуки изменения SQL запроса, такого типа posts_* или comment_feed_* .
Какие именно фильтры отключаются смотрите здесь.
В функциях WP_Query и query_posts() этот параметр отключен по умолчанию (равен false).
suppress_filters = true не виляет на работу фильтра pre_get_posts.
Такое отключение фильтров по умолчанию, может ввести в замешательство, если есть плагины влияющие на вывод записей, через фильтры SQL запроса, например WPML. В таких случаях suppress_filters нужно отключить.
Данная статья является переводом первой статьи Rachel McCollin из цикла о данных в WordPress. В ней по полочкам разложена структура данных, типы контента и их взаимосвязь в WordPress. Будет полезна в первую очередь новичкам, но и профессионалы могут найти для себя что-либо новое.
- Post — запись,
- Page — страница,
- Attachment — вложение,
- Revision — редакция,
- Comment — комментарий,
- Taxonomy — таксономия,
- Category — категория
- Tag — метка,
- Term — термин (конкретное значение пользовательской таксономии)
- User — пользователь
- Metadata — метаданные
Замечания об ошибках и опечатках прошу сообщать в личку.
Сайт на WordPress состоит из трех основных элементов:
- Сама установка WordPress
- Содержимое каталога wp-content, которое включает темы, плагины и загрузками
- База данных, где хранится контент в виде данных.
В этой серии статей будет детально рассмотрены аспекты базы данных WordPress. Эта серия состоит из девяти частей:
- Вступление (сейчас вы читаете именно его)
- Взаимосвязи между данными
- Типы контента
- Пользовательские данные
- Метаданные
- Таксономии, категории, метки и термины
- Таксономии VS метаданные
- Таблица опций
- Данные WordPress Multisite
Создание страницы управления плагином
Далее нам понадобится страница в панели администратора, где наш пример будет размещен. Ниже представлен код для создания этой страницы и отображения текста. Просто скопируйте данный код в файл filesystem.php :
Объясним, как данный код работает:
Обратите внимание, что данный код "поломает" ваш WordPress сайт, поскольку мы еще не создали функции read_file_demo и write_file_demo . Поэтому давайте создадим их прямо сейчас!
Какой шаблон используется для показа отдельных страниц?
WordPress просматривает несколько файлов в активной теме. Первый найденный будет использован для показа любой страницы. WordPress просматривает файлы в следующем порядке:
- Выбраннный для данной страницы шаблон.
- page.php
- index.php
Другие методы объекта $wp_filesystem
Объект $wp_filesystem предоставляет множество других методов для выполнения различных других операций с файлами и директориями. Мы только что видели операции записи и чтения файла. Вы можете найти полный список функций WP_Filesystem_Base () на странице документации.
Давайте рассмотрим несколько важных из них:
- $wp_filesystem->delete : используется для удаления файла или директории. Вам необходимо выбрать строку, обозначив к ней путь.
- $wp_filesystem->mkdir : используется для создания директории. Берется строка, которая будет представлять родительский директорию.
- $wp_filesystem->move : используется для перемещения файла. Берется два параметра: первый — путь к файлу и второй — директория, в которую его необходимо переместить.
- $wp_filesystem->size : возвращает размер файла в байтах. Вам необходимо провести путь к файлу.
- $wp_filesystem->chmod : используется для изменения прав доступа к файлу. Используется три аргумента: путь к файлу, разрешение (восьмеричное число) и булевые переменные для представления рекурсии.
Вы можете выяснить, какой метод связи использует WordPress для доступа к файловой системе, используя публичный метод $wp_filesystem->method .
Заключение
Надеюсь, что теперь вы лучшее понимаете, как и где WordPress хранит различные типы данных, как использует базу данных. Более подробно элементы этого процесса будут рассмотрены в последующих статьях. Так в следующей статье будут рассмотрены взаимосвязи между данными. А так же мы остановимся более подробно на том, как конкретные таблицы связаны и как некоторые из них используются исключительно для хранения данных об взаимосвязях.
Настройки
Пример функции, выводящей список файлов, присоединенных к посту. Файлы разных типов имеют индивидуальное оформление.
WordPress позволяет присоединять к посту практически любые файлы — достаточно воспользоваться кнопкой добавления медиа-контента. Закачанные таким образом файлы записываются в библиотеку медиафайлов, а в базе данных делается запись, что эти файлы присоединены к определенному посту.
Я уже писал о плагине Auto Attachments, который позволяет выводить список файлов, присоединенных к посту.
Такой список может быть полезен, например, если вы публикуете статью, в которой используются разные файлы — архивы, электронные документы, мультимедийный контент. Иногда нужно собрать все используемые в посте файлы отдельным списком — для этого плагин подходит идеально. Однако есть возможность вывести список присоединенных к посту файлов и без использования дополнительных плагинов, причем этот список можно оформить по своему усмотрению. Давайте посмотрим, как это можно сделать.
Создадим функцию, которая будет автоматически в конце каждого поста выводить список присоединенных постов. Для этого нужно вставить в файл functions.php используемой в блоге темы:
В конце каждого поста появится список всех файлов, добавленных во время редактирования поста в библиотеку медиафайлов.
Для того, чтобы сделать этот список более привлекательным, давайте для каждого типа файлов добавим индивидуальную иконку. Для этого нужно создать файл attachments.css, расположенный рядом с файлом style.css, и вставить в него оформление для списка присоединенных файлов разного типа:
Если хотите, чтобы все типы файлов имели одинаковые иконки, то тогда содержимое файла attachments.css должно быть примерно таким:
Для того, чтобы файл стилей для списка присоединенных файлов использовался автоматически, добавьте в functiond.php:
Возможность записи в локальные файлы сайта на WordPress является одной из функций, которая требуется многим плагинам и темам для различных целей. Безопасность — это наиболее важный вопрос для плагинов, а темы должны заботиться об этом в процессе записи в локальные файловые системы.
WordPress работает на разных хостингах, поэтому для разработчиков становится трудно создавать плагины и темы, которые имели бы доступ к локальным файловым системам для работы в различных условиях без ущерба для безопасности.
В этом уроке мы узнаем, как использовать WordPress Filesystem API для доступа к локальной файловой системе, которая позаботится о правильном праве доступа к файлам. В процессе мы создадим плагин, который выводит форму с текстом на странице администратора, которая будет сохранять этот текст в текстовой файл.
Использование
$args(строка/массив) Список аргументов, в соответствии с которыми будет получен результат.
По умолчанию: предустановленные
Изменение URL или слага (Slug) страниц
С версии 2.5 смена URL страниц стала менее интуитивной. Если у вас включены пермалинки (Permalinks) и вы выбрали настройку Day and Name(Нажмите Settings и в открывшемся списке Permalinks), то пермалинк автоматически покажется под названием записи, когда вы начнёте печатать в теле записи (не только в заголовке).
Несмотря на то, что вы можете выбрать несколько разных настроек пермалинков или вообще их не задействовать, для того чтобы редактировать URL страницы, вы должны сделать следующее:
- Создать страницу с помощью Write > Page.
- Опубликовать её, нажав Publish.
- Перейти в Manage > Pages.
- Нажать Edit рядом со страницей.
- Посмотреть на пермалинк под заголовком и нажать Edit, чтобы его поменять.
Таким образом, если у вас не включено использование пермалинков, вы должны опубликовать ваши страницы перед тем как устанавливать URL.
Чтение файла
Ниже размещена реализация функции read_file_demo :
Описание того, как этот код каботает:
Предполагая, что WordPress выбрал FTP как подходящий способ для создания файлов, мы прикрепляем скриншоты всего процесса.
Сначала, когда мы открываем демо-страницу, мы должны увидеть эту форму:
Здесь мы должны ввести полномочия FTP или FTPS и подтвердить. После того, как мы подтверждаем действие, мы увидим эту форму:
На экран было выведено пустое поле для текста. Введите туда " Hello World. " и отправьте форму. Вы снова увидите форму для учетных данных.
Вы должны еще раз заполнить ее, потому что WordPress не сохраняет пароль FTP по умолчанию (вы можете сделать это в WP-config.php , но об этом позже). Таким образом, каждый раз, когда ваш плагин должен работать с файловой системой, она должна запрашивать данные. Теперь подтверждение этого перенаправит обратно на URL с полями имен и значений, представленных ранее. Вот как будет выглядеть текстовое поле:
Здесь мы считываем содержимое из файла и выводим его.
Зачем использовать WordPress Filesystem API?
Вы можете поинтересоваться, почему бы нам просто не использовать функции PHP файловой системы для чтения и записи локальных файлов, а не начинать изучать и использовать совершенно новый набор API?
Проблема использования API файловой системы PHP состоит в том, что она не заботится о правах доступа к файлам автоматически. Предположим, вы используете shared хостинг для размещения вашего WordPress сайта, и ваш веб-сервер работает как "админ" операционной системы. Поэтому, каждый раз, когда вы создаете файлы, используя PHP, они принадлежат "администраторам".
Таким образом, любой другой веб-сайт, который размещен в том же хостинге, может также получить доступ к файлам сайта, так как он также работает в качестве "администратора", что создаст проблемы безопасности на вашем сайте. Чтобы защитить нас от этой проблемы, необходимо изменить владельцев файла и права доступа вручную с помощью PHP.
Но когда вы входите, используя SSH или FTP / SFTP для создания файлов, то они прикрепляются к учетной записи пользователя операционной системы, под которой он вошел в систему. Если FTP-сервер работает как пользователь "Admin" , а вы вошли в систему как пользователь "User", то новые файлы будут иметь владельца "User", а не "Admin".
WordPress представил Filesystem API, которая может автоматически заботится о правах доступа к файлам. Filesystem API была выпущена еще в версии WordPress 2.6. WordPress на самом деле выпустили ее для поддержки своих плагинов, тем и основных обновлений системы, но следующие плагины и темы начали использовать ее уже для своих собственных целей.
Заключение
В этой статье мы увидели процесс создания плагина, который имеет доступ к нашей файловой системе, используя WordPress Filesystem API . В случае, если вы попытаетесь получить доступ к файловой системе в фоновом режиме (например, с помощью cron job), то будет невозможно отобразить учетные данные, поэтому не забудьте сообщить пользователю, чтобы он сделал учетные данные константными в файле wp-config.php . Двигайтесь дальше, развивайтесь, экспериментируйте с этим API и обязательно делитесь своим опытом с нами ниже.
Возвращает
Пустой массив, если не удалось получить записи.
Массив WP_Post объектов (записей). Каждый объект в массиве выглядит так:
Шаблон использования
Создание страниц
Для того чтобы создать страницу войдите в Wordpress с достаточными привилегиями для создания статей. Выберите Administration > Pages > Add New для того чтобы начать работу с новой страницей.
О страницах коротко
Чем страницы являются и что могут:
Чем страницы НЕ являются и что НЕ могут:
Постоянное хранение учетных данных
Вы уже успели заметить, что WordPress не хранит полномочия на доступ FTP или SSH на постоянной основе. Это не очень удобно, обращаться к пользователю снова и снова за необходимой информацией. Поэтому, существует способ хранения данных на постоянной основе, используя файл wp-config.php .
Используйте эти параметры для хранения полномочий FTP и SSH:
- FTP_HOST : имя хостинга сервера
- FTP_USER : имя пользователя для использования при подключении
- FTP_PASS : пароль для использования при подключении
- FTP_PUBKEY : путь к публичному ключу, который будет использоваться при соединении SSH2
- FTP_PRIKEY : путь к приватному ключу, который будет использоваться при соединении SSH2
Включение страницы
Также вы можете включить страницы в разные места сайта. Для этого есть модуль Improved Include Page с помощью которого процесс включения существенно облегчается.
Дополнительные методы установки главной страницы для версий ниже 2.1
Если не использовать встроенную возможности установки главной страницы остаётся две возможности. Первая - использовать модуль Static Front Page Plugin. Он модифицирует запрос к главной странице и sticks the Page with a Page slug of "home" to the front page.
В качестве альтернативы модулю WordPress попытается распознать "home.php" в папке с шаблонами и использовать его вместо "index.php". Однако, если ваша главная страница - не блог, примите во внимание, что шаблон home.php будет всегда показывать её как блог, хотите вы этого или нет. Вы можете использовать метку шаблона query_posts() перед вызовом главного цикла. Например:
вызовет запись с именем страницы "home".
Запись в файл
Ниже представлена реализация нашей функции write_file_demo :
Вот как данный код работает:
Примечание: Если вы попытаетесь использовать методы объекта $wp_filesystem без запроса и подтверждения учетных данных, то они не будут работать.
Связь контента и таблиц базы данных
Ознакомившись с типами контента в WordPress и таблиц базы данных, используемых для их хранения, можно провести между ними соотвествие. В приведенном ниже перечне показано, какие таблицы базы данных используется для хранения какого типа контента.
Легко заметить, что не все таблицы используются в перечне. Так происходит потому, что некоторые из них используются для хранения метаданных. Другие используются для хранения связей. Оба варианта будут рассмотрены в последующих статьях.
Динамическая природа страниц WordPress
Веб-страница может быть статичной или динамической. Статичные страницы, как и обычные файлы HTML, созданные при помощи редактора, создаются один раз и не меняются между визитами посетителей. Динамические же, созданные с помощью WordPress, напротив, нуждаются в постоянном обновлении при каждой загрузке. В данном случае страница создаётся заново. Это предполагает интенсивное использование кода PHP, который определяет посещение и создаёт страницу "на лету".
In the context of web publishing, static and dynamic mean what has been described above. More generally, however, static can mean "characterized by a lack of change". It is easy to see how this definition influenced the word's use in describing types of web pages. It is also easy to see why people think of Pages as being static; Posts come and go, but Pages are here to stay since Pages are typically used to display information about your site which is constant (e.g., information about yourself, description of your site).
In other words, a Page contains static information but is generated dynamically. Thus, either "static" or "dynamic" may be validly used to describe the nature of the WordPress Page feature. However, in order to avoid confusion, and because Pages themselves are dynamic while it is only their contents which are in some way static, this document does not refer to Pages as being static.
Получает записи (посты, страницы, вложения) из базы данных по указанным критериям. Можно выбрать любые посты и отсортировать их как угодно.
У этой функции есть предустановленные параметры. Иногда их нужно изменить, чтобы они не мешали. Предустановленные параметры:
post_type = post — если мы указываем вывод таксономии для типа записи отличного от post, то параметр post_type нужно изменить - он по умолчанию равен post .
numberposts = 5 — если мы забудем изменить параметр numberposts , то долго можем недоумевать почему выводится только 5 записей вместо нужных 20.
suppress_filters = true — этот параметр отключает работу некоторых фильтров (хуков). Читать подробнее.
ignore_sticky_posts = true ― нельзя изменить!
get_posts() - это аналог query_posts(). Отличается тем, что get_posts() не вмешивается в глобальный запрос WP, а создает отдельный экземпляр класса WP_Query . Подробнее читайте здесь.
Шаблоны встроенной темы по умолчанию
Встроенная тема по умолчанию содержит три шаблона:
- page.php - шаблон страницы по умолчанию: отображает содержимое страницы
- archives.php - игнорирует содержимое и вместо него показывает список архивов по месяцам и рубрикам.
- links.php - также игнорирует содержимое и вместо него показывает ссылки, используя wp_list_bookmarks().
WordPress как CMS
Вы можете использовать WordPress для управления содержимым. Если вы так решили - вам понадобится создать некоторое (возможно, большое) количество страниц.
Как работает API файловой системы?
API файловой системы может делать записи в файлах, используя системные вызовы (т.е. direct, ftp, ftp socket, ssh2). Файловая система выбирает один из методов, основываясь на том, какой из представленных методов имеет соответствующий допуск, и какое PHP расширение доступно. API файловой системы сначала проверяет метод direct, затем ftp и, наконец, ssh2.
При использовании FTP или SSH вы должны будете получить учетные данные вашего пользователя. API файловой системы предоставляет специальные функции, которые облегчат этот процесс вывода на экран специальной формы для получения и хранения данных.
Структурирование страниц
Так же как в рубриках могут быть подрубрики, в страницах могут содержаться подстраницы (или дочерние страницы, если так удобнее), вместе создавая иерархию страниц.
Например, предположим вы создаёте сайт для продавца турпутёвок и хотели бы иметь отдельную страницу для каждого континента и страны, куда могут продаваться путёвки. Вы можете начать с создания страницы "Африка" на которой будет общее описание о путешествии на континент. Затем вы создаёте страницы, вложенные в эту, то есть подстраницы, со странами "Лесото", "Того", "Камерун" и "Свазиленд". Затем в таком же ключе вы создаёте страницу "Южная Америка" с подстраницами "Бразилия", "Аргентина" и "Чили". И вот что получится:
- Африка
- Камерун
- Лесото
- Свазиленд
- Того
- Аргентина
- Бразилия
- Чили
Для того, чтобы начать, перейдите в Administration > Write > Write Page , в верхнем правом углу панели и нажмите выпадающий список "Page Parent". Этот список содержит перечень всех созданных страниц. Для преобразования текущей страницы в подстраницу, или наоборот, для преобразования в родительскую страницу выберите необходимый пункт из выпадающего меню. Текущая страница станет дочерней по отношению к выбранной.
Когда страницы выводятся, все дочерние страницы будут располагаться непосредственно под родительскими. Пермалинки при этом также будут отражать иерархическую структуру этой страницы.
В нашем примере для страницы "Камерун" пермалинк будет такой:
Создание плагина для работы с файлами
Теперь давайте создадим наш плагин, который будет отображать текст на странице, и при заполнении формы сохранять ее содержимое в локальный файл.
Вот структура директории нашего плагина:
Создайте эти файлы в директории wp-content/plugins вашего сайта WordPress.
Для того, чтобы сделать плагин устанавливаемым, вставьте данный код в файл filesystem.php :
Теперь перейдите в панель администратора и активируйте плагин.
Структура базы данных WordPress
WordPress использует несколько взаимосвязанных таблиц. Между ними установлены связи один ко многим. Например, к одной странице может быть много комментариев. Приведенная ниже диаграмма взята из кодекса WordPress. На ней показаны таблицы и связи между ними:
Большинство таблиц связаны с одной или несколькими другими с помощью одного поля. Это поле будет уникальным идентификатором для каждой записи (пример post_id). Более подробно для каждой таблицы:
Таблица Данные Связи с другими таблицами wp_posts Записи, страницы, вложения, редакции, пользовательские записи wp_postmeta через post_id
wp_term_relationships через post_idwp_postmeta Метаданные записей, страниц и т.д. wp_posts через post_id wp_comments Комментарии wp_posts через post_id wp_commentmeta Метаданные комментариев wp_comments через comment_id wp_term_relationships Связи между таксономиями и записями, страницами и т.д. wp_posts через post_id
wp_term_taxonomy через term_taxonomy_idwp_term_taxonomy Таксономии (включая категории и метки) wp_term_relationships через term_taxonomy_id wp_terms Ваши категории, метки и термины пользовательских таксономий wp_term_taxonomy через term_id wp_links Ссылки в вашем блоке (как правило, сейчас не используется) wp_term_relationships через link_id wp_users Пользователи wp_posts через post_author wp_user_meta Метаданные для каждого пользователя wp_users через user_id wp_options Опции и настройки сайта
(устанавливаются в админке на странице настроек и в темах/плагинах)Отсутвуют
Стоит отметить несколько вещей:Архивы с содержимым
Шаблон, который сначала показывает вверху содержимое страницы, а ниже - список архивов по месяцам и рубрикам. Он работает с темой по умолчанию (Kubrick), но с незначительными доработками подойдёт для других тем.
Сохраните код ниже в arc-cont.php:
Шаблон показывает записи определённой рубрики в зависимости от того, какая страница показывается. Он работает с темой по умолчанию (Kubrick), но с незначительными доработками подойдёт для других тем.
Сохраните код ниже в pageofposts.php:
Шаблоны страниц
Отдельные страницы могут использовать собственный шаблон страницы (файл-шаблон PHP, например, snarfer.php) который можно включить в создаваемую тему (см. ниже Создание собственных шаблонов страниц). Вновь созданный шаблон будет перекрывать шаблон по умолчанию page.php.
См. ниже Какой шаблон используется для показа отдельных страниц? для понимания того, как именно будет использован шаблон. Но лучше сначала прочтите нижеследующее и ответ будет понятен. :)
WordPress может быть настроен на использование разных шаблонов для разных страниц. Внизу административной панели Write > Page (или на боковой панели - зависит от версии) имеется выпадающее меню "Page Template", в котором можно выбрать шаблон, используемый данной страницей.
Примечание: Чтобы выбор шаблона работал необходимо наличие хотя бы одного собственноручно созданного шаблона для данной темы (см. ниже Создание собственных шаблонов страниц). Если же все условия выполнены, но выбора шаблона не видно, попробуйте вновь активировать текущую тему.
Типы контента в WordPress
Прежде чем разбирать данные хранящиеся в базе WordPress, рассмотрим типы контента. Существуют такие стандартные типы контента:
- Категории (categories)
- Метки (tags)
- Пользовательские таксономии (custom taxonomies and terms)
- Метаданные (post metadata)
- Виджеты (widgets)
- Опции (options)
- Пользователи (users)
- Сайты для MU WordPress
- Нестандартный контент (hardcoded content), который добавляют некоторые темы/плагины.
- Сторонний контент (third party content) (например RSS)
Читайте также: