Привет. О том, как создавать шаблоны для страниц и записей в WordPress написано много статей и снято сотни видео, если не тысячи, даже я уже писал об этом. И вы наверняка знаете, что если создать файл в папке темы с произвольным названием, даже (123.php) и добавить в него такой комментарий, то он автоматически станет шаблоном для типа записей или страниц, если укажете. И его можно будет менять на странице редактирования записи в атрибутах.
1
2
3
4
| /*
Template Name: Мой шаблон страницы
Template Post Type: post
*/ |
/*
Template Name: Мой шаблон страницы
Template Post Type: post
*/
Это один из способов создания шаблонов в WordPress, который не лишен недостатков. Но есть и еще один способ, который заключается в создании файла типа page-slug_page.php (slug страницы), например page-about.php или page-123.php (ID страницы). И такие файлы будут автоматически распознаны WordPress как шаблоны конкретных страниц. Но как быть, если нам необходимо сделать то же самое для конкретной записи и мы не хотим менять его их админки. Если мы создадим файл в папке темы вида: single-slug-post.php или single-123.php, то не увидим никаких изменений. Следовательно такой трюк с создание шаблонов для конкретных записей не пройдет и необходимо будет самостоятельно реализовать такую возможность. Потребуется дописать немного кода в файл functions.php.
1
2
3
4
5
6
7
8
9
10
11
| function serblog_single($serblog_template) {
global $wp_query, $post;
if(file_exists(TEMPLATEPATH . '/single-' . $post->ID . '.php')) {
return TEMPLATEPATH . '/single-' . $post->ID . '.php';
}
if(file_exists(TEMPLATEPATH . '/single.php')) {
return TEMPLATEPATH . '/single.php';
}
return $serblog_template;
}
add_filter('single_template', 'serblog_single'); |
function serblog_single($serblog_template) {
global $wp_query, $post;
if(file_exists(TEMPLATEPATH . '/single-' . $post->ID . '.php')) {
return TEMPLATEPATH . '/single-' . $post->ID . '.php';
}
if(file_exists(TEMPLATEPATH . '/single.php')) {
return TEMPLATEPATH . '/single.php';
}
return $serblog_template;
}
add_filter('single_template', 'serblog_single');
И только после этого можно спокойно создавать файлы шаблонов для записей в WordPress с названием: single-123.php, где 123 — это ID конкретной записи. Минусом такого способа является то, что если таких шаблонов будет много, то визуально будет сложно понять какой из них к какой записи относится/ Но такой требуется крайне редко, чаще всего шаблоны создаются именно для страниц, а не записей, поэтому этот хак можно применить один раз, создать шаблон для записи и благополучно об этом забыть. На этом все.
Добавить комментарий