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' => '',
'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' => '',
'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' => '',
'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');