true, 'height' => 36, ) ); /* * Enable support for Post Thumbnails on posts and pages. */ add_theme_support('post-thumbnails'); set_post_thumbnail_size(1200, 9999); add_theme_support( 'post-thumbnails' ); $args = array( 'default-image' => get_template_directory_uri() . '/images/default-header.jpg', 'width' => 1200, 'height' => 380, 'flex-width' => true, 'flex-height' => true, 'random-default' => true, ); add_theme_support( 'custom-header', $args ); // This theme uses wp_nav_menu() in two locations. register_nav_menus(array( 'primary' => __('Primary Menu', 'cafeterrace'), 'social' => __('Social Links Menu', 'cafeterrace') )); /* * 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' )); /* * Enable support for Post Formats. */ add_theme_support('post-formats', array( 'aside', 'image', 'video', 'quote', 'link', 'gallery', 'status', 'audio', 'chat' )); /* * This theme styles the visual editor to resemble the theme style, * specifically font, colors, icons, and column width. */ add_editor_style( array( 'css/editor-style.css', cafeterrace_fonts_url() ) ); // Indicate widget sidebars can use selective refresh in the Customizer. add_theme_support('customize-selective-refresh-widgets'); } endif; // cafeterrace_setup add_action('after_setup_theme', 'cafeterrace_setup'); /** * Sets the content width in pixels, based on the theme's design and stylesheet. */ function cafeterrace_content_width() { $GLOBALS['content_width'] = apply_filters('cafeterrace_content_width', 840); } add_action('after_setup_theme', 'cafeterrace_content_width', 0); /* * Header top images. */ function get_the_header_top_image_url() { return get_template_directory_uri() . '/images/header-top.png'; } function cafeterrace_site_info() { $text = '' . __( 'WordPress Theme', 'cafeterrace' ). ''; if ( '' != $text ) : ?>
array( 'href' => array(), 'title' => array() ), 'br' => array(), 'em' => array(), 'strong' => array(), ) ); ?>
__('Sidebar', 'cafeterrace'), 'id' => 'sidebar-1', 'description' => __('Add widgets here to appear in your sidebar.', 'cafeterrace'), 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

' )); register_sidebar(array( 'name' => __('Content Bottom 1', 'cafeterrace'), 'id' => 'sidebar-2', 'description' => __('Appears at the bottom of the content on posts and pages.', 'cafeterrace'), 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

' )); register_sidebar(array( 'name' => __('Content Bottom 2', 'cafeterrace'), 'id' => 'sidebar-3', 'description' => __('Appears at the bottom of the content on posts and pages.', 'cafeterrace'), 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

