请向我演示如何将if/Else语句与wp_enQueue结合使用

时间:2020-01-02 作者:ralphjsmit

在我的主题中,我的函数中有以下代码。php将我的样式表排队。

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\' );
用户应该能够更改桌面标题的布局;默认版本或移动版本(略为适合桌面)。因此,我为我的手机创建了一份css副本,我想注册为headerMobileLarge.

在customizer中,我创建了一个单选按钮“layout\\u header\\u desktop”,可以regularfullscreen.

现在,我想在headerDesktop设置为regular 或headerMobileLargefullscreen. 我想我可以用if/else语句结合get_theme_mod(), 但我没有让它发挥作用。请告诉我应该如何重写mytheme_styles() 这样做!非常感谢。

1 个回复
最合适的回答,由SO网友:Antti Koskinen 整理而成

我认为下面的方法应该有效。取消注释var_dump 要再次检查,您将获得所需的已保存主题mod值。如果没有,请检查自定义程序设置的命名以及它是否正确保存。

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\' );
  }

}