it-roy-ru.com

Можно ли установить шаблон страницы на динамической домашней странице (список статей)?

Когда мы создаем или редактируем страницу, мы часто можем установить шаблон страницы в зависимости от используемой темы. Допустим, у нас есть шаблоны "по умолчанию" и "с боковой панелью".

Моя домашняя страница представляет собой список последних статей, как и с настройками Wordpress по умолчанию. Это не установлено как статическая страница.

Можно ли установить шаблон "с боковой панелью" на эту страницу?

1
Gaston Flanchard

Шаблонная иерархия имеет набор фильтров , позволяющих вам изменять, какой шаблон загружается для каждого типа запроса. В этом случае вы можете использовать home_template.

Вам нужно будет поработать над созданием собственного интерфейса для выбора шаблона через API Theme Mods API/Customizer API или есть также несколько плагинов, позволяющих создавать страницы опций темы.

В этом примере мы перехватываем home_template и проверяем параметр с именем wpd_home_template_shows_sidebar, а также загружаем шаблон with-sidebar.php, если он существует. Обратите внимание, что мы return$template передали функции в любом случае.

function wpd_home_template( $template ) {
    if( get_option( 'wpd_home_template_shows_sidebar' ) ){
        $template = locate_template( 'with-sidebar.php' );
    }
    return $template;
}
add_filter( 'home_template', 'wpd_home_template' );
1
Milo