' )); } add_action('widgets_init', 'cafeterrace_widgets_init'); /* * Manage_Posts_Columns */ function manage_posts_columns($columns) { $columns['thumbnail'] = __('Thumbnail', 'cafeterrace'); return $columns; } function add_column($column_name, $post_id) { if ('thumbnail' == $column_name) { $post_thumbnail = get_the_post_thumbnail($post_id, array( 50, 50 ), 'thumbnail'); } if (isset($post_thumbnail) && $post_thumbnail) { echo $post_thumbnail; } else { echo __('None', 'cafeterrace'); } } add_filter('manage_posts_columns', 'manage_posts_columns'); add_action('manage_posts_custom_column', 'add_column', 10, 2); function manage_pages_columns($columns) { $columns['thumbnail'] = __('Thumbnail', 'cafeterrace'); return $columns; } function custom_page_column_content($column_name, $post_id) { if ($column_name == 'thumbnail') { $page_thumbnail = get_the_post_thumbnail($post_id, array( 50, 50 ), 'thumbnail'); } if (isset($page_thumbnail) && $page_thumbnail) { echo $page_thumbnail; } else { echo __('None', 'cafeterrace'); } } add_filter('manage_pages_columns', 'manage_pages_columns'); add_action('manage_pages_custom_column', 'custom_page_column_content', 10, 2); if (!function_exists('cafeterrace_fonts_url')): /** * Register Google fonts for cafeterrace. */ function cafeterrace_fonts_url() { $fonts_url = ''; $fonts = array(); $subsets = 'latin,latin-ext'; /* translators: If there are characters in your language that are not supported by Merriweather, translate this to 'off'. Do not translate into your own language. */ if ('off' !== _x('on', 'Merriweather font: on or off', 'cafeterrace')) { $fonts[] = 'Merriweather:400,700,900,400italic,700italic,900italic'; } /* translators: If there are characters in your language that are not supported by Montserrat, translate this to 'off'. Do not translate into your own language. */ if ('off' !== _x('on', 'Montserrat font: on or off', 'cafeterrace')) { $fonts[] = 'Montserrat:400,700'; } /* translators: If there are characters in your language that are not supported by Inconsolata, translate this to 'off'. Do not translate into your own language. */ if ('off' !== _x('on', 'Inconsolata font: on or off', 'cafeterrace')) { $fonts[] = 'Inconsolata:400'; } if ($fonts) { $fonts_url = add_query_arg(array( 'family' => urlencode(implode('|', $fonts)), 'subset' => urlencode($subsets) ), 'https://fonts.googleapis.com/css'); } return $fonts_url; } endif; /** * Handles JavaScript detection. * Adds a `js` class to the root `` element when JavaScript is detected. */ function cafeterrace_javascript_detection() { echo "\n"; } add_action('wp_head', 'cafeterrace_javascript_detection', 0); /** * Enqueues scripts and styles. */ function cafeterrace_scripts() { // Add custom fonts, used in the main stylesheet. wp_enqueue_style('cafeterrace-fonts', cafeterrace_fonts_url(), array(), null); // Add Genericons, used in the main stylesheet. wp_enqueue_style('genericons', get_template_directory_uri() . '/genericons/genericons.css', array(), '3.4.1'); // Theme stylesheet. wp_enqueue_style('cafeterrace-style', get_stylesheet_uri()); // Load the Internet Explorer specific stylesheet. wp_enqueue_style('cafeterrace-ie', get_template_directory_uri() . '/css/ie.css', array( 'cafeterrace-style' ), '20160412'); wp_style_add_data('cafeterrace-ie', 'conditional', 'lt IE 10'); // Load the Internet Explorer 8 specific stylesheet. wp_enqueue_style('cafeterrace-ie8', get_template_directory_uri() . '/css/ie8.css', array( 'cafeterrace-style' ), '20160412'); wp_style_add_data('cafeterrace-ie8', 'conditional', 'lt IE 9'); // Load the html5 shiv. wp_enqueue_script('cafeterrace-html5', get_template_directory_uri() . '/js/html5.js', array(), '3.7.3'); wp_script_add_data('cafeterrace-html5', 'conditional', 'lt IE 9'); // Load the css3-mediaqueries. wp_enqueue_script('cafeterrace-css3-mediaqueries', get_template_directory_uri() . '/js/css3-mediaqueries.js', array(), '1.0'); wp_script_add_data('cafeterrace-css3-mediaqueries', 'conditional', 'lt IE 9'); // Load the Internet Explorer 7 specific stylesheet. wp_enqueue_style('cafeterrace-ie7', get_template_directory_uri() . '/css/ie7.css', array( 'cafeterrace-style' ), '20160412'); wp_style_add_data('cafeterrace-ie7', 'conditional', 'lt IE 8'); if (is_singular() && comments_open() && get_option('thread_comments')) { wp_enqueue_script('comment-reply'); } if (is_singular() && wp_attachment_is_image()) { wp_enqueue_script('cafeterrace-keyboard-image-navigation', get_template_directory_uri() . '/js/keyboard-image-navigation.js', array( 'jquery' ), '20160412'); } wp_enqueue_script('cafeterrace-script', get_template_directory_uri() . '/js/functions.js', array( 'jquery' ), '20160412', true); wp_localize_script('cafeterrace-script', 'screenReaderText', array( 'expand' => 'expand child menu', 'collapse' => 'collapse child menu' )); } add_action('wp_enqueue_scripts', 'cafeterrace_scripts'); /** * Adds custom classes to the array of body classes. */ function cafeterrace_body_classes($classes) { // Adds a class of custom-background-image to sites with a custom background image. if (get_background_image()) { $classes[] = 'custom-background-image'; } // Adds a class of group-blog to sites with more than 1 published author. if (is_multi_author()) { $classes[] = 'group-blog'; } // Adds a class of no-sidebar to sites without active sidebar. if (!is_active_sidebar('sidebar-1')) { $classes[] = 'no-sidebar'; } // Adds a class of hfeed to non-singular pages. if (!is_singular()) { $classes[] = 'hfeed'; } return $classes; } add_filter('body_class', 'cafeterrace_body_classes'); /** * Converts a HEX value to RGB. */ function cafeterrace_hex2rgb($color) { $color = trim($color, '#'); if (strlen($color) === 3) { $r = hexdec(substr($color, 0, 1) . substr($color, 0, 1)); $g = hexdec(substr($color, 1, 1) . substr($color, 1, 1)); $b = hexdec(substr($color, 2, 1) . substr($color, 2, 1)); } else if (strlen($color) === 6) { $r = hexdec(substr($color, 0, 2)); $g = hexdec(substr($color, 2, 2)); $b = hexdec(substr($color, 4, 2)); } else { return array(); } return array( 'red' => $r, 'green' => $g, 'blue' => $b ); } /** * Custom template tags for this theme. */ require get_template_directory() . '/inc/template-tags.php'; /** * Customizer additions. */ require get_template_directory() . '/inc/customizer.php'; /** * Add custom image sizes attribute to enhance responsive image functionality * for content images */ function cafeterrace_content_image_sizes_attr($sizes, $size) { $width = $size[0]; 840 <= $width && $sizes = '(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px'; if ('page' === get_post_type()) { 840 > $width && $sizes = '(max-width: ' . $width . 'px) 85vw, ' . $width . 'px'; } else { 840 > $width && 600 <= $width && $sizes = '(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px'; 600 > $width && $sizes = '(max-width: ' . $width . 'px) 85vw, ' . $width . 'px'; } return $sizes; } add_filter('wp_calculate_image_sizes', 'cafeterrace_content_image_sizes_attr', 10, 2); /** * Add custom image sizes attribute to enhance responsive image functionality * for post thumbnails */ function cafeterrace_post_thumbnail_sizes_attr($attr, $attachment, $size) { if ('post-thumbnail' === $size) { is_active_sidebar('sidebar-1') && $attr['sizes'] = '(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 60vw, (max-width: 1362px) 62vw, 840px'; !is_active_sidebar('sidebar-1') && $attr['sizes'] = '(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 88vw, 1200px'; } return $attr; } add_filter('wp_get_attachment_image_attributes', 'cafeterrace_post_thumbnail_sizes_attr', 10, 3); /** * Modifies tag cloud widget arguments to have all tags in the widget same font size. */ function cafeterrace_widget_tag_cloud_args($args) { $args['largest'] = 1; $args['smallest'] = 1; $args['unit'] = 'em'; return $args; } add_filter('widget_tag_cloud_args', 'cafeterrace_widget_tag_cloud_args');