'f0f0f0', 'border' => 'cccccc', 'text' => '555555', 'shadow' => 'ffffff', ); if ( ! function_exists( 'sempress_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 post thumbnails. * * To override sempress_setup() in a child theme, add your own sempress_setup to your child theme's * functions.php file. */ function sempress_setup() { global $themecolors; /** * Make theme available for translation * Translations can be filed in the /languages/ directory * If you're building a theme based on sempress, use a find and replace * to change 'sempress' to the name of your theme in all the template files */ load_theme_textdomain( 'sempress', get_template_directory() . '/languages' ); // Add default posts and comments RSS feed links to head add_theme_support( 'automatic-feed-links' ); // This theme uses post thumbnails add_theme_support( 'post-thumbnails' ); set_post_thumbnail_size( 668, 9999 ); // Unlimited height, soft crop // Register custom image size for image post formats. add_image_size( 'sempress-image-post', 668, 1288 ); // Switches default core markup for search form to output valid HTML5. add_theme_support( 'html5', array( 'search-form', 'comment-form', 'comment-list', 'gallery', 'caption', 'widgets' ) ); // This theme uses wp_nav_menu() in one location. register_nav_menus( array( 'primary' => __( 'Primary Menu', 'sempress' ), ) ); // Add support for the Aside, Gallery Post Formats... add_theme_support( 'post-formats', array( 'aside', 'gallery', 'link', 'status', 'image', 'video', 'audio', 'quote' ) ); /** * This theme supports jetpacks "infinite-scroll" * * @see http://jetpack.me/support/infinite-scroll/ */ add_theme_support( 'infinite-scroll', array( 'container' => 'content', 'footer' => 'colophon' ) ); /** * This theme supports the "title-tag" feature * * @see https://make.wordpress.org/core/2014/10/29/title-tags-in-4-1/ */ add_theme_support( 'title-tag' ); /** * Draw attention to supported WebSemantics */ add_theme_support( 'microformats2' ); add_theme_support( 'microformats' ); add_theme_support( 'microdata' ); if ( get_theme_mod( 'sempress_columns', 'multi' ) === 'single' ) { $width = 670; } else { $width = 950; } // This theme supports a custom header $custom_header_args = array( 'width' => $width, 'height' => 200, 'header-text' => false, ); add_theme_support( 'custom-header', $custom_header_args ); // custom logo support add_theme_support( 'custom-logo', array( 'height' => 50, 'width' => 50, ) ); // This theme supports custom backgrounds $custom_background_args = array( 'default-color' => $themecolors['bg'], 'default-image' => get_template_directory_uri() . '/img/noise.png', ); add_theme_support( 'custom-background', $custom_background_args ); // Nicer WYSIWYG editor add_editor_style( 'css/editor-style.css' ); } endif; // sempress_setup /** * Tell WordPress to run sempress_setup() when the 'after_setup_theme' hook is run. */ add_action( 'after_setup_theme', 'sempress_setup' ); /** * Adds "custom-color" support * * @since 1.3.0 */ function sempress_customize_register( $wp_customize ) { global $themecolors; $wp_customize->add_section( 'sempress_settings_section', array( 'title' => __( 'SemPress Settings', 'sempress' ), 'description' => __( 'Change the look and feel of SemPress.', 'sempress' ), //Descriptive tooltip 'priority' => 35, ) ); $wp_customize->add_setting( 'sempress_textcolor' , array( 'default' => '#' . $themecolors['text'], 'transport' => 'refresh', 'sanitize_callback' => 'sanitize_hex_color', ) ); $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'sempress_textcolor', array( 'label' => __( 'Text Color', 'sempress' ), 'section' => 'colors', 'settings' => 'sempress_textcolor', ) ) ); $wp_customize->add_setting( 'sempress_shadowcolor' , array( 'default' => '#' . $themecolors['shadow'], 'transport' => 'refresh', 'sanitize_callback' => 'sanitize_hex_color', ) ); $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'sempress_shadowcolor', array( 'label' => __( 'Shadow Color', 'sempress' ), 'section' => 'colors', 'settings' => 'sempress_shadowcolor', ) ) ); $wp_customize->add_setting( 'sempress_bordercolor' , array( 'default' => '#' . $themecolors['border'], 'transport' => 'refresh', 'sanitize_callback' => 'sanitize_hex_color', ) ); $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'sempress_bordercolor', array( 'label' => __( 'Border Color', 'sempress' ), 'section' => 'colors', 'settings' => 'sempress_bordercolor', ) ) ); $wp_customize->add_setting( 'sempress_columns' , array( 'default' => 'multi', 'transport' => 'refresh', 'sanitize_callback' => 'sanitize_key', ) ); $wp_customize->add_control( 'sempress_columns', array( 'label' => __( 'Page Structure', 'sempress' ), 'section' => 'sempress_settings_section', 'settings' => 'sempress_columns', 'type' => 'select', 'choices' => array( 'single' => __( 'Single Column (Sidebar at the bottom)', 'sempress' ), 'multi' => __( 'Multi Column (Sidebar at the right)', 'sempress' ), ), ) ); } add_action( 'customize_register', 'sempress_customize_register' ); /** * Adds the custom CSS to the theme-header * * @since 1.3.0 */ function sempress_customize_css() { global $themecolors; ?> __( 'Sidebar 1', 'sempress' ), 'id' => 'sidebar-1', 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

', ) ); register_sidebar( array( 'name' => __( 'Sidebar 2', 'sempress' ), 'id' => 'sidebar-2', 'description' => __( 'An optional second sidebar area', 'sempress' ), 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

', ) ); } add_action( 'widgets_init', 'sempress_widgets_init' ); if ( ! function_exists( 'sempress_enqueue_scripts' ) ) : /** * Enqueue theme scripts * * @uses wp_enqueue_scripts() To enqueue scripts * * @since SemPress 1.1.1 */ function sempress_enqueue_scripts() { /* * Adds JavaScript to pages with the comment form to support sites with * threaded comments (when in use). */ if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { wp_enqueue_script( 'comment-reply' ); } // Load the html5 shiv. wp_enqueue_script( 'html5', get_template_directory_uri() . '/js/html5shiv.min.js', array(), '3.7.3' ); wp_script_add_data( 'html5', 'conditional', 'lt IE 9' ); wp_enqueue_script( 'sempress-script', get_template_directory_uri() . '/js/functions.js', array( 'jquery' ), '1.5.1', true ); // Loads our main stylesheet. wp_enqueue_style( 'sempress-style', get_stylesheet_uri() ); } endif; add_action( 'wp_enqueue_scripts', 'sempress_enqueue_scripts' ); if ( ! function_exists( 'sempress_content_nav' ) ) : /** * Display navigation to next/previous pages when applicable * * @since SemPress 1.0.0 */ function sempress_content_nav( $nav_id ) { global $wp_query; ?> comment_type ) : case 'pingback' : case 'trackback' : case 'webmention' : ?>
  • id="li-comment-">
  • id="li-comment-">
    says:', 'sempress' ), sprintf( '%s', get_comment_author_link() ) ); ?>
    comment_approved ) : ?>
    $depth, 'max_depth' => $args['max_depth'] ) ) ); ?>
    Posted on
    by %5$s
    ', 'sempress' ), esc_url( get_permalink() ), esc_attr( get_the_time() ), esc_attr( get_the_date( 'c' ) ), esc_html( get_the_date() ), get_avatar( get_the_author_meta( 'ID' ), 40 ), esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ), esc_attr( sprintf( __( 'View all posts by %s', 'sempress' ), get_the_author() ) ), esc_html( get_the_author() ) ); } endif; /** * Adds post-thumbnail support :) * * @since SemPress 1.0.0 */ function sempress_the_post_thumbnail( $before = '', $after = '' ) { if ( '' != get_the_post_thumbnail() ) { $image = wp_get_attachment_image_src( get_post_thumbnail_id(), 'post-thumbnail' ); $class = ''; if ( $image['1'] < '300' ) { $class = 'alignright'; } echo $before; the_post_thumbnail( 'post-thumbnail', array( 'class' => $class . ' photo u-photo', 'itemprop' => 'image' ) ); echo $after; } } /** * Adjusts content_width value for full-width and single image attachment * templates, and when there are no active widgets in the sidebar. * * @since SemPress 1.3.0 */ function sempress_content_width() { if ( is_page_template( 'full-width-page.php' ) || is_attachment() || ! is_active_sidebar( 'sidebar-1' ) ) { global $content_width; $content_width = 880; } /* if ( has_post_format( 'image' ) || has_post_format( 'video' ) || is_attachment() ) { global $content_width; $content_width = 668; } */ } add_action( 'template_redirect', 'sempress_content_width' ); /** * replace post-title with id when empty * * @since SemPress 1.4.6 * * @param string $title the post-title * @param int $id the post-id * @return string the filtered post-title */ function sempress_the_title( $title, $id ) { // if title is empty, return the id if ( empty( $title ) ) { return "#$id"; } return $title; } add_filter( 'the_title', 'sempress_the_title', 10, 2 ); /** * Filter in a link to a content ID attribute for the next/previous image links on * image attachment pages * * @param string $url * @return string */ function sempress_enhanced_image_navigation( $url ) { if ( is_admin() ) { return $url; } global $post, $wp_rewrite; $id = (int) $post->ID; $object = get_post( $id ); if ( wp_attachment_is_image( $post->ID ) && ( $wp_rewrite->using_permalinks() && ( $object->post_parent > 0 ) && ( $object->post_parent !== $id ) ) ) { $url = $url . '#main'; } return $url; } add_filter( 'attachment_link', 'sempress_enhanced_image_navigation' ); /** * Add a pingback url auto-discovery header for singularly identifiable articles. */ function sempress_pingback_header() { if ( is_singular() && pings_open() ) { printf( '' . PHP_EOL, get_bloginfo( 'pingback_url' ) ); } } add_action( 'wp_head', 'sempress_pingback_header' ); /** * Display the id for the post div. * * @param string $id. */ function sempress_post_id( $post_id = null ) { if ( $post_id ) { echo 'id="' . $post_id . '"'; } else { echo 'id="' . sempress_get_post_id() . '"'; } } /** * Retrieve the id for the post div. * * @return string The post-id. */ function sempress_get_post_id() { $post_id = 'post-' . get_the_ID(); return apply_filters( 'sempress_post_id', $post_id, get_the_ID() ); } /** * Adds some awesome websemantics like microformats(2) and microdata */ require( get_template_directory() . '/inc/semantics.php' ); /** * Adds back compat handling for older WP versions */ require( get_template_directory() . '/inc/compat.php' ); /** * This theme was built with PHP, Semantic HTML, CSS, love, and SemPress. */