Онлайн заработок, создание и монетизация сайтов, веб-разработка, SEO и SMO продвижение, фриланс, партнерки, полезные сервисы вебмастерам, блоггинг.

Профессиональные плагины для Wordpress
Главная » WordPress » Новый шаблон страниц и записей в WordPress — создание, выбор, важные нюансы

Новый шаблон страниц и записей в WordPress — создание, выбор, важные нюансы

Шаблоны страницОтдельный шаблон страниц в WordPress пригодится, если вы планируете выводить на сайте контент и публикации с разными вариантами оформления. Например, данную фишку можно использовать для баннерной рекламы в блогах и форумах, показывая или скрывая объявления в определенных разделах проекта. Метод также поможет убрать Google Adsense в статьях, где они не должны быть по правилам системы, или избавиться от лишних внешних ссылок GoGetLinks. Рассмотрим как все это работает в виде пошагового алгоритма.

1. Первым делом вам следует определиться какой именно файл темы будете редактировать. В макетах попроще для шаблонов страниц и записей WordPress применяюся page.php и single.php, и весь необходимый нам код находится там. Если разработчики добавляли внутрь вызов сторонних элементов (через get_template_part), то их также придется править (об этом чуть ниже).

2. Копируем нужный вам файл с FTP на компьютер и переименовываем его в новый, допустим page-new.php. Затем открываем для редактирования с помощью Sublime Text или Notepad++.

В самом верху размещаете:

<?php
/*
 * Template Name: New Page Theme
 * Template Post Type: post, page, product
 */
?>

шаблон страниц в WordPress

Теоретически, в последних версиях WP разрешается сделать один альтернативный файл и подключить его разным типам заметок: постам, товарам и др. (post, product, page). Однако подход сработает только, если всем данным записям соответствует единственный шаблон. В противном случае под каждый тип (page.php, single.php и др.) создаете отдельную «копию».

3. Сохраняем файл и копируем его обратно на FTP. Если все сделано правильно, то в админке WordPress выбор нового шаблона страницы будет доступен вместе со всеми остальными:

Выбор шаблона страницы

Название такое же, как в указанной выше переменной Template Name. Кстати, выбирать макет можно и при массовом редактировании записей/страниц.

По факту, на этом наша работа закончилась, но как всегда бывают разные нюансы.

4. Первая ситуация — когда в теме используются вставки других информационных блоков, например общие функции get_footer(), get_header() для футера и шапки либо get_template_part:

Файл страницы в Вордпресс

Ваша задача при этом создать новые версии данных «включений» дабы позже их внедрить в отдельный шаблон страницы WordPress, который вы пытаетесь реализовать.

Для первого варианта вместо get_header() достаточно прописать:

<?php include(TEMPLATEPATH."/header-new.php"); ?>

Во втором меняете базовые параметры функции get_template_part:

<?php get_template_part( 'content', 'page-new' ); ?>

Внимание! В первом коде идет полное имя файла с php, во втором — только его название (без расширения). Не забудьте заранее сделать эти header-new.php и page-new.php.

5. Еще один момент — если информация выводится через виджеты внутри CMS, то никакая правка темы не поможет. Вам придется ставить дополнительный плагин — Widget Logic. Он позволяет задавать условия показа/скрытия тех или иных блоков, например:

Виджеты и модуль Widget Logic

Здесь у меня двойная проверка:

(!has_post_format( 'aside' ) && !is_page_template('page-noads.php'))

Это значит, что Adsense выводится везде кроме: 1) форматов постов блога ‘aside’; 2) страниц с макетом page-noads.php.

6. По поводу aside, кстати, интересное дополнение. По какой-то причине у меня в теме заблокирована возможность указывать свой шаблон в записях (post), есть только форматы:

Формат записи в Вордпресс

Я решил сделать шаблон страницы WordPress с альтернативным отображением информации, используя один из этих вариантов. То есть, в существующем файле content-aside.php реализовал все нужные мне задумки, а потом в админке просто выбирал этот формат. После внедрения советую проверить корректность вывода контента и всех деталей на сайте, т.к. не исключено, что придется подправить что-то еще.

7. Напоследок еще одна фишка — если вам нужно реализовать разный шаблон записей WordPress по категориям. В таком случае в файл single.php вместо исходного кода добавляете конструкцию:

<?php 
    if(in_category(55)) {
        include(TEMPLATEPATH.'/single-cats.php');
    }
    else {
        include(TEMPLATEPATH.'/single-default.php');
    }
?>

При этом надо создать 2 файла:

  • single-default.php (для всех постов) — заливаете сюда обычное содержимое «сингла»;
  • single-category.php — вариант, который будет срабатывать только, если пост принадлежит указанной в in_category рубрике.

Здесь при отображении заметок блога, система проверит содержится ли она в определенной рубрике, и если да, то загрузится соответствующий макет. В противном случае откроется общий дефолтовый single-default.php.

