'ffffff',
'text' => '333333',
'link' => '0c5390',
'border' => 'f99734',
'url' => 'f99734',
);
}
if ( ! isset( $content_width ) )
$content_width = 500; // pixels
/**
* Implement the Custom Header feature
*/
require( get_template_directory() . '/inc/custom-header.php' );
/**
* Theme Setup
*/
function academica_setup() {
// Custom Background
add_theme_support( 'custom-background' );
// Custom Menus
register_nav_menus( array(
'primary' => __( 'Top Menu', 'academica' ),
'footer' => __( 'Footer Menu', 'academica' ),
) );
// Featured Image
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 120, 80, true ); // Normal post thumbnails
add_image_size( 'academica-featured-thumb', 960, 300, true );
add_image_size( 'academica-gallery', 300, 225, true );
// Post Formats
add_theme_support( 'post-formats', array( 'aside', 'gallery' ) );
// Feed Links
add_theme_support( 'automatic-feed-links' );
// Theme Options
require( get_template_directory() . '/inc/theme-options.php' );
add_theme_support( 'featured-content', array(
'featured_content_filter' => 'academica_get_featured_posts',
'description' => __( 'The featured content section displays on the front page above the first post in the content area.', 'academica' ),
'max_posts' => 10,
'post_types' => array( 'post', 'page' ),
) );
add_theme_support( 'infinite-scroll', array(
'footer_widgets' => 'sidebar-9',
'container' => 'column-content',
'wrapper' => false,
'footer' => 'footer',
) );
load_theme_textdomain( 'academica', get_template_directory() . '/languages' );
}
add_action( 'after_setup_theme', 'academica_setup' );
/**
* Enqueues scripts and styles
*/
function academica_enqueue_scripts() {
wp_enqueue_style( 'academica-style', get_stylesheet_uri() );
wp_enqueue_script( 'academica-menu', get_template_directory_uri() . '/js/menu.js', array( 'jquery' ), '20120921', true );
if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
wp_enqueue_script( 'comment-reply' );
}
}
add_action( 'wp_enqueue_scripts', 'academica_enqueue_scripts' );
/**
* Initializes Widgetized Areas (Sidebars)
*/
function academica_widgets_init() {
register_sidebar( array(
'name' => __( 'Sidebar: Left', 'academica' ),
'id' => 'sidebar-1',
'before_widget' => '
',
'after_widget' => '
',
'before_title' => '',
'after_title' => '
',
) );
register_sidebar( array(
'name' => __( 'Sidebar: Right', 'academica' ),
'id' => 'sidebar-2',
'before_widget' => '',
'after_widget' => '
',
'before_title' => '',
'after_title' => '
',
) );
register_sidebar( array(
'name' => __( 'Sidebar: Homepage (Left)', 'academica' ),
'id' => 'sidebar-6',
'before_widget' => '',
'after_widget' => '
',
'before_title' => '',
'after_title' => '
',
) );
register_sidebar( array(
'name' => __( 'Sidebar: Homepage (Right)', 'academica' ),
'id' => 'sidebar-7',
'before_widget' => '',
'after_widget' => '
',
'before_title' => '',
'after_title' => '
',
) );
register_sidebar( array(
'name' => __( 'Sidebar: Homepage (Middle)', 'academica' ),
'id' => 'sidebar-8',
'before_widget' => '',
'after_widget' => '
',
'before_title' => '',
'after_title' => '
',
) );
register_sidebar( array(
'name' => __( 'Sidebar: Archive Pages', 'academica' ),
'id' => 'sidebar-3',
'before_widget' => '',
'after_widget' => '
',
'before_title' => '',
'after_title' => '
',
) );
register_sidebar( array(
'name' => __( 'Sidebar: Pages (Left)', 'academica' ),
'id' => 'sidebar-4',
'before_widget' => '',
'after_widget' => '
',
'before_title' => '',
'after_title' => '
',
) );
register_sidebar( array(
'name' => __( 'Sidebar: Pages (Right)', 'academica' ),
'id' => 'sidebar-5',
'before_widget' => '',
'after_widget' => '
',
'before_title' => '',
'after_title' => '
',
) );
register_sidebar( array(
'name' => __( 'Footer', 'academica' ),
'id' => 'sidebar-9',
'before_widget' => '',
'after_widget' => '
',
'before_title' => '',
'after_title' => '
',
) );
// Custom Theme Widget
require_once get_template_directory() . '/inc/widgets.php';
}
add_action( 'widgets_init', 'academica_widgets_init' );
/**
* Add some useful default widgets to the Academica sidebar
*/
function academica_default_widgets( $theme ) {
if ( 'Academica' == $theme ) return;
$sidebars = get_option( 'sidebars_widgets' );
if ( empty( $sidebars['sidebar-1'] ) ) {
$pages = get_option( 'widget_pages', array( '_multiwidget' => 1 ) );
$pages[2] = array( 'title' => __( 'Start here', 'academica' ) );
update_option( 'widget_pages', $pages );
$sidebars['sidebar-1'] = array( 0 => 'pages-2' );
}
if ( empty( $sidebars['sidebar-6'] ) ) {
$pages = get_option( 'widget_pages', array( '_multiwidget' => 1 ) );
$pages[3] = array( 'title' => __( 'Start here', 'academica' ) );
update_option( 'widget_pages', $pages );
$sidebars['sidebar-6'] = array( 0 => 'pages-3' );
}
if ( empty( $sidebars['sidebar-2'] ) ) {
$widget = get_option( 'widget_academica-featured-posts-gallery', array( '_multiwidget' => 1 ) );
$widget[2] = array(
'title' => __( 'Latest Posts', 'academica' ),
'category' => 0,
'display' => 'list',
'amount' => 4,
);
update_option( 'widget_academica-featured-posts-gallery', $widget );
$sidebars['sidebar-2'] = array( 0 => 'academica-featured-posts-gallery-2' );
}
if ( empty( $sidebars['sidebar-7'] ) ) {
$widget = get_option( 'widget_academica-featured-posts-gallery', array( '_multiwidget' => 1 ) );
$widget[3] = array(
'title' => __( 'Latest Posts', 'academica' ),
'category' => 0,
'display' => 'list',
'amount' => 4,
);
update_option( 'widget_academica-featured-posts-gallery', $widget );
$sidebars['sidebar-7'] = array( 0 => 'academica-featured-posts-gallery-3' );
}
$sidebars['wp_inactive_widgets'] = array();
$sidebars['array_version'] = 3;
update_option( 'sidebars_widgets', $sidebars );
}
add_action( 'after_switch_theme', 'academica_default_widgets' );
/**
* Creates a nicely formatted and more specific title element text
* for output in head of document, based on current view.
*
* @param string $title Default title text for current view.
* @param string $sep Optional separator.
* @return string Filtered title.
*/
function academica_wp_title( $title, $sep ) {
if ( is_feed() )
return $title;
global $paged, $page;
// Add the site name.
$title .= get_bloginfo( 'name' );
// Add the site description for the home/front page.
$site_description = get_bloginfo( 'description', 'display' );
if ( $site_description && ( is_home() || is_front_page() ) )
$title .= " $sep $site_description";
// Add a page number if necessary.
if ( $paged >= 2 || $page >= 2 )
$title .= " $sep " . sprintf( __( 'Page %s', 'academica' ), max( $paged, $page ) );
return $title;
}
add_filter( 'wp_title', 'academica_wp_title', 10, 2 );
/**
* Get wp_page_menu() to show a home link.
*
* @param array $args
* @return array
*/
function academica_page_menu_args( $args ) {
$args['show_home'] = true;
return $args;
}
add_filter( 'wp_page_menu_args', 'academica_page_menu_args' );
/**
* Sets a custom comment form title
*
* @param array $args
* @return array
*/
function academica_comment_form_defaults( $args ) {
$args['title_reply'] = __( 'Leave a comment', 'academica' );
return $args;
}
add_filter( 'comment_form_defaults', 'academica_comment_form_defaults' );
if ( ! function_exists( 'academica_continue_reading_link' ) ) :
/**
* Returns a "Continue Reading" link for excerpts
*/
function academica_continue_reading_link() {
return ' ' . __( 'Continue reading →', 'academica' ) . '';
}
endif; // academica_continue_reading_link
/**
* Replaces "[...]" (appended to automatically generated excerpts) with an
* ellipsis and academica_continue_reading_link().
*/
function academica_auto_excerpt_more( $more ) {
return ' …' . academica_continue_reading_link();
}
add_filter( 'excerpt_more', 'academica_auto_excerpt_more' );
/**
* Adds a pretty "Continue Reading" link to custom post excerpts.
*/
function academica_custom_excerpt_more( $output ) {
if ( has_excerpt() && ! is_attachment() ) {
$output .= academica_continue_reading_link();
}
return $output;
}
add_filter( 'get_the_excerpt', 'academica_custom_excerpt_more' );
/**
* Adds layout classes to the element
*
* @param array $classes
* @return array
*/
function academica_body_class( $classes ) {
return array_merge( $classes, academica_sidebar_classes() );
}
add_filter( 'body_class', 'academica_body_class' );
/**
* Adjusts content width if there are less than two sidebars
*/
function academica_set_content_width() {
global $content_width;
$classes = academica_sidebar_classes();
if ( in_array( 'column-double', $classes ) || is_page_template( 'template-sidebar-left.php' ) || is_page_template( 'template-sidebar-right.php' ) )
$content_width = 730;
elseif ( in_array( 'column-full', $classes ) || is_page_template( 'template-full-width.php' ) )
$content_width = 960;
}
add_action( 'template_redirect', 'academica_set_content_width' );
/**
* Displays a horizontal rule before the comment form, when there are no
* comments yet
*/
function academica_comment_form_before() {
if ( ! have_comments() )
echo '
';
}
add_action( 'comment_form_before', 'academica_comment_form_before' );
/**
* Appends an infinity symbol as permalink to Aside posts
*
* @param string $content
* @return string
*/
function academica_aside_infinity( $content ) {
if ( has_post_format( 'aside' ) && ! is_singular() ) {
$content .= sprintf( ' ∞', esc_url( get_permalink() ) );
}
return $content;
}
add_filter( 'the_content', 'academica_aside_infinity', 0 ); // run before wpautop
/**
* Returns an array with classes, based on the number of active sidebars and the
* page that is being viewed
*
* @return array
*/
function academica_sidebar_classes() {
$classes = array();
$sidebar_left = $sidebar_right = '';
if ( is_front_page() ) {
$sidebar_left = 'sidebar-6';
$sidebar_right = 'sidebar-7';
} elseif ( is_page() ) {
$sidebar_left = 'sidebar-4';
$sidebar_right = 'sidebar-5';
} else{
$sidebar_left = 'sidebar-1';
$sidebar_right = 'sidebar-2';
}
if ( // Not an achive and no active sidebars
( ! is_archive() && ! is_active_sidebar( $sidebar_left ) && ! is_active_sidebar( $sidebar_right ) )
// Archive or Search and archive sidebar not active
|| ( ( is_archive() || is_search() ) && ! is_active_sidebar( 'sidebar-3' ) )
// Single post view and post set to full-width
|| ( is_singular( 'post' ) && 'column-full' == get_post_meta( get_the_ID(), '_academica_post_layout', true ) ) )
$classes[] = 'column-full';
elseif (
// Just one sidebar active
! is_active_sidebar( $sidebar_left ) || ! is_active_sidebar( $sidebar_right ) || ( is_archive() || is_search() )
// Single post view and post set to only left sidebar
|| ( is_singular( 'post' ) && 'column-right' == get_post_meta( get_the_ID(), '_academica_post_layout', true ) ) )
$classes[] = 'column-double';
if ( // No active right sidebar or Archive or Search view with active sidebar
! is_active_sidebar( $sidebar_right ) || ( ( is_archive() || is_search() ) && is_active_sidebar( 'sidebar-3' ) )
// Single post view and post set to only left sidebar
|| ( is_singular( 'post' ) && 'column-right' == get_post_meta( get_the_ID(), '_academica_post_layout', true ) ) )
$classes[] = 'column-right';
return $classes;
}
if ( ! function_exists( 'academica_entry_meta' ) ) :
/**
* Prints HTML with meta information for current post: categories, tags, permalink, author, and date.
*/
function academica_entry_meta() {
// Translators: used between list items, there is a space after the comma.
$categories_list = get_the_category_list( __( ', ', 'academica' ) );
$date = sprintf( '',
esc_url( get_permalink() ),
esc_attr( get_the_time() ),
esc_attr( get_the_date( 'c' ) ),
esc_html( get_the_date() )
);
$author = sprintf( '%3$s',
esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
esc_attr( sprintf( __( 'View all posts by %s', 'academica' ), get_the_author() ) ),
get_the_author()
);
// Translators: 1 is the author's name, 2 is category, and 3 is the date.
if ( $categories_list ) {
$utility_text = __( 'By %1$s in %2$s on %3$s.', 'academica' );
} else {
$utility_text = __( 'By %1$s on %3$s.', 'academica' );
}
printf(
$utility_text,
$author,
$categories_list,
$date
);
}
endif;
if ( ! function_exists( 'academica_content_nav' ) ) :
/**
* Displays navigation to next/previous pages when applicable.
*/
function academica_content_nav() {
global $wp_query;
if ( $wp_query->max_num_pages > 1 ) : ?>
← Older posts', 'academica' ) ); ?>
→', 'academica' ) ); ?>
ID, '_academica_post_layout', true );
wp_nonce_field( 'academica_post_layout', 'academica_post_layout_nonce' ); ?>
';
$after = '';
echo '' . __( 'Home', 'academica' ) . '' . $sep;
if ( is_category() ) {
global $wp_query;
$cat = get_category( $wp_query->get_queried_object()->term_id );
if ( 0 !== $cat->parent ) {
$cat_parents = get_category_parents( get_category( $cat->parent ), true, $sep );
}
if ( 0 < $cat->parent && ! is_wp_error( $cat_parents ) )
echo $cat_parents;
echo $before . single_cat_title() . $after;
} elseif ( is_day() ) {
echo '' . get_the_time( 'Y' ) . '' . $sep;
echo '' . get_the_time( 'F' ) . '' . $sep;
echo $before . get_the_time( 'd' ) . $after;
} elseif ( is_month() ) {
echo '' . get_the_time( 'Y' ) . '' . $sep;
echo $before . get_the_time( 'F' ) . $after;
} elseif ( is_year() ) {
echo $before . get_the_time( 'Y' ) . $after;
} elseif ( is_single() ) {
if ( is_attachment() ) {
global $post;
if ( $post->post_parent ) {
echo '' . get_the_title( $post->post_parent ) . '' . $sep;
}
echo $before . get_the_title() . $after;
} else {
$cat = get_the_category();
$cat = $cat[0];
$cat_parents = get_category_parents( $cat, true, $sep );
if ( ! is_wp_error( $cat_parents ) )
echo $cat_parents . $before . get_the_title() . $after;
}
} elseif ( is_page() ) {
global $post;
if ( $post->post_parent ) {
$parent_id = $post->post_parent;
$parent_links = array();
while ( $parent_id ) {
$page = get_page( $parent_id );
$parent_links[] = '' . get_the_title( $page->ID ) . '';
$parent_id = $page->post_parent;
}
echo implode( $sep, array_reverse( $parent_links ) ) . $sep;
}
echo $before . get_the_title() . $after;
} elseif ( is_search() ) {
echo $before . sprintf( __( 'Search results for '%s'', 'academica' ), get_search_query() ) . $after;
} elseif ( is_tag() ) {
echo $before . sprintf( __( 'Posts tagged '%s'', 'academica' ), single_tag_title( '', false ) ) . $after;
} elseif ( is_author() ) {
global $author;
echo $before . sprintf( __( 'Articles posted by %s', 'academica' ), get_userdata( $author )->display_name ?? '' ) . $after;
} elseif ( is_404() ) {
echo $before . __( 'Error 404', 'academica' ) . $after;
}
if ( get_query_var( 'paged' ) ) {
echo ' (' . sprintf( __( 'Page %s', 'academica' ), get_query_var( 'paged' ) ) . ')';
}
}
}
endif;