admin管理员组文章数量:1404924
In my theme I have the following code in my functions.php to enqueue my my stylesheets.
function mytheme_styles() {
wp_register_style('headerMobile', get_template_directory_uri() . '/assets/css/header-mobile.css' );
wp_register_style('headerGeneral', get_template_directory_uri() . '/assets/css/header-general.css' );
wp_register_style('headerDesktop', get_template_directory_uri() . '/assets/css/header-desktop.css' );
wp_register_style('fonts', get_template_directory_uri() . '/assets/css/fonts.css' );
wp_register_script('headerMobileEngine', get_template_directory_uri() . '/assets/js/header.js', array ( 'jquery' ), 1.1, true);
wp_enqueue_style( 'style', get_stylesheet_uri() );
wp_enqueue_style( 'fonts' );
wp_enqueue_style( 'headerGeneral' );
wp_enqueue_style( 'headerMobile' );
wp_enqueue_style( 'headerDesktop' );
wp_enqueue_script( 'headerMobileEngine' );
}
add_action( 'wp_enqueue_scripts', 'mytheme_styles' );
Users should have the ability to change the layout of the desktop header; the default one or the mobile version (slightly adapted for desktop). I therefore have created a copy of the css for my mobile which I want to register as headerMobileLarge
.
In the customizer, I created a radio button, 'layout_header_desktop', which can be regular
or fullscreen
.
Now I want to load headerDesktop when it is set to regular
or headerMobileLarge when it is set to fullscreen
. I figured out I could do this with an if/else statement in combination with get_theme_mod()
, but I do not get it to work. Please show me how I should rewrite the mytheme_styles()
to do this! Thank you!
In my theme I have the following code in my functions.php to enqueue my my stylesheets.
function mytheme_styles() {
wp_register_style('headerMobile', get_template_directory_uri() . '/assets/css/header-mobile.css' );
wp_register_style('headerGeneral', get_template_directory_uri() . '/assets/css/header-general.css' );
wp_register_style('headerDesktop', get_template_directory_uri() . '/assets/css/header-desktop.css' );
wp_register_style('fonts', get_template_directory_uri() . '/assets/css/fonts.css' );
wp_register_script('headerMobileEngine', get_template_directory_uri() . '/assets/js/header.js', array ( 'jquery' ), 1.1, true);
wp_enqueue_style( 'style', get_stylesheet_uri() );
wp_enqueue_style( 'fonts' );
wp_enqueue_style( 'headerGeneral' );
wp_enqueue_style( 'headerMobile' );
wp_enqueue_style( 'headerDesktop' );
wp_enqueue_script( 'headerMobileEngine' );
}
add_action( 'wp_enqueue_scripts', 'mytheme_styles' );
Users should have the ability to change the layout of the desktop header; the default one or the mobile version (slightly adapted for desktop). I therefore have created a copy of the css for my mobile which I want to register as headerMobileLarge
.
In the customizer, I created a radio button, 'layout_header_desktop', which can be regular
or fullscreen
.
Now I want to load headerDesktop when it is set to regular
or headerMobileLarge when it is set to fullscreen
. I figured out I could do this with an if/else statement in combination with get_theme_mod()
, but I do not get it to work. Please show me how I should rewrite the mytheme_styles()
to do this! Thank you!
- Never heard of css media queries? – user3135691 Commented Jan 2, 2020 at 18:43
- Of course, but I do not know how I change (or remove) the min/max-width of a media query as the result of a customizer control, if it is just in a normal CSS file? – ralphjsmit Commented Jan 3, 2020 at 14:20
1 Answer
Reset to default 1I think something like the following should work. Uncomment the var_dump
to double check you're getting the saved theme mod value you're expecting. If not, check the naming of your customizer setting and that it saved properly.
function mytheme_styles() {
$theme_dir_uri = get_template_directory_uri();
// enqueue common styles and scripts
// wp_enqueue_style( $handle, $src = false, $deps = array(), $ver = false, $media = 'all' );
// wp_enqueue_script( $handle, $src = false, $deps = array(), $ver = false, $in_footer = false );
$header_layout_style = get_theme_mod(
'layout_header_desktop', // name of your theme mod
'regular' // default value, if no saved mod
);
// var_dump($header_layout_style);
if ( 'fullscreen' === $header_layout_style ) {
// enqueue relevant styles and scripts
// wp_enqueue_style( 'headerMobileLarge', $theme_dir_uri . '/assets/css/header-mobile-large.css' );
} else {
// enqueue other styles and scripts
// wp_enqueue_style( 'headerDesktop', $theme_dir_uri . '/assets/css/header-desktop.css' );
}
}
本文标签: phpPlease show me how to use an ifelse statement in combination with wpenqueue
版权声明:本文标题:php - Please show me how to use an ifelse statement in combination with wp_enqueue 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1744865328a2629312.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论