Если есть какие-то нюансы/детали, которые следовало бы рассмотреть, напишите в комментариях.

07.08.18

Категории: WordPress.

Теги: , , , , , , ,

30 Comments
  1. валерий

    спасибо большое! за подробное обьяснение

  2. Nixx

    Создание отдельного шаблона страниц в WordPress

    Скажите, а для записей можно сделать, что-то подобное.

    Например:
    Если single.php новость из категории id-1 — то отобразится при просмотре блоки A,B,C
    Если все остальные категории (id-3, id-20 и т.д.) то отобразатся блоки D,E

    A title
    B caledar
    C except
    D content
    E comments

  3. Tod

    Nixx, попробуй глянуть здесь — http://codex.wordpress.org/Template_Tags/in_category (должно помочь)

  4. Nixx

    Благодарен. Сейчас попробую разобраться.

  5. Олег

    А как сделать, чтобы движёк wordpress обрабатывал не только стандартные адреса, типа post_id, но и другие, которые я сам сделаю. Например, я хочу сделать каталог, а как объяснить движку способ обработки адреса /straniza_cataloga_id. Я говорю не про ЧПУ, а про дополнительные файлы в папке шаблона wordpress

  6. Tod

    Олег, тут нужно почитать о создании модулей для wordpress, как я понимаю. Есть какие-то свои хитрости, чтобы это все работало. К сожалению, в этом направлении я ничего не читал.

  7. Олег

    Спасибо. Буду копать в эту сторону

  8. gosha

    А у меня выбора шаблона не появляется, думал из за темы, а нет… буду ждать 3 версию, может там исправится косяк

  9. anton

    В этом коде присутствует ошибка . Котнкретно — кавычки. Они должны быть одинарные.

  10. 3d-user

    А я редактирую в блокноте, а потом измененные файлы заливаю на сервер.

  11. Федор

    Попробывал чесно работает, но мне жалко времени на это!

  12. Artem

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

  13. Эрик

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

  14. Эрик

    Спасибо за вашу работу!!! =)

  15. EvgeniyVorobiev

    Спасибо! Очень пригодилось!
    Как раз сделал сервис у себя на блоге. Так сказать бесплатный фотошоп. =)

  16. Евгений Фоменко

    Для простых вариантов дизайна можно отдельные части шаблона делать в виде виджетов и потом просто через отдельный плагин выводить нужные куски в нужных местах — тут ничего ручками ковырять по сути не нужно.

  17. Согдиана

    Здравствуйте,
    Я хотела узнать, после того как добавите в папку новый шаблон страницы, например, шаблон portfolio.php и products.php, то тогда блок Page Template появится в админке на странице создания страниц?

  18. Tod

    Согдиана, если добавили все правильно, то появится сразу. Насколько я помню (это было очень давно) там есть некоторые нюансы с добавлением, возможно, где-то ошиблись.

  19. vasiliy

    index. php? вообще то за вывод страниц отвечает page.php его — то и нужно менять.

  20. Tod

    vasiliy, статья старая, возможно тогда page.php не было… на иллюстрации, в частности, я его не вижу, а что и как было в 2008 не вспомню)

  21. Андрей

    Здравствуйте, подскажите, пожалуйста, как добавить готовое наполнение для вновь созданного шаблона страницы (в wordpress). Это файлы index html, swf, папки js, res. Контент был создан в программе Kvisoft FlipBook Maker. Спасибо.

  22. Tod

    Андрей, если честно, не совсем понял о каком наполнении идет речь. Для текстов, изображений и даже html в системе есть текстовый редактор, с помощью которого создаются посты и страницы. Если вам нужно вставить какой-то сложный код php, например, то можно попробовать создать отдельный шаблон страницы и добавить код в него. Но вообще мне кажется вам нужно поискать варианты интеграции Kvisoft FlipBook Maker с wordpress через плагины, просто так код скорее всего не вставить.

  23. Андрей

    Наполнением называю готовую страницу (слайдшоу с эффектом перелистывания страниц), созданную в программе Kvisoft…, т.е. на компе я кликаю на интернетную ссылку(файл index html) и у меня открывается страница, а как содержимое этой страницы перенести в wordpress, не знаю. Спасибо.

  24. Анна

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

  25. Tod

    Анна, так в двух словах не рассказать, да и сам я с таким не сталкивался в плане разработки, только видел в шаблонах возможность выбора full width или обычный.

  26. Kolass

    Открыл header.php а там: header(); ?>
    Куда смотреть дальше?

  27. Tod

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

  28. Сергей

    Классный шаблон получится!

  29. seoonly.ru

    Спасибо!

Добавить комментарий

Ваш e-mail не публикуется. Обязательные поля помечены *
Если вы комментируете впервые, то текст будет отправлен на модерацию.