В данном посте собраны материалы описывающие общие принципы функционирования WordPress (Структура WP).
Структура шаблонов WP
Шаблоны архивов
Шаблон архивов произвольных записей archive.php, либо специальный archive-track.php (track — тип записи).
Шаблон архива таксономии taxonomy.php (общий), либо специальный taxonomy-album.php (album — таксономия), либо специальный taxonomy-album-dreamfall.php (dreamfall — термин таксономия).
Разделение single.php на разные шаблоны (в зависимости от рублики)
Это поместить в шаблон single.php, остальное (включая header и footer) удалить
55 — номер категории
<?php $test = array(55); if ( have_posts() ) { the_post(); rewind_posts(); } if ( in_category($test)) { include(TEMPLATEPATH . '/single-otparivateli.php'); } else { include(TEMPLATEPATH . '/single-others.php'); } ?>
Удаление стандартного форматирования записи
Вставить в шаблоне перед началом цикла (<?php if (have_posts()) : ?>)
<?php remove_filter( 'the_content', 'wpautop' ); ?>
Время загрузки
Данный код в любом месте шаблона покажет время загрузки до него. Теоретически можно выявлять проблемные зоны сайта.
Можно использовать в виде комментарий и сомтреть в режиме «Исходный код» (Cntr+U), либо наглядно без комментирования.
<! - Время загрузки: <?php timer_stop (1, 3); ?> секунд до этой точки. ->
Подключение частей шаблона
Части шаблона или различные функции можно подключать несколькими способами: get_template_part, include, include_once, require, require_once.
Примеры:
<?php get_template_part( 'related-cats' ); ?>
<?php include(TEMPLATEPATH."/related-cats.php"); ?>
get_template_part, особенности:
- считается более правильным, подходит для обособленных кусков кода, без участия общих переменных
- если файл лежит в папке, то указываем ее get_template_part( ‘inc/related-cats’ );
- можно указать второй параметр get_template_part( ‘related-cats, web’ ), тогда будет искать шаблон related-cats-web.php, и если не найдет выдаст шаблон — related-cats.php
- если в шаблоне где вызывается get_template_part есть переменная, и в вызываемом блоке есть ссылка на эту переменную — переменная будет проигнорирована, в этом случае предпочтительнее — include
- если файла не будет он будет просто проигнорирован
include, особенности:
- если в шаблоне где вызывается include есть переменная, и в вызываемом блоке есть ссылка на эту переменную — переменная будет учтена
- если запрашиваемого файла include не существует то будет предупреждение (не фатальная ошибка)
include_once
Во многом тоже самое что и include, с особенностями: вызывается 1 раз, свой набор переменных.
require, особенности:
- если в шаблоне где вызывается require есть переменная, и в вызываемом блоке есть ссылка на эту переменную — переменная будет учтена
- если запрашиваемого файла require не существует то будет фатальная ошибка!
require_once
Тоже самое что и require, только вызывается 1 раз
Проверка наличия the_content
<?php if($post->post_content != ""): ?> <div id="entry-content"> <h2>Описание товара</h2> <?php the_content(); ?> </div> <?php endif; ?>
зависимости от рублики — опечатка, а статья норм