Главная - Wordpress: установка & управление - Изучаем файлы шаблона: index.php
Мой сервер для вашего сайта

Изучаем файлы шаблона: index.php

Это статья 5 из 18 в серии статей Изучаем файлы шаблона

Всем доброго времени суток!

Я сегодня продолжаю серию статей, посвященную изучению файлов шаблона на примере темы o2.  Свою серия статей я начал 17 ноября, и в пяти подряд статьях я рассмотрел с вами файл header.php, а также основные моменты макета нашего шаблона.

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

Сегодня у нас следующий файл, основной,и называется — index.php.

Кто-то знает, а кому-то из вас я скажу об этом впервые — это основной файл вашего шаблона. Именно он по умолчанию запускает все остальные файлы темы.

Поэтому в самом начале этого файла мы видим вот эту функцию:

<?php get_header(); ?>

С ее помощью подключается наш файл заголовка (шапки) — header.php, который мы уже изучили и знаем, для чего он служит и какую информацию хранит.

Следующий блок — это начало (открытие) дива под именем ‘container’:

<div id=»container»>

О «дивах», свойствах и файле стилей я рассказывал в предыдущих статьях,повторяться не буду. Просто хочу вас попросить открыть этот файл в редакторе Notepad++ (или другом с подсветкой кода), поставить курсор в слово — div — и вы увидите, как подсветится весь контейнер этого «дива». Перейдите в его конец и вы поймете, что этот основной контейнер содержит в себе практически весь код файла index.php, за исключением функций в конце файла, о которых я скажу дальше.

На что еще хочу обратить ваше внимание. Если вы открыли файл в редакторе Notepad++ (не знаю, как у других редакторов), вы увидите слева в специальном столбце знаки «минус» и вертикальные линии. Если нажать курсором на «минус» — он закроется и вы увидите «плюс». Плюс — это закрытый «див». Закрывая любой див, вы уменьшаете количество выводимого в редакторе текста и так удобней работать с кодом файла. Также это помогает лучше понимать каждый «див» и его основные функции:

Ниже закрывающегося тега div id=»container» записаны последние две функции файла — первая из них подключает вывод сайдбара, вторая — футера (подвала) нашего шаблона.

Таким образом, вы убедились, что наш файл index.php — основной. Он выводит все основные файлы нашего шаблона и в итоге мы получаем нашу страничку сайта.

А теперь давайте рассмотрим все функции, которые находятся внутри контейнера div id=»container».

Первая, и главная, это цикл The Loop. Начинается он всегда вот так:

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

Полный цикл The Loop выглядит следующим образом:

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

Все, что вы найдете между первой строкой и второй — это касается вывода ваших записей.

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

Заканчивается цикл всегда как <?php endif; ?>.

Дословно, в Документации WordPress, вы можете прочитать, что:

Цикл используется в WordPress для отображения каждой записи. Используя Цикл, WordPress обрабатывает каждую из этих записей для вывода на текущей странице и форматирует ее в соответствии с указанными критериями внутри Цикла. Любой HTML или PHP код, раположенный внутри Цикла, будет повторен для каждой записи. Когда в документации WordPress говорится «Этот тэг используется внутри Цикла», как для конкретных Тэгов Шаблона или плагинов, тэг будет повторен для каждой записи.

Вернемся к нашему файлу.

Из цитаты вы теперь понимаете, что все функции, которые находятся внутри цикла, выводят наши записи и будут повтоярться столько раз, сколько записей на главной странице надо вывести. Если у вас в настройках шаблона (раздел Настройки -> Чтение) стоит число 10, значит, цикл выведет десять последних (по дате) записей.

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

Следующая функция:

<?php the_ID(); ?>

Отображает числовое ID нашей записи.

Следующий контейнер — это див post_header. Внутри него мы видим такой код:

<div>
<div>
<?php the_time(‘M’) ?>
</div>
<div>
<?php the_time(‘jS’) ?>
</div>
</div><!— the_date —>

Функции вывода даты — месяц и день.

Дальше:

