使用主题定制器来完全构建首页是一个有趣的想法。下面是我将如何开始它。
首先,让我们构建一个只显示在首页的部分:
add_action( \'customize_register\', \'wpse_205445_customizer\' );
function wpse_205445_customizer($wp_customize) {
$wp_customize->add_section( \'custom-front-page\', array(
\'title\' => "Custom Front Page",
\'priority\' => 10,
\'active_callback\' => \'is_front_page\'
));
}
其次,让我们做一些设置。这里只举一个例子,一个下拉列表来选择主页设置。小心点
transport
必须是
refresh
, 因为我们还需要一个完整的页面加载。
$wp_customize->add_setting(\'main-page-setup\', array(
\'default\' => \'\',
\'type\' => \'theme_mod\',
\'capability\' => \'edit_theme_options\',
\'theme_supports\' => \'\',
\'transport\' => \'refresh\',
\'sanitize_callback\' => \'sanitize_text_field\'
));
第三,设置必须具有控件:
$control_args = array(
\'label\' => \'My Main Page Setup\',
\'section\' => \'custom-front-page\',
\'settings\' => \'main-page-setup\',
\'priority\' => 20,
\'type\' => \'select\',
\'choices\' => array(\'one-column\', \'twocolumns\', \'threecolumns\'),
);
$wp_customize->add_control( new WP_Customize_Control ($wp_customize, \'main-page-setup\', $control_args));
现在,我们在customizer中有一个下拉选择,仅显示在frontpage上,它提供了三个选项。现在,让我们转到
front-page.php
. 这里我们需要称之为mod:
$main-page-setup = get_theme_mod(\'main-page-setup\');
switch ($main-page-setup) {
case \'one-column\' : get_template_part (\'front-page-one-column\');
case \'two-columns\' : get_template_part (\'front-page-two-columns\');
case \'three-column \' : get_template_part (\'front-page-three-columns\');
default : get_template_part (\'front-page-default\');
}
因此,有一种方法可以使用定制器完成对首页布局的更改。当然,您也可以在图像之间或不同的post查询之间切换以更改内容,而不是加载模板部分。