wpcom.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <?php
  2. /**
  3. * WordPress.com-specific functions and definitions.
  4. *
  5. * This file is centrally included from `wp-content/mu-plugins/wpcom-theme-compat.php`.
  6. *
  7. * @package Seedlet
  8. */
  9. /**
  10. * Add setting for hiding page title on the homepage.
  11. */
  12. function seedlet_wpcom_customize_update( $wp_customize ) {
  13. $wp_customize->add_setting( 'hide_front_page_title', array(
  14. 'default' => false,
  15. 'type' => 'theme_mod',
  16. 'transport' => 'postMessage',
  17. 'sanitize_callback' => 'seedlet_sanitize_checkbox',
  18. ) );
  19. $wp_customize->add_control( 'hide_front_page_title', array(
  20. 'label' => esc_html__( 'Hide Homepage Title', 'seedlet' ),
  21. 'description' => esc_html__( 'Check to hide the page title, if your homepage is set to display a static page.', 'seedlet' ),
  22. 'section' => 'static_front_page',
  23. 'priority' => 10,
  24. 'type' => 'checkbox',
  25. 'settings' => 'hide_front_page_title',
  26. ) );
  27. }
  28. add_action( 'customize_register', 'seedlet_wpcom_customize_update' );
  29. /**
  30. * Sanitize the checkbox.
  31. *
  32. * @param boolean $input.
  33. *
  34. * @return boolean true if is 1 or '1', false if anything else
  35. */
  36. function seedlet_sanitize_checkbox( $input ) {
  37. if ( 1 == $input ) {
  38. return true;
  39. } else {
  40. return false;
  41. }
  42. }
  43. /**
  44. * Bind JS handlers to instantly live-preview changes.
  45. */
  46. function seedlet_wpcom_customize_preview_js() {
  47. wp_enqueue_script( 'seedlet_wpcom_customize_preview', get_theme_file_uri( '/inc/wpcom-customize-preview.js' ), array( 'customize-preview' ), '1.0', true );
  48. }
  49. add_action( 'customize_preview_init', 'seedlet_wpcom_customize_preview_js' );
  50. /**
  51. * Enqueue our WP.com styles for front-end.
  52. * Loads after style.css so we can add overrides.
  53. */
  54. function seedlet_wpcom_scripts() {
  55. wp_enqueue_style( 'seedlet-wpcom-style', get_template_directory_uri() . '/inc/wpcom-style.css', array( 'seedlet-style' ), '20200629' );
  56. }
  57. add_action( 'wp_enqueue_scripts', 'seedlet_wpcom_scripts' );
  58. /**
  59. * Adds custom classes to the array of body classes.
  60. *
  61. * @param array $classes Classes for the body element.
  62. * @return array
  63. */
  64. function seedlet_wpcom_body_classes( $classes ) {
  65. $hide = get_theme_mod( 'hide_front_page_title', false );
  66. if ( true === $hide ) {
  67. $classes[] = 'hide-homepage-title';
  68. }
  69. $credit_option = get_option( 'footercredit' );
  70. if ( 'hidden' == $credit_option ) {
  71. $classes[] = 'hide-footer-credit';
  72. }
  73. return $classes;
  74. }
  75. add_filter( 'body_class', 'seedlet_wpcom_body_classes' );
  76. /**
  77. * Adds custom classes to the admin body classes.
  78. *
  79. * @param string $classes Classes for the body element.
  80. * @return string
  81. */
  82. function seedlet_wpcom_admin_body_classes( $classes ) {
  83. global $post;
  84. $is_block_editor_screen = ( function_exists( 'get_current_screen' ) && get_current_screen() && get_current_screen()->is_block_editor() );
  85. $hide = get_theme_mod( 'hide_front_page_title', false );
  86. $front_page = (int) get_option( 'page_on_front' );
  87. if ( $is_block_editor_screen && $front_page === $post->ID && true === $hide ) {
  88. $classes .= ' hide-homepage-title';
  89. }
  90. return $classes;
  91. }
  92. add_filter( 'admin_body_class', 'seedlet_wpcom_admin_body_classes' );
  93. /**
  94. * Enqueue our WP.com styles for the block editor.
  95. */
  96. function seedlet_wpcom_editor_scripts() {
  97. wp_enqueue_style( 'seedlet-wpcom-editor-style', get_template_directory_uri() . '/inc/wpcom-style-editor.css', array(), '20200629' );
  98. }
  99. add_action( 'enqueue_block_editor_assets', 'seedlet_wpcom_editor_scripts' );