Совет Работа с темами WordPress

  • Автор темы Wildcdu
  • Дата начала

Wildcdu

МОДЕРАТОР
Wildcdu

Wildcdu

МОДЕРАТОР
Сообщения
1,132
Симпатии
265
#1
Весь WP это сплошной цикл, все что в нем делается так или иначе связанно с циклом, приведу пример примитивный:
PHP:
<?php
//Цикл
if (have_posts()) : while (have_posts()) : the_post();
...
endwhile; else:
...
endif;
?>
мы спрашиваем, если ли записи (if — если), которые подходят под наши условия, и пока они есть (while —пока) выполняем некие действия над ними в цикле, то есть для каждой записи. Если же записей нет (else — иначе), выполняем какие-то другие действия.

PHP:
<?php if (have_posts()) : ?> //есть ли записи?
<?php while (have_posts()) : the_post(); ?>//продолжаем
//Выводим блок с записью
<div class="post" id="post-<?php the_ID(); ?>">
//Заголовок
<h2>
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a>
</h2>
//Миниатюра записи
<?php echo get_post_meta($post->ID, 'PostThumb', true); ?>
<p class="meta">
<span>Дата: </span> <?php the_time('F jS, Y'); ?>
<span>Автор: </span> <?php the_author(); ?></p>
//Выводим анонс записи
<?php the_content('Читать'); ?>
<p><?php the_tags('Теги: ', ', ', '<br />'); ?>
Категория: <?php the_category(', '); ?>
<?php comments_popup_link('Нет комментариев;', '1 комментарий', '% коментариев'); ?></p>
</div>
//конец вывода блока записи
<?php endwhile; ?>//конец цикла
//если в выборке пусто?
<?php else : ?>
<h2>Ничего не найдено</h2>
<?php endif; ?>
вот так выглядит примерно каждый цикл.

Функции, доступные только внутри цикла
  • the_title() — выводит название записи
  • the_permalink() — ссылка на запись
  • the_ID() — ID записи
  • the_author() — автор записи
  • the_category() — категория записи
Переменные
  • $post->ID — ID текущего поста, используется некоторыми функциями, вроде вывода миниатюры
  • $post->post_content — фактическое содержание записи, включая разметку
  • $post->post_modified — дата последнего изменения записи
  • $post->post_name — ЧПУ записи
Это не весь список доступных переменных.

Функции, не работающие в цикле
  • wp_list_pages() — возвращает список ссылок на ваши статические страницы
  • next_posts_link() — ссылка на следующую страницу в архиве записей
  • wp_tag_cloud() — выводит облако тегов
  • get_permalink() — получаем ссылку на запись для дальнейшего использования в PHP
учитывайте факт существования подобных функций.
Ну и картинка для понимания и подсказка для жизни


Пойдем дальше... Может надо было с этого начать... ну я как то подзабыл

Давайте посмотрим на структуру шаблона WP авось пригодится



Добавлю пояснения

Файлы index.php и style.css необходимы для функционирования шаблона. При отсутствии любого из этих файлов — WordPress просто не увидит этого шаблона.
Файлы, отмеченные как специальные — вносят дополнительные шаблоны отображения. И расширяют функционал темы и прочие вкусности.

Свой шаблон

Стандартный картинки для отображения в админке WordPress имеет размеры 300*225 пикселей. Для отображения текстовой информации о шаблоне в начало файла style.css необходимо добавить следующий текст:

[CSS]/*
Theme Name: ИМЯ_ТЕМЫ
Theme URI: http://УРЛ_ЕСЛИ_НУЖНО/ /**/
Description: ОПИСАНИЕ_ТЕМЫ
Version: 1.0
Author: ИМЯ АВТОРА
Author URI: http://УРЛ АВТОРА/
Tags: ТЕГИ ОПИСАНИЯ ШАБЛОНА ЧЕРЕЗ ЗАПЯТУЮ
*/[/CSS]
Помните!
Все файлы шаблона не являются автономными.

При вызове главной страницы, движок запрашивает только index.php, который делает вызов header.php в начале, sidebar.php в середине и footer.php в конце.

Затем sidebar.php может вызывать, в свою очередь, searchform.php для формы поиска и тд. Кроме того, файл header.php, который включает в себя раздел head, будет вызывать файл style.css.

Какие типы вывода используются в WordPress:
  • Главная — это обычно корневой URL вашего домена, например, site.com
  • Запись — это обычная запись блога
  • Страница — «статическая» страница, находящаяся за пределами основного потока сообщений. Например, страница контактов или карта сайта
  • Пользовательские страницы — страницы, для которых настроен специальный вывод записей. Например, галерея или страница отзывов
  • Результаты поиска — отображает список записей, найденных механизмом поиска по сайту
  • Архив — вывод записей по тегу, категории, дате, автору и прочим подобным признакам
Чем отличается вывод страниц и записей?
Страницы отвечают за вывод «статических» страниц, а записи — это основной формат WordPress. Это же это блоговая CMS. Вывод этих типов тоже отличается.

Записи обычно выводят с формами комментирования, страницы без них. В записях выводят информацию о дате публикации, авторе и прочие мета-сообщения. Страницы же лишены этого. Они несут статическую информацию и являются аналогом статических страниц классического HTML.

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



На сегодня все.
Спасибо, комментарии дополнения приветствуются!
Позже будем разбирать комментарии, категории и теги.
 

Wildcdu

МОДЕРАТОР
Wildcdu

Wildcdu

МОДЕРАТОР
Сообщения
1,132
Симпатии
265
#2
Хронология загрузки WordPress:
Код:
index.php
    wp-blog-header.php
        wp-load.php
            wp-config.php
                wp-settings.php
                    // Подключаются самые базовые функции (подключение к БД $wpdb и система фильтров)
                    // Подключаются базовые фильтры

                    // SHORTINIT: Остановка загрузки, где есть только самое базовое: if ( SHORTINIT ) return false;

                    // подключается вся среда WordPress: базовые функции, фильтры

                    // подключаются must-use плагины, затем срабатывает событие:
                    do_action( 'muplugins_loaded' );

                    // подключаются активированные плагины, затем срабатывает событие:
                    do_action( 'plugins_loaded' );

                    // устанавливаются глобальные переменные: wp_the_query, wp_query, wp_rewrite, wp, wp_widget_factory, wp_roles ...

                    do_action( 'setup_theme' );
                    // устанавливается текущая тема
                    // подключается файл темы >>>>>>>>>>>> functions.php <<<<<<<<<<<<
                    do_action( 'after_setup_theme' );

                    // событие, когда среда WP, все плагины и тема полностью подключены, но на экран еще ничего не выведено:
                    do_action( 'init' );

                    // проверка статуса сайта для мультисайтовой сборки

                    // тоже самое что init только после проверки статуса (до этой строки работа PHP может не дойти)
                    do_action( 'wp_loaded' );

        wp() // заполняет основной запрос WP и все глобальные переменные связанные с ним

        wp-includes/template-loader.php // подключает нужный файл шаблона
Для понимания принципов работы это основной момент, позже мы будем разбирать каждый шаг загрузки.
 
Сверху