<div>
<div>
<h2><a href=»<?php the_permalink(); ?>» title=»<?php the_title(); ?>»><?php the_title(); ?></a></h2>
</div>

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

Совет: Иногда стоит эту функцию удалять, так как она фактически «дублирует» внутренние ссылки того же тега more.

Если у вас включен в записи тег more, или запись выводится отрывком и имеет дополнительную ссылку в виде — Читать Далее и тому подобное, стоит задуматься: а нужно ли для одной единственной записи две внутренние ссылки? Для СЕО — точно не нужно. Поэтому иногда стоит функцию заголовка — <?php the_permalink(); ?> — просто удалить.

Следующий контейнер:

<div>
<span>
<?php _e(‘Files under’); ?> <?php the_category(‘, ‘) ?>
</span> | <span><?php comments_popup_link(‘Leave a Comment’, ‘1 Comment’, ‘% Comments’); ?>
</span>
</div>

Первая строка — попытка автора воспользоваться конструкцией для корректного перевода (так и не работает) слов Files under, что можно вольно перевести как Файл лежит в рубрике, и дальше — функция вывода той рубрики, в которой лежит (прикреплена) эта статья. Давайте просто удалим эти слова. Сохраним страницу и посмотрим что там. Вместо вывода слов Files under теперь рядом с значком папки — имя рубрики. Давайте переведем следующую строку, где стоит функция comments_popup_link, которая сообщает нам (странице) ссылки на комментарии. Заменим английские слова на русские, примерно так:

comments_popup_link(‘Добавить комментарий’, ‘1 комментарий’, ‘% коммент.’)

Сохраняем. Смотрим:

Стрелкой и линией подчеркивания я показал вам, где мы коснулись перевода.

На сегодня пока все. Мы остановились перед началом вывода основного контента.

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

Всем успехов!


фотограф Киев. Если вы ищите профессионала — он перед вами. Не пожалейте пяти минут и посмотрите его работы. Вам понравится однозначно.

Навигация по серии статейФайл header.php — окончаниеПродолжаем изучать index.php

О Олег

Я более шести лет профессионально занимаюсь сайтами на CMS WordPress: перевод на русский тем и плагинов; разработка уникальных тем под заказ; сопровождение сайтов, защита и безопасность, продвижение в поисковых системах. У меня несколько своих проектов, в которых я пишу только о WordPress, продаю свои авторские работы, пишу платные и бесплатные видео-уроки. В свободное время люблю ездить на рыбалку. И еще - хочу завести собаку.

4 комментарии

  1. Подскажите, как сделать ввод результатов поиска на кастомной странице не через файл index.php

    • Результаты поиска выводятся страницей search.php.
      Если ее в файлах вашей темы нет, ее можно создать на основе файла archive.php, просто переименовать файл и все.
      Потом его можно кастоимизировать как вам нравится.

  2. Здравствуйте! Мне нужно вставить баннер, у меня ничего не получается. Я вставляю, но его не видно. Что не так, по-Вашему?

    Инструкции по установке PHP кода:

    2) Выберите нужный файл шаблона (в который вы хотите вставить счетчик), index.php — файл дизайна главной страницы
    3) В нужное место вставьте PHP код.

    Код баннера 125×125:

    [php]
    &lt;?php
    $urlpurs=&quot;https://montraf.ru/10977/125×125.html&quot;;
    $beecode=@file_get_contents ($urlpurs);
    echo &quot;$beecode&quot;;
    ?&gt;
    [/php]

    • Вам надо обратить внимание на слова — «в нужное место». А это нужное место вы нашли? И где оно — прямо внутри цикла вывода новостей? Или где? Мне превратиться в Кашпировского и угадать? И еще: с каких пор рекламные баннеры закрыват тегом noindex? Кто вам такое подсказал? Гоните его в шею…
      И почему именно в index.php? Поставьте через текстовый виджет в боковую колонку и не мучайтесь с кодом.

Оставить комментарий

Ваш email нигде не будет показанОбязательные для заполнения поля помечены *

*