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'; }