functions.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. if ( ! function_exists( 'blockbase_support' ) ) :
  3. function blockbase_support() {
  4. // Alignwide and alignfull classes in the block editor.
  5. add_theme_support( 'align-wide' );
  6. // Add support for experimental link color control.
  7. add_theme_support( 'experimental-link-color' );
  8. // Add support for responsive embedded content.
  9. // https://github.com/WordPress/gutenberg/issues/26901
  10. add_theme_support( 'responsive-embeds' );
  11. // Add support for editor styles.
  12. add_theme_support( 'editor-styles' );
  13. // Add support for post thumbnails.
  14. add_theme_support( 'post-thumbnails' );
  15. // Declare that there are no <title> tags and allow WordPress to provide them
  16. add_theme_support( 'title-tag' );
  17. // Experimental support for adding blocks inside nav menus
  18. add_theme_support( 'block-nav-menus' );
  19. // Enqueue editor styles.
  20. add_editor_style(
  21. array(
  22. '/assets/ponyfill.css',
  23. )
  24. );
  25. // This theme has one menu location.
  26. register_nav_menus(
  27. array(
  28. 'primary' => __( 'Primary Navigation', 'blockbase' ),
  29. )
  30. );
  31. }
  32. add_action( 'after_setup_theme', 'blockbase_support' );
  33. endif;
  34. /**
  35. *
  36. * Enqueue scripts and styles.
  37. */
  38. function blockbase_editor_styles() {
  39. // Enqueue editor styles.
  40. add_editor_style(
  41. array(
  42. blockbase_fonts_url(),
  43. )
  44. );
  45. }
  46. add_action( 'admin_init', 'blockbase_editor_styles' );
  47. /**
  48. *
  49. * Enqueue scripts and styles.
  50. */
  51. function blockbase_scripts() {
  52. // Enqueue Google fonts
  53. wp_enqueue_style( 'blockbase-fonts', blockbase_fonts_url(), array(), null );
  54. wp_enqueue_style( 'blockbase-ponyfill', get_template_directory_uri() . '/assets/ponyfill.css', array(), wp_get_theme()->get( 'Version' ) );
  55. }
  56. add_action( 'wp_enqueue_scripts', 'blockbase_scripts' );
  57. /**
  58. * Add Google webfonts
  59. *
  60. * @return $fonts_url
  61. */
  62. function blockbase_fonts_url() {
  63. if ( ! class_exists( 'WP_Theme_JSON_Resolver_Gutenberg' ) ) {
  64. return '';
  65. }
  66. $theme_data = WP_Theme_JSON_Resolver_Gutenberg::get_merged_data()->get_settings();
  67. if ( empty( $theme_data ) || empty( $theme_data['custom'] ) ) {
  68. return '';
  69. }
  70. $custom_data = $theme_data['custom'];
  71. if ( ! array_key_exists( 'fontsToLoadFromGoogle', $custom_data ) ) {
  72. return '';
  73. }
  74. $font_families = $theme_data['custom']['fontsToLoadFromGoogle'];
  75. $font_families[] = 'display=swap';
  76. // Make a single request for the theme fonts.
  77. return esc_url_raw( 'https://fonts.googleapis.com/css2?' . implode( '&', $font_families ) );
  78. }
  79. /**
  80. * Customize Global Styles
  81. */
  82. require get_template_directory() . '/inc/customizer/wp-customize-colors.php';
  83. require get_template_directory() . '/inc/customizer/wp-customize-color-palettes.php';
  84. require get_template_directory() . '/inc/customizer/wp-customize-fonts.php';
  85. /** Add a checkbox to hide the Site Editor */
  86. require get_template_directory() . '/inc/disable-site-editor.php';