1280,
'height' => 416,
'default-image' => get_template_directory_uri() . '/images/header.jpg',
'uploads' => true,
'header-text' => false
);
add_theme_support( 'custom-header', $args );
// Title tag
add_theme_support( 'title-tag' );
// Add nav menu
register_nav_menu( 'primary', 'Primary Menu' );
// Make the theme translation ready
load_theme_textdomain('hemingway', get_template_directory() . '/languages');
$locale = get_locale();
$locale_file = get_template_directory() . "/languages/$locale.php";
if ( is_readable($locale_file) )
require_once($locale_file);
}
// Enqueue Javascript files
function hemingway_load_javascript_files() {
if ( !is_admin() ) {
wp_enqueue_script( 'hemingway_global', get_template_directory_uri().'/js/global.js', array('jquery'), '', true );
if ( is_singular() ) wp_enqueue_script( "comment-reply" );
}
}
add_action( 'wp_enqueue_scripts', 'hemingway_load_javascript_files' );
// Enqueue styles
function hemingway_load_style() {
if ( !is_admin() ) {
wp_enqueue_style( 'hemingway_googleFonts', '//fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic|Raleway:700,400' );
wp_enqueue_style( 'hemingway_style', get_stylesheet_uri() );
}
}
add_action('wp_print_styles', 'hemingway_load_style');
// Add editor styles
function hemingway_add_editor_styles() {
add_editor_style( 'hemingway-editor-style.css' );
$font_url = '//fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic|Raleway:700,400';
add_editor_style( str_replace( ',', '%2C', $font_url ) );
}
add_action( 'init', 'hemingway_add_editor_styles' );
// Add footer widget areas
add_action( 'widgets_init', 'hemingway_sidebar_reg' );
function hemingway_sidebar_reg() {
register_sidebar(array(
'name' => __( 'Footer A', 'hemingway' ),
'id' => 'footer-a',
'description' => __( 'Widgets in this area will be shown in the left column in the footer.', 'hemingway' ),
'before_title' => '
',
'before_widget' => ''
));
register_sidebar(array(
'name' => __( 'Footer B', 'hemingway' ),
'id' => 'footer-b',
'description' => __( 'Widgets in this area will be shown in the middle column in the footer.', 'hemingway' ),
'before_title' => '',
'before_widget' => ''
));
register_sidebar(array(
'name' => __( 'Footer C', 'hemingway' ),
'id' => 'footer-c',
'description' => __( 'Widgets in this area will be shown in the right column in the footer.', 'hemingway' ),
'before_title' => '',
'before_widget' => ''
));
register_sidebar(array(
'name' => __( 'Sidebar', 'hemingway' ),
'id' => 'sidebar',
'description' => __( 'Widgets in this area will be shown in the sidebar.', 'hemingway' ),
'before_title' => '',
'before_widget' => ''
));
}
// Add theme widgets
require_once (get_template_directory() . "/widgets/dribbble-widget.php");
require_once (get_template_directory() . "/widgets/flickr-widget.php");
require_once (get_template_directory() . "/widgets/video-widget.php");
require_once (get_template_directory() . "/widgets/social-widget.php");
// Set content-width
if ( ! isset( $content_width ) ) $content_width = 676;
// Add classes to next_posts_link and previous_posts_link
add_filter('next_posts_link_attributes', 'hemingway_posts_link_attributes_1');
add_filter('previous_posts_link_attributes', 'hemingway_posts_link_attributes_2');
function hemingway_posts_link_attributes_1() {
return 'class="post-nav-older"';
}
function hemingway_posts_link_attributes_2() {
return 'class="post-nav-newer"';
}
// Menu walker adding "has-children" class to menu li's with children menu items
class hemingway_nav_walker extends Walker_Nav_Menu {
function display_element( $element, &$children_elements, $max_depth, $depth=0, $args, &$output ) {
$id_field = $this->db_fields['id'];
if ( !empty( $children_elements[ $element->$id_field ] ) ) {
$element->classes[] = 'has-children';
}
Walker_Nav_Menu::display_element( $element, $children_elements, $max_depth, $depth, $args, $output );
}
}
// Add class to body if the post/page has a featured image
add_action('body_class', 'hemingway_if_featured_image_class' );
function hemingway_if_featured_image_class($classes) {
global $post;
if ( isset( $post ) && has_post_thumbnail() ) {
$classes[] = 'has-featured-image';
}
return $classes;
}
// Custom more-link text
add_filter( 'the_content_more_link', 'hemingway_custom_more_link', 10, 2 );
function hemingway_custom_more_link( $more_link, $more_link_text ) {
return str_replace( $more_link_text, __('Continue reading', 'hemingway'), $more_link );
}
// Style the admin area
function hemingway_custom_colors() {
echo '';
}
add_action('admin_head', 'hemingway_custom_colors');
// hemingway comment function
if ( ! function_exists( 'hemingway_comment' ) ) :
function hemingway_comment( $comment, $args, $depth ) {
$GLOBALS['comment'] = $comment;
switch ( $comment->comment_type ) :
case 'pingback' :
case 'trackback' :
?>
id="comment-">
', '' ); ?>
id="li-comment-">
add_section( 'hemingway_options',
array(
'title' => __( 'Hemingway Options', 'hemingway' ), //Visible title of section
'priority' => 35, //Determines what order this appears in
'capability' => 'edit_theme_options', //Capability needed to tweak
'description' => __('Allows you to customize some settings for Hemingway.', 'hemingway'), //Descriptive tooltip
)
);
$wp_customize->add_section( 'hemingway_logo_section' , array(
'title' => __( 'Logo', 'hemingway' ),
'priority' => 40,
'description' => __('Upload a logo to replace the default site name and description in the header','hemingway'),
) );
//2. Register new settings to the WP database...
$wp_customize->add_setting( 'accent_color', //No need to use a SERIALIZED name, as `theme_mod` settings already live under one db record
array(
'default' => '#1abc9c', //Default setting/value to save
'type' => 'theme_mod', //Is this an 'option' or a 'theme_mod'?
'capability' => 'edit_theme_options', //Optional. Special permissions for accessing this setting.
'transport' => 'postMessage', //What triggers a refresh of the setting? 'refresh' or 'postMessage' (instant)?
'sanitize_callback' => 'sanitize_hex_color'
)
);
// Add logo setting and sanitize it
$wp_customize->add_setting( 'hemingway_logo',
array(
'sanitize_callback' => 'esc_url_raw'
)
);
//3. Finally, we define the control itself (which links a setting to a section and renders the HTML controls)...
$wp_customize->add_control( new WP_Customize_Color_Control( //Instantiate the color control class
$wp_customize, //Pass the $wp_customize object (required)
'hemingway_accent_color', //Set a unique ID for the control
array(
'label' => __( 'Accent Color', 'hemingway' ), //Admin-visible name of the control
'section' => 'colors', //ID of the section this control should render in (can be one of yours, or a WordPress default section)
'settings' => 'accent_color', //Which setting to load and manipulate (serialized is okay)
'priority' => 10, //Determines the order this control appears in for the specified section
)
) );
$wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, 'hemingway_logo', array(
'label' => __( 'Logo', 'hemingway' ),
'section' => 'hemingway_logo_section',
'settings' => 'hemingway_logo',
) ) );
//4. We can also change built-in settings by modifying properties. For instance, let's make some stuff use live preview JS...
$wp_customize->get_setting( 'blogname' )->transport = 'postMessage';
$wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage';
}
public static function header_output() {
?>