functions.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <?php
  2. if ( ! function_exists( 'blank_canvas_blocks_support' ) ) :
  3. function blank_canvas_blocks_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. // Enqueue editor styles.
  14. add_editor_style(
  15. array(
  16. '/assets/ponyfill.css',
  17. )
  18. );
  19. }
  20. add_action( 'after_setup_theme', 'blank_canvas_blocks_support' );
  21. endif;
  22. /**
  23. *
  24. * Enqueue scripts and styles.
  25. */
  26. function blank_canvas_editor_styles() {
  27. // Enqueue editor styles.
  28. add_editor_style(
  29. array(
  30. blank_canvas_blocks_fonts_url(),
  31. )
  32. );
  33. }
  34. add_action( 'admin_init', 'blank_canvas_editor_styles' );
  35. /**
  36. *
  37. * Enqueue scripts and styles.
  38. */
  39. function blank_canvas_blocks_scripts() {
  40. // Enqueue Google fonts
  41. wp_enqueue_style( 'blank-canvas-blocks-fonts', blank_canvas_blocks_fonts_url(), array(), null );
  42. wp_enqueue_script( 'blank-canvas-navigation-script', get_template_directory_uri() . '/assets/navigation.js', array(), wp_get_theme()->get( 'Version' ), true );
  43. wp_enqueue_style( 'blank_canvas_blocks-ponyfill', get_template_directory_uri() . '/assets/ponyfill.css', array(), wp_get_theme()->get( 'Version' ) );
  44. }
  45. add_action( 'wp_enqueue_scripts', 'blank_canvas_blocks_scripts' );
  46. /**
  47. * Add Google webfonts
  48. *
  49. * @return $fonts_url
  50. */
  51. function blank_canvas_blocks_fonts_url() {
  52. $fonts_url = '';
  53. if ( ! class_exists( 'WP_Theme_JSON_Resolver' ) ) {
  54. return '';
  55. }
  56. $theme_data = WP_Theme_JSON_Resolver::get_merged_data()->get_settings();
  57. if ( empty( $theme_data ) || empty( $theme_data['defaults'] ) || empty( $theme_data['defaults']['custom'] ) ) {
  58. return '';
  59. }
  60. $custom_data = $theme_data['defaults']['custom'];
  61. if ( array_key_exists( 'fontsToLoadFromGoogle', $custom_data ) ) {
  62. $font_families = $theme_data['defaults']['custom']['fontsToLoadFromGoogle'];
  63. $font_families[] = 'display=swap';
  64. // Make a single request for the theme fonts.
  65. $fonts_url = 'https://fonts.googleapis.com/css2?' . implode( '&', $font_families );
  66. }
  67. return esc_url_raw( $fonts_url );
  68. }
  69. /**
  70. * Block Patterns.
  71. */
  72. require get_template_directory() . '/inc/block-patterns.php';