tag in the document head, and expect WordPress to
* provide it for us.
*/
add_theme_support( 'title-tag' );
/*
* Enable support for Post Thumbnails on posts and pages.
*
* @link https://developer.wordpress.org/themes/functionality/featured-images-post-thumbnails/
*/
add_theme_support( 'post-thumbnails' );
// This theme uses wp_nav_menu() in one location.
register_nav_menus( array(
'primary' => esc_html__( 'Primary', 'toocheke' ),
) );
/*
* 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',
) );
// Set up the WordPress core custom background feature.
add_theme_support( 'custom-background', apply_filters( 'toocheke_custom_background_args', array(
'default-color' => 'f5f5f5',
'default-image' => '',
) ) );
// Add theme support for selective refresh for widgets.
add_theme_support( 'customize-selective-refresh-widgets' );
/**
* Add support for core custom logo.
*
* @link https://codex.wordpress.org/Theme_Logo
*/
add_theme_support( 'custom-logo', array(
'height' => 60,
'width' => 60,
'flex-width' => true,
'flex-height' => true,
) );
}
endif;
add_action( 'after_setup_theme', 'toocheke_setup' );
/**
* Set the content width in pixels, based on the theme's design and stylesheet.
*
* Priority 0 to make it available to lower priority callbacks.
*
* @global int $content_width
*/
if ( ! function_exists( 'toocheke_content_width' ) ) :
function toocheke_content_width() {
// This variable is intended to be overruled from themes.
// Open WPCS issue: {@link https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/issues/1043}.
// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound
$GLOBALS['content_width'] = apply_filters( 'toocheke_content_width', 1140 );
}
endif;
add_action( 'after_setup_theme', 'toocheke_content_width', 0 );
/**
* Enqueue scripts and styles.
*/
if ( ! function_exists( 'toocheke_scripts' ) ) :
function toocheke_scripts() {
wp_enqueue_style( 'bs-css', get_template_directory_uri() . '/dist/css/bootstrap.min.css' );
wp_enqueue_style( 'bs-smartmenus', get_template_directory_uri() . '/dist/css/jquery.smartmenus.bootstrap-4.css' );
wp_enqueue_style( 'font-awesome', get_template_directory_uri() . '/fonts/font-awesome/css/all.min.css' );
wp_enqueue_style( 'owl-carousel', get_template_directory_uri() . '/dist/css/owl.carousel.min.css' );
wp_enqueue_style( 'owl-theme-default', get_template_directory_uri() . '/dist/css/owl.theme.default.min.css' );
wp_register_style('google-font-hind', '//fonts.googleapis.com/css?family=Hind:regular,medium,bold,bolditalic,semibold', array(), null, 'all');
wp_enqueue_style('google-font-hind');
wp_enqueue_style( 'toocheke-style', get_stylesheet_uri() );
wp_enqueue_script( 'popper', get_template_directory_uri() . '/src/js/popper.min.js', array(), '20190817', true );
wp_enqueue_script( 'owl-carousel', get_template_directory_uri() . '/src/js/owl.carousel.min.js', array(), '20190817', true );
wp_enqueue_script( 'tether', get_template_directory_uri() . '/src/js/tether.min.js', array(), '20190817', true );
wp_enqueue_script( 'bootstrap', get_template_directory_uri() . '/src/js/bootstrap.min.js', array('jquery'), '20190817', true );
wp_enqueue_script( 'skip-link-focus-fix', get_template_directory_uri() . '/src/js/skip-link-focus-fix.js', array(), '20190817', true );
wp_enqueue_script( 'jquery-smartmenus', get_template_directory_uri() . '/src/js/jquery.smartmenus.min.js', array(), '20190817', true );
wp_enqueue_script( 'jquery-smartmenus-bs4', get_template_directory_uri() . '/src/js/jquery.smartmenus.bootstrap-4.min.js', array(), '20190817', true );
wp_enqueue_script( 'clipboard', get_template_directory_uri() . '/src/js/clipboard.min.js', array(), '20190817', true );
wp_enqueue_script( 'toocheke-functions', get_template_directory_uri() . '/src/js/functions.js', array(), '20190817', true );
if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
wp_enqueue_script( 'comment-reply' );
}
}
endif;
add_action( 'wp_enqueue_scripts', 'toocheke_scripts' );
/*
* Register required plugins
*/
// phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound
require_once get_template_directory() . '/inc/class-tgm-plugin-activation.php';
add_action( 'tgmpa_register', 'toocheke_register_required_plugins' );
/*
* Register the required plugins for this theme.
*/
if ( ! function_exists( 'toocheke_register_required_plugins' ) ) :
function toocheke_register_required_plugins() {
/*
* Array of plugin arrays. Required keys are name and slug.
* If the source is NOT from the .org repo, then source is also required.
*/
$plugins = array(
// Include the Toocheke plugin bundled with a theme.
array(
'name' => 'Toocheke Companion',
'slug' => 'toocheke-companion',
//'source' => 'https://downloads.wordpress.org/plugin/toocheke-companion.zip', // The plugin source.
'required' => false, // If false, the plugin is only 'recommended' instead of required.
'version' => '', // E.g. 1.0.0. If set, the active plugin must be this version or higher. If the plugin version is higher than the plugin version installed, the user will be notified to update the plugin.
'external_url' => '', // If set, overrides default API URL and points to an external URL.
'is_callable' => '', // If set, this callable will be be checked for availability to determine if a plugin is active.
),
);
/*
* Array of configuration settings. Amend each line as needed.
*
*/
$config = array(
'id' => 'toocheke', // Unique ID for hashing notices for multiple instances of TGMPA.
'default_path' => '', // Default absolute path to bundled plugins.
'menu' => 'toocheke-install-plugins', // Menu slug.
'has_notices' => true, // Show admin notices or not.
'dismissable' => true, // If false, a user cannot dismiss the nag message.
'dismiss_msg' => false, // If 'dismissable' is false, this message will be output at top of nag.
'is_automatic' => false, // Automatically activate plugins after installation or not.
'message' => '', // Message to output right before the plugins table.
);
tgmpa( $plugins, $config );
}
endif;
//Comic Carousel Starts here
/**
* Comic Carousel
*/
if ( ! function_exists( 'toocheke_load_comic_carousel' ) ) :
function toocheke_load_comic_carousel() {
get_template_part( 'template-parts/content', 'comiccarousel' );
}
endif;
//Comic Carousel Ends here
/* ========================================================================================================================
Comments
======================================================================================================================== */
/**
* Post Publish Date.
*/
function toocheke_get_day_name($timestamp) {
$date = date('M d, Y', $timestamp);
if($date == date('M d, Y')) {
$date = 'Today';
}
else if($date == date('M d, Y',strtotime("-1 days"))) {
$date = 'Yesterday';
}
return $date;
}
/**
* Comic Layout
*/
// Update CSS within in Admin
function toocheke_render_comic_layout_styles() {
wp_register_style( 'toocheke-custom-style', false );
wp_enqueue_style( 'toocheke-custom-style' );
$image_width = '100';
$layout = get_theme_mod( 'comic_layout_setting' , 'default');
if ( 'default' === $layout ) {
return;
}
switch ($layout) {
case 'two':
$image_width = '49';
break;
case 'three':
$image_width = '33.333333333';
break;
case 'four':
$image_width = '25';
break;
default:
$image_width = '100';
}
$custom_css = "
@media (min-width: 990px){
#comic p {
font-size: 0;
}
#comic p img {
max-width: {$image_width}% !important;
width: {$image_width}% !important;
height: auto !important;
}}";
wp_add_inline_style( 'toocheke-custom-style', $custom_css );
}
add_action( 'wp_enqueue_scripts', 'toocheke_render_comic_layout_styles' );
/**
* Get Comic Link
*/
function toocheke_get_comic_link($order, $font){
//global $post;
$current_permalink = esc_url(get_permalink());
$placeholder = $GLOBALS['post'];
$args = array(
'post_type' => 'comics',
'numberposts' => 1,
'offset' => 0,
'orderby' => 'post_date',
'order' => $order,
'post_status' => 'publish' );
$sorted_posts = get_posts( $args );
$permalink = esc_url(get_permalink($sorted_posts[0]->ID));
if ($permalink == $current_permalink)
return;
$title = esc_attr($sorted_posts[0]->post_title);
$post = $placeholder;
$font = esc_attr($font);
$latest_link_html = '';
return $latest_link_html;
}
/**
* Get Comic Number
*/
function toocheke_get_comic_number(){
global $post;
$comic_number = "#" . get_post_meta( $post->ID, 'incr_number', true );
return wp_kses_data($comic_number);
}
/**
* Generate Comic Link
*/
function toocheke_get_random_comic() {
$random_args = array( 'post_type' => 'comics', 'posts_per_page' => 1, 'orderby' => 'rand' );
$random_comics_query = new WP_Query( $random_args );
while ( $random_comics_query->have_posts() ) : $random_comics_query->the_post();
$link = '';
endwhile;
wp_reset_postdata();
return $link;
}
/**
* Get Random Comic Link
*/
function toocheke_random_comic_url( $title='Random Post' ) {
// Get the URL of a random post and format it as a clickable link
$posts = get_posts('post_type=comics&orderby=rand&numberposts=1');
foreach($posts as $post) {
$link = esc_url( get_permalink($post) );
}
// Return the link to wherever this function is called
return $link;
}
/**
* Redirect to Random Comic
*/
function toocheke_redirect_random_comic() {
$rand_args = array(
'posts_per_page' => 1,
'post_type' => 'comics',
'orderby' => 'rand',
'post_status' => 'publish'
);
$random_comic = get_posts( $rand_args );
if (is_array($random_comic)) {
$random_comic = reset($random_comic);
wp_redirect( esc_url(get_permalink( $random_comic->ID )) );
}
exit;
}
if ( isset( $_GET['random'] ) )
add_action( 'template_redirect', 'toocheke_redirect_random_comic' );
/**
* Implement the Custom Header feature.
*/
// phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound
require get_template_directory() . '/inc/custom-header.php';
/**
* Custom template tags for this theme.
*/
// phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound
require get_template_directory() . '/inc/template-tags.php';
/**
* Customizer additions.
*/
// phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound
require get_template_directory() . '/inc/customizer.php';
/**
* Widgets File.
*/
// phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound
require get_template_directory() . '/inc/widgets.php';
/**
* Boostrap Navwalker File.
*/
// phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound
require_once get_template_directory() . '/inc/wp-bootstrap-navwalker.php';
/**
* Boostrap Comment Walker File.
*/
// phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound
require get_template_directory() . '/inc/bootstrap-comment-walker.php';
/**
* Load Jetpack compatibility file.
*/
if ( defined( 'JETPACK__VERSION' ) ) {
// phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound
require get_template_directory() . '/inc/jetpack.php';
}