Last active
January 3, 2022 03:17
-
-
Save rdswd/edee5891e6cb7fa1a30d10cdbca4c4f4 to your computer and use it in GitHub Desktop.
Example of functions.php
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| /** | |
| * Interplay Design functions and definitions | |
| * | |
| * @link https://developer.wordpress.org/themes/basics/theme-functions/ | |
| * | |
| * @package Interplay_Design | |
| */ | |
| if ( ! function_exists( 'int_design_31_setup' ) ) : | |
| /** | |
| * Sets up theme defaults and registers support for various WordPress features. | |
| * | |
| * Note that this function is hooked into the after_setup_theme hook, which | |
| * runs before the init hook. The init hook is too late for some features, such | |
| * as indicating support for post thumbnails. | |
| */ | |
| function int_design_31_setup() { | |
| /* | |
| * Make theme available for translation. | |
| * Translations can be filed in the /languages/ directory. | |
| * If you're building a theme based on Interplay Design, use a find and replace | |
| * to change 'int-design-31' to the name of your theme in all the template files. | |
| */ | |
| load_theme_textdomain( 'int-design-31', get_template_directory() . '/languages' ); | |
| // Add default posts and comments RSS feed links to head. | |
| add_theme_support( 'automatic-feed-links' ); | |
| /* | |
| * Let WordPress manage the document title. | |
| * By adding theme support, we declare that this theme does not use a | |
| * hard-coded <title> tag in the document head, and expect WordPress to | |
| * provide it for us. | |
| */ | |
| add_theme_support( 'title-tag' ); | |
| /* | |
| * Enable support for Post Thumbnails on posts and pages. | |
| * | |
| * @link https://developer.wordpress.org/themes/functionality/featured-images-post-thumbnails/ | |
| */ | |
| add_theme_support( 'post-thumbnails' ); | |
| // This theme uses wp_nav_menu() in one location. | |
| register_nav_menus( array( | |
| 'menu-1' => esc_html__( 'Primary', 'int-design-31' ), | |
| ) ); | |
| /* | |
| * Switch default core markup for search form, comment form, and comments | |
| * to output valid HTML5. | |
| */ | |
| add_theme_support( 'html5', array( | |
| 'search-form', | |
| 'comment-form', | |
| 'comment-list', | |
| 'gallery', | |
| 'caption', | |
| ) ); | |
| // Set up the WordPress core custom background feature. | |
| add_theme_support( 'custom-background', apply_filters( 'int_design_31_custom_background_args', array( | |
| 'default-color' => 'ffffff', | |
| 'default-image' => '', | |
| ) ) ); | |
| // Add theme support for selective refresh for widgets. | |
| add_theme_support( 'customize-selective-refresh-widgets' ); | |
| /** | |
| * Add support for core custom logo. | |
| * | |
| * @link https://codex.wordpress.org/Theme_Logo | |
| */ | |
| add_theme_support( 'custom-logo', array( | |
| 'height' => 250, | |
| 'width' => 250, | |
| 'flex-width' => true, | |
| 'flex-height' => true, | |
| ) ); | |
| add_theme_support( 'editor-color-palette', array( | |
| array( | |
| 'name' => __( 'Black', 'int-design-31' ), | |
| 'slug' => 'black', | |
| 'color' => '#212020', | |
| ), | |
| array( | |
| 'name' => __( 'Salmon', 'int-design-31' ), | |
| 'slug' => 'salmon', | |
| 'color' => '#ef6f56', | |
| ), | |
| array( | |
| 'name' => __( 'Green', 'int-design-31' ), | |
| 'slug' => 'green', | |
| 'color' => '#4cbf96', | |
| ), | |
| array( | |
| 'name' => __( 'Light Green', 'int-design-31' ), | |
| 'slug' => 'light-green', | |
| 'color' => '#e2e8e7', | |
| ), | |
| array( | |
| 'name' => __( 'Amber', 'int-design-31' ), | |
| 'slug' => 'amber', | |
| 'color' => '#edc92f', | |
| ), | |
| array( | |
| 'name' => __( 'Dark Blue', 'int-design-31' ), | |
| 'slug' => 'dark-blue', | |
| 'color' => '#364151', | |
| ), | |
| ) ); | |
| add_theme_support( 'wp-block-styles' ); | |
| add_theme_support( 'align-wide' ); | |
| add_theme_support( 'editor-font-sizes', array( | |
| array( | |
| 'name' => __( 'Small', 'int-design-31' ), | |
| 'size' => 12, | |
| 'slug' => 'small' | |
| ), | |
| array( | |
| 'name' => __( 'Regular', 'int-design-31' ), | |
| 'size' => 16, | |
| 'slug' => 'regular' | |
| ), | |
| array( | |
| 'name' => __( 'Large', 'int-design-31' ), | |
| 'size' => 36, | |
| 'slug' => 'large' | |
| ), | |
| array( | |
| 'name' => __( 'Huge', 'int-design-31' ), | |
| 'size' => 50, | |
| 'slug' => 'huge' | |
| ) | |
| ) ); | |
| add_theme_support( 'disable-custom-font-sizes' ); | |
| add_theme_support( 'disable-custom-colors' ); | |
| /** | |
| * Adds the capacity to use a separate style sheet | |
| * for dark editor theme or just editor sheet. | |
| * See add_editor_style( 'style-editor.css' ); | |
| */ | |
| add_theme_support('editor-styles'); | |
| add_editor_style( 'style-editor.css' ); | |
| /** | |
| * Typekit enqueued for our editor | |
| * <link rel="stylesheet" href="https://use.typekit.net/wyc2gcp.css"> | |
| */ | |
| add_editor_style( 'https://use.typekit.net/wyc2gcp.css' ); | |
| } | |
| endif; | |
| add_action( 'after_setup_theme', 'int_design_31_setup' ); | |
| /** | |
| * Set the content width in pixels, based on the theme's design and stylesheet. | |
| * | |
| * Priority 0 to make it available to lower priority callbacks. | |
| * | |
| * @global int $content_width | |
| */ | |
| function int_design_31_content_width() { | |
| // This variable is intended to be overruled from themes. | |
| // Open WPCS issue: {@link https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/issues/1043}. | |
| // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound | |
| $GLOBALS['content_width'] = apply_filters( 'int_design_31_content_width', 640 ); | |
| } | |
| add_action( 'after_setup_theme', 'int_design_31_content_width', 0 ); | |
| /** | |
| * Register widget area. | |
| * | |
| * @link https://developer.wordpress.org/themes/functionality/sidebars/#registering-a-sidebar | |
| */ | |
| function int_design_31_widgets_init() { | |
| register_sidebar( array( | |
| 'name' => esc_html__( 'Sidebar', 'int-design-31' ), | |
| 'id' => 'sidebar-1', | |
| 'description' => esc_html__( 'Add widgets here.', 'int-design-31' ), | |
| 'before_widget' => '<section id="%1$s" class="widget %2$s">', | |
| 'after_widget' => '</section>', | |
| 'before_title' => '<h2 class="widget-title">', | |
| 'after_title' => '</h2>', | |
| ) ); | |
| register_sidebar( array( | |
| 'name' => esc_html__( 'Footer', 'int-design-31' ), | |
| 'id' => 'footer-1', | |
| 'description' => esc_html__( 'Add footer widgets here.', 'int-design-31' ), | |
| 'before_widget' => '<section id="%1$s" class="widget %2$s">', | |
| 'after_widget' => '</section>', | |
| 'before_title' => '<h2 class="widget-title">', | |
| 'after_title' => '</h2>', | |
| ) ); | |
| } | |
| add_action( 'widgets_init', 'int_design_31_widgets_init' ); | |
| /** | |
| * Enqueue scripts and styles. | |
| */ | |
| function int_design_31_scripts() { | |
| wp_enqueue_style( 'int-design-31-style', get_stylesheet_uri() ); | |
| wp_enqueue_style( 'int-design-31-fonts', 'https://use.typekit.net/wyc2gcp.css' ); | |
| wp_enqueue_script( 'int-design-31-navigation', get_template_directory_uri() . '/js/build/production-footer.js', array(), '20151215', true ); | |
| if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { | |
| wp_enqueue_script( 'comment-reply' ); | |
| } | |
| } | |
| add_action( 'wp_enqueue_scripts', 'int_design_31_scripts' ); | |
| /** | |
| * Implement the Custom Header feature. | |
| */ | |
| require get_template_directory() . '/inc/custom-header.php'; | |
| /** | |
| * Custom template tags for this theme. | |
| */ | |
| require get_template_directory() . '/inc/template-tags.php'; | |
| /** | |
| * Functions which enhance the theme by hooking into WordPress. | |
| */ | |
| require get_template_directory() . '/inc/template-functions.php'; | |
| /** | |
| * Customizer additions. | |
| */ | |
| require get_template_directory() . '/inc/customizer.php'; | |
| /** | |
| * Load Jetpack compatibility file. | |
| */ | |
| if ( defined( 'JETPACK__VERSION' ) ) { | |
| require get_template_directory() . '/inc/jetpack.php'; | |
| } | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment