我喜欢为我的项目的预期部分使用引导程序,但这次我需要创建一个主题设置页面来管理自定义主题的一些模板部分的激活。我想用一个开关来启用或禁用这些功能,但我不知道如何用wordpress的方式实现它。有人能给我提供一个实现的示例吗?我曾想过使用bootstrap,但这不是一个很好的选择,因为wordpress有自己的css规则集来管理后端各种输入和文本区域的样式。谢谢你的帮助。
<?php
class BSSMenu {
public function registerSettings()
{
add_settings_section(
\'swiper-settings\',
\'Swiper slider settings\',
[$this, \'SwiperOptions\'],
$menu_slug
);
add_settings_field(
\'swiper-autoload\',
\'Auto init slider\',
[$this, \'sliderSettings\'],
$menu_slug,
\'swiper-settings\'
);
register_setting( \'bs-shortcodes\', \'bs-slider\' );
}
public function initOptionsMenu()
{
extract([
\'page_title\' => \'Bootstrap Shortcodes - Settings\',
\'menu_title\' => \'Bootstrap Shortcodes\',
\'capability\' => \'manage_options\',
\'menu_slug\' => \'bs-shortcodes\',
\'function\' => [$this, \'renderOptionsMenu\'],
]);
$hook_suffix = add_options_page( $page_title, $menu_title, $capability, $menu_slug, $function );
//add_action( \'load-\'.$hook_suffix, [$this, \'initMenuScripts\'] );
}
// public function initMenuScripts()
// {
// wp_enqueue_script(\'popper-js\', PLUGIN_DIR.\'/js/popper.min.js\', [\'jquery\'] );
// wp_enqueue_script(\'bootstrap-js\', PLUGIN_DIR.\'/js/bootstrap.min.js\', [\'jquery\'] );
// wp_enqueue_style(\'bootstrap-css\', PLUGIN_DIR.\'/css/bootstrap.min.css\' );
// }
public function renderOptionsMenu()
{
?>
<div class="container-fluid">
<div class="row">
<div class="col-12">
<h1>Bootstrap Shortcodes - Swiper settings</h1>
</div>
<div class="col-12">
<form action="options.php" method="POST">
<!-- Swiper auto init -->
<?php
settings_fields(\'bs-shortcodes\');
do_settings_sections(\'bs-shortcodes\');
$options = get_option(\'bs-shortcodes\');
?>
<div class="custom-control custom-switch">
<input type="checkbox" class="custom-control-input" name="bs-slider" id="customSwitch1" value="0" <?php checked($options[\'bs-slider\'], 1); ?>/>
<label class="custom-control-label" for="customSwitch1">Auto init swiper</label>
</div>
<?php
submit_button();
?>
</form>
</div>
</div>
</div>
<?php
}
// public function sliderSettings()
// {
// echo \'
// <div class="custom-control custom-switch">
// <input type="checkbox" class="custom-control-input" name="bs-slider" id="customSwitch1" value="\'. get_option(\'bs-slider\') .\'">
// <label class="custom-control-label" for="customSwitch1">Auto init swiper</label>
// </div>
// \';
// }
}
?>
注:我仍在练习设置API,这是因为我很难理解如何正确添加节和字段,如果我的代码中有错误,我很抱歉!它使用bootstrap 4,但我将修改代码以反映默认的wordpress css后端类。