Создание страницы шаблона
Способ 1: шаблон страницы через файл с произвольным названием и подключением его в админ-панели (классический способ)
Для этого нужно создать .php файл, например, tpl_my-page.php в папке темы и в самом начале файла вписать пометку, что созданный файл является шаблоном для страниц:
<?php
/*
Template Name: Мой шаблон страницы
*/
?>
<!-- Здесь html/php код шаблона -->
Теперь при создании страницы в админ-панели в блоке «Атрибуты страницы» мы сможем выбрать «шаблон».
Преимущества:
Создав один шаблон, мы может удобно применять его для разных страниц. Например, мы может создать шаблон без боковой панели и использовать его на разных страницах.
Можно получить только записи с указанным шаблоном. Например, можно вывести все страницы с шаблоном «Услуги» (файл servises.php). Иногда это удобно. Название файла шаблона храниться в метаполе _wp_page_template, поэтому чтобы вывести страницы с указанным шаблоном нужно создать запрос по метаполю (см. WP_Query).
Недостатки:
После создания файла шаблона в папке темы, нужно зайти в админ-панель и установить шаблон для страницы. При разработке это не всегда удобно. Поэтому если подразумевается использовать шаблон только для одной страницы, используйте второй метод.
Как это работает:
Когда вы заходите в админ-панель на страницу редактирования страницы, WordPress просматривает все файлы шаблона на наличие в них строки:
Template Name: ***
Строка может располагаться где угодно и как угодно в файле.
Все файлы с подобными строками собираются и выводятся в выбор шаблона в блок «Атрибуты страницы».
При публикации страницы, в произвольное поле _wp_page_template записывается название файла шаблона или default, если шаблон не выбран:
_wp_page_template = default
_wp_page_template = tpl_my-page.php
Далее, когда пользователь посещает страницу, WordPress проверят метаполе _wp_page_template, если шаблон установлен, то используется файл шаблона. В противном случает поиск шаблона страницы продолжается по иерархии, см. картинку из второго способа.
Способ 2: шаблон страницы через файл с конкретным названием (иерархия файлов шаблона)
Этот способ подразумевает создание файла в папке темы с конкретным названием: page-{слаг-страницы}.php или page-{ID-страницы}.php.
При создании страницы ей устанавливается слаг (альтернативное название). Он используется в УРЛ страницы. И его можно изменить:
Для создание шаблона этим способом, вам нужно узнать слаг страницы и создать файл в папке темы. Допустим, наш слаг как на картинке равен contacts, тогда создадим в теме файл page-contacts.php. и заполним его нужным кодом (можно скопировать содержимое из файла шаблона page.php и отредактировать под себя). Все, теперь при посещении страницы мы должны увидеть новый шаблон. Аналогично можно взять ID (пусть 12) страницы и создать файл page-12.php.
Достоинства:
Нет необходимости заходить в админ-панель и устанавливать файл шаблона. Шаблон начинает работать сразу после создания файла. Удобно при разработке.
Недостатки:
Шаблон создается только для одной, конкретной страницы. Зависит от слага страницы, если он изменится шаблон работать не будет. Если использовать ID, то зависимость от слага пропадает, но становится непонятно в файла темы, к какой странице относится шаблон (если несколько шаблонов с ID).
Практически бесполезен при написании шаблонов, а тем-более плагинов. Его можно использовать, когда правишь свой сайт, в котором слаг или ID страницы известны заранее.
Как это работает:
WordPeress подбирает какой файл использовать по следующей схеме:
Здесь «Custom» это первый способ, когда указан шаблон в админ-панели. Если такой шаблон не указан, то WordPress проверят папку темы на наличие в ней файлов: page-{slag}.php или page-{id}.php.
Способ 3: шаблон страницы через фильтр «template_include» (коддинг)
Это продвинутый способ, он более сложный, но вместе со сложностью он открывает широкие возможности. С помощью этого способа можно задать шаблон любой странице, записи, категории, любой публикации на сайте или вообще группе любых публикаций. Смотрите примеры с описанием:
// фильтр передает переменную $template - путь до файла шаблона.
// Изменяя этот путь мы изменяем файл шаблона.
add_filter('template_include', 'my_template');
function my_template( $template ) {
# аналог второго способа
// если это страница со слагом portfolio, используем файл шаблона page-portfolio.php
// используем условный тег is_page()
if( is_page('portfolio') ){
if ( $new_template = locate_template( array( 'page-portfolio.php' ) ) )
return $new_template ;
}
# шаблон для группы рубрик
// этот пример будет использовать файл из папки темы tpl_special-cats.php,
// как шаблон для рубрик с ID 9, названием "Без рубрики" и слагом "php"
if( is_category( array( 9, 'Без рубрики', 'php') ) ){
return get_stylesheet_directory() . '/tpl_special-cats.php';
}
# шаблон для записи по ID
// файл шаблона расположен в папке плагина /my-plugin/site-template.php
global $post;
if( $post->ID == 12 ){
return wp_normalize_path( WP_PLUGIN_DIR ) . '/my-plugin/site-template.php';
}
# шаблон для страниц произвольного типа "book"
// предполагается, что файл шаблона book-tpl.php лежит в папке темы
global $post;
if( $post->post_type == 'book' ){
return get_stylesheet_directory() . '/book-tpl.php';
}
return $template;
}
Такой код нужно разместить в файл темы functions.php или в плагин, или подключить как-то еще. Как видно из примера во время фильтра template_include уже работают условные теги, установлены глобальные переменные: $wp_query, $post и т.д.
Достоинства:
Можно установить шаблон для любой страницы или группы страниц. Практически полный карт-бланш в действиях.
Можно создать шаблон при написании плагина.
Недостатки:
Необходимость писать код и отдельно его подключать (например, в functions.php темы).
Как это работает:
Читайте описание фильтра template_include.
Кеширование файлов через .htaccess
# Начало КЭШ браузера
FileETag MTime Size
<ifmodule mod_expires.c>
<filesmatch "\.(jpg|gif|png|css|js)$">
ExpiresActive on
ExpiresDefault "access plus 1 year"
</filesmatch>
</ifmodule>
# Конец КЭШ браузера
Основные сведения о DNS
При работе со службами Google Enterprise иногда приходится изменять настройки DNS для домена. В этой статье перечислены основные термины системы DNS и объясняется их значение для сервисов Google. О терминах, относящихся к доменам, рассказывается в статье Основные сведения о доменных именах.
DNS
Запись MX
Запись TXT
Запись CNAME
Запись A
Запись NS
Предписанное время жизни (TTL)
Унифицированный указатель ресурса (URL)
Пример конфигурации DNS
DNS
DNS –это система доменных имен, которая служит для поиска и идентификации доменов в Интернете. DNS можно сравнить с телефонным справочником, только вместо организаций в нем указаны веб-адреса, а вместо номеров телефона – IP-адреса. Например, если пользователь хочет попасть на главную страницу Google, он вводит в адресную строку браузера www.google.com, а DNS перенаправляет его запрос на IP-адрес 74.125.19.147.
При использовании служб и инструментов Google Enterprise время от времени необходимо настраивать DNS. Это можно делать, изменяя записи DNS. Например, чтобы перенаправить почту для своего домена G Suite на почтовые серверы Google, необходимо отредактировать запись MX.
Запись МХ
Записи MX управляют маршрутизацией электронной почты. Они направляют сообщения на серверы, на которых размещены пользовательские аккаунты в вашем домене. Для использования Gmail в G Suite записи MX должны указывать на почтовые серверы Google. Для одного домена можно создать несколько записей MX с разным приоритетом. Если сообщение не удается доставить на сервер, указанный в первой записи, используется вторая, затем третья и т. д.
Информацию о том, как создавать и изменять записи MX, чтобы они указывали на серверы Google, можно найти в статье Общие сведения о записях MX.
Запись TXT
Записи TXT содержат произвольный текст, используемый ресурсами за пределами вашего домена. Эта информация может быть предназначена как для людей, так и для машин. Записи TXT в Google Enterprise в первую очередь используются для проверки прав собственности на домен и защиты электронной почты с помощью таких механизмов, как SPF, DKIM и DMARC.
Инструкции по созданию и изменению записей TXT можно найти в статье Общие сведения о записях TXT.
Запись CNAME
Запись CNAME привязывает псевдоним домена к действительному, или каноническому, доменному имени, например www.example.com к example.com. Записи CNAME можно использовать, если для каких-либо служб G Suite или ресурсов на платформе Google Сайты необходимо установить пользовательский URL.
Запись A
Записи A (или адресные записи, также называемые записями хостов) связывают домен с физическим IP-адресом сервера, на котором размещены службы домена. При работе с Google Enterprise вы можете использовать запись А для переадресации с базового домена.
Подробные сведения о создании и изменении записей А можно найти в статье Общие сведения о записях A.
Запись NS
Записи сервера имен (NS) определяют, какие серверы должны передавать DNS-записи домена. Как правило, у каждого домена есть первичная и вторичная запись NS. При использовании служб Google Enterprise можно указать в NS-записях адреса DNS-серверов Google.
Предписанное время жизни (TTL)
Значение TTL указывает интервал в секундах, после которого внесенные в запись DNS изменения вступят в силу. У каждой DNS-записи в домене – MX, CNAME или любой другой – есть предписанное время жизни, определяющее скорость ее обновления. Например, записи с TTL, равным 86 400 секундам, обновятся только через сутки после их изменения.
Изменения в значении TTL влияют на скорость обновления записей только при их последующем обновлении. Мы рекомендуем устанавливать значение, равное 3600 секундам, чтобы серверы в Интернете проверяли актуальность записей каждый час. Таким образом, когда вы обновите записи в следующий раз, изменения вступят в силу в течение часа. Если нужно сократить время реакции, чтобы, например, быстро отменить изменения, уменьшите TTL до 300 секунд (5 минут).
Унифицированный указатель ресурса (URL)
URL – это адрес ресурса в Интернете, который вы видите в адресной строке браузера. Например, URL Справочного центра G Suite – http://support.google.com/a.
Настройка DNS для почты Google Jino хостинг
megascom.ru | IN SOA | ns1.jino.ru hostmaster@jino.ru (2016110201 16384 2048 1048576 25600) | |
*.megascom.ru | IN A | 81.177.165.51 | |
mail.megascom.ru | IN A | 81.177.140.40 | |
megascom.ru | IN A | 81.177.165.51 | |
mail.megascom.ru | IN CNAME | ghs.googlehosted.com | |
megascom.ru | IN MX | 1 ASPMX.L.GOOGLE.COM | |
megascom.ru | IN MX | 10 ALT4.ASPMX.L.GOOGLE.COM | |
megascom.ru | IN MX | 10 ALT4.ASPMX.L.GOOGLE.COM | |
megascom.ru | IN MX | 5 ALT1.ASPMX.L.GOOGLE.COM | |
megascom.ru | IN MX | 5 ALT2.ASPMX.L.GOOGLE.COM | |
megascom.ru | IN NS | ns2.jino.ru | |
megascom.ru | IN NS | ns3.jino.ru | |
megascom.ru | IN NS | ns1.jino.ru | |
megascom.ru | IN NS | ns4.jino.ru | |
megascom.ru | IN TXT | «v=spf1 include:_spf.google.com ~all» |