• Hi, I am having a serious problem with the thumbnails on my website.

    1. I noticed that there are many duplicate image files on my wp-content/uploads/year wise folders.. I Believe the reason for this problem is due to image sizes in media settings.. later on i applied the below settings.

    https://prntscr.com/cacnx2
    2. There are plenty of duplicate image files in uploads directory so i deleted them by just leaving the original image. Now, My Entire site thumbnails are missing.

    My Site : https://www.filmytime.com

    3. I tried Regenerate Thumbnails plugin but it’s again creating several duplicate images with different sizes in 1 : 10 ratio…so can you please help me out ?

    How can i fix this thumbnail issue on my site ? it looks ugly ?

    Do you have any other option ? or else can you please tell the thumbnail image sizes for this theme ? i will leave them and delete the remaining ones ?

    I will be waiting for your reply… please reply as soon as possible.

Viewing 5 replies - 1 through 5 (of 5 total)
  • Moderator Steven Stern (sterndata)

    (@sterndata)

    Volunteer Forum Moderator

    these are the defaults:

    the_post_thumbnail('thumbnail');       // Thumbnail (default 150px x 150px max)
    the_post_thumbnail('medium');          // Medium resolution (default 300px x 300px max)
    the_post_thumbnail('large');           // Large resolution (default 640px x 640px max)
    the_post_thumbnail('full');            // Original image resolution (unmodified)

    Plus there’s a “medium large”:

    A new default intermediate size, medium_large, has been added to better take advantage of responsive image support. The new size is 768px wide by default, with no height limit, and can be used like any other size available in WordPress. As it is a standard size, it will only be generated when new images are uploaded or sizes are regenerated with third party plugins.

    The medium_large size is not included in the UI when selecting an image to insert in posts, nor are we including UI to change the image size from the media settings page. However, developers can modify the width of this new size using the update_option() function, similar to any other default image size

    Your theme may add other sizes via functions.php

    Thread Starter Sravan92

    (@sravan92)

    <?php
    
    /**
     * Motive Theme!
     *
     * This is the typical theme initialization file. Sets up the Bunyad Framework
     * and the theme functionality.
     *
     * ----
     *
     * Code Locations:
     *
     *  /          -  WordPress default template files
     *  lib/       -  Contains the core Bunyad framework files
     *  inc/       -  Theme related functionality
     *  admin/     -  Admin-only content
     *  partials/  -  Template parts (partials) called via get_template_part()
     *
     * Note: If you're looking to edit HTML, look for default WordPress templates in
     * top-level / and in partials/ folder.
     *
     */
    
    // already initialized? some buggy plugin call?
    if (class_exists('Bunyad_Core')) {
    	return;
    }
    
    // initialize Framework
    require_once get_template_directory() . '/lib/bunyad.php';
    
    // fire up the theme - make available in Bunyad::get('motive')
    Bunyad::register('motive', array(
    	'class' => 'Bunyad_Theme_Motive',
    	'init' => true
    ));
    
    /**
     * Main Framework Configuration
     */
    $bunyad_core = Bunyad::core()->init(apply_filters('bunyad_init_config', array(
    
    	'theme_name' => 'motive',
    	'meta_prefix' => '_bunyad',
    	'theme_version' => '1.2.5',
    
    	// widgets enabled
    	'widgets'    => array('about', 'latest-posts', 'popular-posts', 'tabbed-recent', 'flickr', 'ads', 'latest-reviews', 'comments', 'twitter'),
    	'post_formats' => array('gallery', 'image', 'video', 'audio'),
    
    	'shortcode_config' => array(
    		'font_icons' => true,
    		'social_font' => true,
    		'button_colors' => array(),
    	),
    
    	// enabled metaboxes and prefs - id is prefixed with _bunyad_ in init() method of lib/admin/meta-boxes.php
    	'meta_boxes' => array(
    		array('id' => 'post-options', 'title' => __('Post Options', 'bunyad'), 'priority' => 'high', 'page' => array('post')),
    		array('id' => 'post-reviews', 'title' => __('Review', 'bunyad'), 'priority' => 'high', 'page' => array('post')),
    		array('id' => 'page-options', 'title' => __('Page Options', 'bunyad'), 'priority' => 'high', 'page' => array('page')),
    	)
    )));
    
    /**
     * Motive Theme!
     *
     * Anything theme-specific that won't go into the core framework goes here. Rest goes into lib/core.php
     */
    class Bunyad_Theme_Motive
    {
    
    	public function __construct()
    	{
    		// setup plugins before init
    		$this->setup_plugins();
    
    		// init skins
    		add_action('bunyad_core_post_init', array($this, 'init_skins'));
    
    		// perform the after_setup_theme
    		add_action('after_setup_theme', array($this, 'theme_init'), 12);
    
    		add_action('after_setup_theme', array($this, 'init_shortcodes'), 5);
    		add_action('after_setup_theme', array($this, 'init_page_builder'), 5);
    
    		// ready up the custom css handlers
    		include locate_template('inc/custom-css.php');
    	}
    
    	/**
    	 * Setup any skin data and configs
    	 */
    	public function init_skins()
    	{
    		// include our skins constructs
    		if (Bunyad::options()->predefined_style) {
    			include locate_template('inc/skins/' . sanitize_file_name(Bunyad::options()->predefined_style) .'.php');
    		}
    	}
    
    	/**
    	 * Setup enque data and actions
    	 */
    	public function theme_init()
    	{
    		include locate_template('inc/widgets-output.php');
    
    		/*
    		 * Enqueue assets (css, js)
    		 *
    		 * Register Custom CSS at a lower priority for CSS specificity
    		 */
    		add_action('wp_enqueue_scripts', array($this, 'register_assets'), 11);
    
    		/*
    		 * Featured images settings
    		 */
    		set_post_thumbnail_size(72, 60, true); // used in many more aspect ratios
    
    		add_image_size('motive-grid-slider', 603, 362, true); // main slider image in grid slider - also used for main higlights
    		add_image_size('motive-image-block', 333, 200, true); // gallery sizes used in sidebars and so on - also used in slider at 301x181
    
    		add_image_size('motive-alt-slider', 740, 357, true); // alt slider image size
    		add_image_size('motive-slider-full', 1206, 410, true); // alt slider full-width image size
    		add_image_size('motive-slider-alt-block', 352, 169, true); // alt slider right slide blocks image
    
    		add_image_size('motive-main-block', 252, 167, true); // main home block - used in 232x154 too
    		add_image_size('motive-highlight-block', 359, 201, true); // also used in highlights blocks at 348x195
    
    		// i18n
    		load_theme_textdomain('bunyad', get_template_directory() . '/languages');
    
    		// setup navigation menu with "main" key
    		register_nav_menu('motive-main', __('Main Navigation', 'bunyad'));
    
    		// fix html5 support
    		add_theme_support('html5', array('search', 'gallery', 'caption'));
    
    		/*
    		 * Category meta
    		 */
    		add_action('category_edit_form_fields', array($this, 'edit_category_meta'), 10, 2);
    		add_action('category_add_form_fields', array($this, 'edit_category_meta'), 10, 2);
    
    		add_action('edited_category', array($this, 'save_category_meta'), 10, 2);
    		add_action('create_category', array($this, 'save_category_meta'), 10, 2);
    
    		// user fields
    		add_filter('user_contactmethods', array($this, 'add_profile_fields'));
    
    		/*
    		 * Reviews Support
    		 */
    		add_filter('the_content', array($this, 'add_review'));
    		add_filter('bunyad_review_main_snippet', array($this, 'add_review_snippet'));
    
    		// 3.5 has content_width removed, add it for oebmed
    		global $content_width;
    
    		if (!isset($content_width)) {
    			$content_width = 740;
    		}
    
    		/*
    		 * Register Sidebars
    		 */
    		add_action('widgets_init', array($this, 'register_sidebars'));
    
    		/*
    		 * Mega menu support
    		 */
    		add_filter('bunyad_custom_menu_fields', array($this, 'custom_menu_fields'));
    		add_filter('bunyad_mega_menu_end_lvl', array($this, 'attach_mega_menu'));
    
    		// menu sticky logo support
    		add_filter('wp_nav_menu_items', array($this, 'add_navigation_logo'), 10, 2);
    
    		/*
    		 * Posts related filter
    		 */
    
    		// custom font icons for post formats
    		add_action('bunyad_image_overlay', array($this, 'add_image_overlay'));
    
    		// video format auto-embed
    		add_filter('bunyad_featured_video', array($this, 'video_auto_embed'));
    
    		// add custom category per_page limits, if any
    		add_filter('pre_get_posts', array($this, 'add_category_limits'));
    
    		// remove hentry microformat, we use schema.org/Article
    		add_action('post_class', array($this, 'fix_post_class'));
    
    		// ajax post content slideshow - add wrapper
    		add_filter('the_content', array($this, 'add_post_slideshow_wrap'));
    
    		// add image sizes to the editor
    		if (is_admin()) {
    			add_filter('image_size_names_choose', array($this, 'add_image_sizes_editor'));
    		}
    
    		// limit search to posts?
    		if (Bunyad::options()->search_posts_only) {
    			add_filter('pre_get_posts', array($this, 'limit_search'));
    		}
    
    		/*
    		 * Prevent duplicate posts
    		 */
    		if (Bunyad::options()->no_home_duplicates) {
    
    			// add to removal list on each loop
    			add_filter('loop_end', array($this, 'update_duplicate_posts'));
    
    			// exclude on blocks
    			add_filter('bunyad_block_query_args', array($this, 'add_duplicate_exclude'));
    
    			// exclude on widgets
    			foreach (array('tabbed_recent', 'popular_posts', 'latest_posts') as $widget) {
    				add_filter('bunyad_widget_' . $widget . '_query_args', array($this, 'add_duplicate_exclude'));
    			}
    		}
    
    		// add the orig_offset for offset support in blocks
    		add_filter('bunyad_block_query_args', array(Bunyad::posts(), 'add_query_offset'), 10, 1);
    
    		// add "more" text for excerpts
    		Bunyad::posts()->more_html = '<span class="read-more"><a href="%s" title="%s">'. __('More', 'bunyad') .'</a></span>';
    
    		// set dynamic widget columns for footer
    		add_filter('dynamic_sidebar_params', array($this, 'set_footer_columns'));
    
    		// add comments snippet
    		add_action('bunyad_comments_snippet', array($this, 'comments_snippet'));
    
    		// add listing meta
    		add_action('bunyad_listing_meta', array($this, 'listing_meta'));
    
    		// breadcrumbs
    		add_filter('bunyad_breadcrumbs_defaults', array($this, 'breadcrumbs'));
    
    		// theme update hook
    		add_action('bunyad_theme_version_change', array($this, 'theme_update'));
    
    		// setup the init hook
    		add_action('init', array($this, 'init'));
    	}
    
    	/**
    	 * Action callback: Setup that needs to be done at init hook
    	 */
    	public function init()
    	{
    		// init reviews
    		Bunyad::reviews();
    
    		// setup theme-specific shortcodes and blocks
    		$this->setup_shortcodes();
    
    		// load importer lib if needed
    		if (is_admin()) {
    			include_once locate_template('inc/import.php');
    		}
    	}
    
    	/**
    	 * Action callback: Extend Bunyad Shortcodes
    	 */
    	public function init_shortcodes()
    	{
    		if (!class_exists('Bunyad_ShortCodes')) {
    			return;
    		}
    
    		// remove original
    		$bunyad_sc = Bunyad_ShortCodes::getInstance();
    		remove_action('after_setup_theme', array($bunyad_sc, 'setup'));
    
    		// add extended class
    		include_once locate_template('inc/shortcodes.php');
    		add_action('after_setup_theme', array(Bunyad::get('motive_codes'), 'setup'), 10);
    	}	
    
    	/**
    	 * Action callback: Initialize Visaul Composer page builder
    	 */
    	public function init_page_builder()
    	{
    		// plugin is not active?
    		if (!class_exists('Vc_Manager')) {
    			return;
    		}
    
    		include locate_template('inc/visual-composer.php');
    	}
    
    	/**
    	 * Register and enqueue theme CSS and JS files
    	 */
    	public function register_assets()
    	{
    		if (!is_admin()) {
    
    			// add jquery, theme js
    			wp_enqueue_script('jquery');
    			wp_enqueue_script('bunyad-theme', get_template_directory_uri() . '/js/bunyad-theme.js', array('jquery'), false, true);
    
    			/*
    			 * Add CSS styles
    			 */
    
    			// add google fonts
    			$style = $this->get_style(Bunyad::options()->predefined_style);
    			$args  = $style['font_args'];
    
    			if (!Bunyad::options()->image_logo) {
    				$args['family'] .= '|Roboto:900';
    			}
    
    			if (Bunyad::options()->font_charset) {
    				$args['subset'] = implode(',', array_keys(array_filter(Bunyad::options()->font_charset)));
    			}
    
    			wp_enqueue_style('motive-fonts', add_query_arg(urlencode_deep($args), (is_ssl() ? 'https' : 'http') . '://fonts.googleapis.com/css'), array(), null);
    
    			// add core css
    			if (is_rtl()) {
    				wp_enqueue_style('motive-core', get_stylesheet_directory_uri() . '/css/rtl.css', array(), Bunyad::options()->get_config('theme_version'));
    			}
    			else {
    				// use stylesheet_uri so that child theme's style.css is loaded
    				wp_enqueue_style('motive-core', get_stylesheet_uri(), array(), Bunyad::options()->get_config('theme_version'));
    			}
    
    			// add lightbox to pages and single posts
    			if (Bunyad::options()->enable_lightbox && (is_single() OR is_page())) {
    				wp_enqueue_script('motive-lightbox', get_template_directory_uri() . '/js/lightbox.js', array(), false, true);
    				wp_enqueue_style('motive-lightbox', get_template_directory_uri() . '/css/lightbox.css', array(), Bunyad::options()->get_config('theme_version'));
    			}
    
    			// add web fonts
    			wp_enqueue_style('motive-font-awesome', get_template_directory_uri() . '/css/fontawesome/css/font-awesome.min.css', array(), Bunyad::options()->get_config('theme_version'));
    
    			// predefined style
    			if (!empty($style['css'])) {
    				wp_enqueue_style('motive-skin', get_template_directory_uri() . '/css/' . $style['css'] . '.css', array(), Bunyad::options()->get_config('theme_version'));
    			}
    
    			// responsive
    			if (!Bunyad::options()->no_responsive) {
    				wp_enqueue_style('motive-responsive', get_template_directory_uri() . '/css/'. (is_rtl() ? 'rtl-' : '') . 'responsive.css', array(), Bunyad::options()->get_config('theme_version'));
    
    				// add responsive overrides from skin, if any
    				if (!empty($style['responsive-css'])) {
    					wp_enqueue_style('motive-responsive-skin', get_template_directory_uri() . '/css/'. $style['responsive-css'] . '.css', array(), Bunyad::options()->get_config('theme_version'));
    				}
    			}
    
    			// owl carousel to the footer
    			wp_enqueue_script('motive-owl-carousel', get_template_directory_uri() . '/js/owl.carousel.min.js', array('jquery'), false, true);
    		}
    	}
    
    	/**
    	 * Setup the sidebars
    	 */
    	public function register_sidebars()
    	{
    
    		// register dynamic sidebar
    		register_sidebar(array(
    			'name' => __('Main Sidebar', 'bunyad'),
    			'id'   => 'motive-primary-sidebar',
    			'description' => __('Widgets in this area will be shown in the default sidebar.', 'bunyad'),
    			'before_title' => '<h5 class="widget-title section-head cf main-color"><span class="title">',
    			'after_title'  => '</span></h5>',
    		));
    
    		// register dynamic sidebar
    		register_sidebar(array(
    			'name' => __('Top Bar (Above Header)', 'bunyad'),
    			'id'   => 'motive-top-bar',
    			'description' => __('Please place only a single widget. Preferably a text widget.', 'bunyad'),
    			'before_title' => '',
    			'after_title'  => '',
    			'before_widget' => '',
    			'after_widget'  => ''
    
    		));
    
    		// register dynamic sidebar
    		register_sidebar(array(
    			'name' => __('Header Right', 'bunyad'),
    			'id'   => 'motive-header-right',
    			'description' => __('Please place only a single widget. Preferably text-widget. Not available on centered header.', 'bunyad'),
    			'before_title' => '',
    			'after_title'  => '',
    			'before_widget' => '',
    			'after_widget'  => ''
    
    		));
    
    		// register dynamic sidebar
    		register_sidebar(array(
    			'name' => __('Footer - Top', 'bunyad'),
    			'id'   => 'motive-main-footer',
    			'description' => __('Widgets in this area will be shown in the footer. Max 3 widgets or based on custom settings.', 'bunyad'),
    			'before_title' => '<h3 class="widget-title">',
    			'after_title'  => '</h3>',
    			'before_widget' => '<li class="widget column %2$s">',
    			'after_widget' => '</li>'
    		));
    
    		// register dynamic sidebar
    		register_sidebar(array(
    			'name' => __('Footer - Middle', 'bunyad'),
    			'id'   => 'motive-mid-footer',
    			'description' => __('Widgets in this area will be shown below the top footer. Max 3 widgets.', 'bunyad'),
    			'before_title' => '<h3 class="widget-title">',
    			'after_title'  => '</h3>',
    			'before_widget' => '<li class="widget column %2$s">',
    			'after_widget' => '</li>'
    		));
    
    		// register dynamic sidebar
    		register_sidebar(array(
    			'name' => __('Footer - Lower', 'bunyad'),
    			'id'   => 'motive-lower-footer',
    			'description' => __('Prefer simple text widgets here.', 'bunyad'),
    			'before_title' => '',
    			'after_title'  => '',
    			'before_widget' => '',
    			'after_widget'  => ''
    		));
    
    		// "Custom Sidebars" by WPMUDEV - add plugin defaults for compatibility
    		if (is_admin() && class_exists('CustomSidebars')) {
    			if (!get_option('cs_modifiable')) {
    				update_option('cs_modifiable', array('modifiable' => array('motive-primary-sidebar')));
    			}
    		}
    	}
    
    	/**
    	 * Filter callback: Override breadcrumbs defaults
    	 *
    	 * @param array $options
    	 */
    	public function breadcrumbs($options = array())
    	{
    		$options = array_merge($options, array(
    			'show_current' => (is_single() ? 0 : 1), // 1 - show current post/page title in breadcrumbs, 0 - don't show
    			'delimiter' => '<span class="delim"><i class="fa fa-angle-right"></i></span>',
    			'home_before' => '',
    			'home_after' => '',
    
    			'text' => array_merge((array) $options['text'], array(
    				'category' => '%s',
    			))
    		));
    
    		return $options;
    	}
    
    	/**
    	 * Action callback: Save custom meta for categories
    	 */
    	public function save_category_meta($term_id)
    	{
    		// have custom meta?
    		if ($_POST['meta'] && is_array($_POST['meta']))
    		{
    			$meta = $_POST['meta'];
    
    			// editing?
    			if (($option = Bunyad::options()->get('cat_meta_' . $term_id))) {
    				$meta = array_merge($option, $_POST['meta']);
    			}
    
    			// save to _bunyad_cat_meta
    			Bunyad::options()->update('cat_meta_' . $term_id, $meta);
    
    			// clear custom css cache
    			delete_transient('bunyad_custom_css_cache');
    		}
    	}
    
    	/**
    	 * Setup and recommend plugins
    	 */
    	public function setup_plugins()
    	{
    		if (!is_admin()) {
    			return;
    		}
    
    		/**
    		 * Packaged plugins info - save in registry to be used by plugin updater
    		 */
    		$plugins_info = array(
    			'bunyad-shortcodes' => array(
    				'version' => '1.0.6',
    			),
    
    			'bunyad-widgets' => array(
    				'version' => '1.0.5',
    			),
    
    			'js_composer' => array(
    				'version' => '4.11.2',
    			),
    		);
    
    		Bunyad::registry()->set('packaged_plugins', $plugins_info);
    
    		// load the plugin activation class and plugin updater
    		require_once get_template_directory() . '/lib/vendor/tgm-activation.php';
    		require_once get_template_directory() . '/inc/plugin-update.php';
    
    		// recommended and required plugins
    		$plugins = array(
    			array(
    				'name'     	=> 'Bunyad Shortcodes', // The plugin name
    				'slug'     	=> 'bunyad-shortcodes', // The plugin slug (typically the folder name)
    				'source'   	=> get_template_directory() . '/lib/vendor/plugins/bunyad-shortcodes.zip', // The plugin source
    				'required' 	=> true, // If false, the plugin is only 'recommended' instead of required
    				'force_activation' => false, // If true, plugin is activated upon theme activation and cannot be deactivated until theme switch
    				'version'   => $plugins_info['bunyad-shortcodes']['version'],
    
    			),
    
    			array(
    				'name'     	=> 'WPBakery Visual Composer',
    				'slug'     	=> 'js_composer',
    				'source'   	=> get_template_directory() . '/lib/vendor/plugins/js_composer.zip',
    				'required' 	=> true,
    				'force_activation' => false,
    				'version'   => $plugins_info['js_composer']['version'],
    
    			),
    
    			array(
    				'name'      => 'Bunyad Widgets',
    				'slug'      => 'bunyad-widgets',
    				'source'    => get_template_directory() . '/lib/vendor/plugins/bunyad-widgets.zip',
    				'required'  => true,
    				'force_activation' => false,
    				'version'   => $plugins_info['bunyad-widgets']['version'],
    			),
    
    			array(
    				'name' => 'Custom sidebars',
    				'slug' => 'custom-sidebars',
    				'required' => false,
    			),
    
    			array(
    				'name' => 'WP Retina 2x',
    				'slug' => 'wp-retina-2x',
    				'required' => false,
    			),
    
    			array(
    				'name'   => 'Contact Form 7',
    				'slug'   => 'contact-form-7',
    				'required' => false,
    			),
    
    			array(
    				'name'   => 'Social Count Plus',
    				'slug'   => 'social-count-plus',
    				'required' => false,
    			)
    
    		);
    
    		tgmpa($plugins, array('is_automatic' => true));
    
    	}
    
    	/**
    	 * Any layout blocks that are layout/page/theme-specific will be included to extend
    	 * the default shortcodes supported by the Bunyad Shortcodes Plugin.
    	 */
    	public function setup_shortcodes()
    	{
    		if (!is_object(Bunyad::options()->shortcodes)) {
    			return false;
    		} 
    
    		// default attributes shared amongst blocks
    		$default_attribs = apply_filters('bunyad_default_block_attribs', array(
    				'title'       => '',
    				'title_type'  => '',
    				'view_all'    => 1,
    				'main_color'  => '',
    				'posts'       => 5,
    				'type'        => '',
    				'cat'         => '',
    				'tags'        => '',
    				'sort_by'     => '',
    				'sort_order'  => '',
    				'taxonomy'    => '',
    				'offset'      => '',
    				'link'        => '',
    				'post_type'   => '',
    				'term_ids'    => '',
    				'post_format' => '',
    				'no_thumbs'   => 0,
    				'excerpt_len' => '',
    		));
    
    		// register blocks
    		Bunyad::options()->shortcodes->add_blocks(array(
    
    			// file based
    			'blog' => array('render' => locate_template('blocks/blog.php'), 'attribs' => array_merge($default_attribs, array(
    				'pagination' => 0, 'posts' => 6
    			))),
    
    			'highlights' => array('render' => locate_template('blocks/highlights.php'), 'attribs' => $default_attribs),
    
    			'slider' =>  array('render' => locate_template('blocks/slider.php'), 'attribs' => $default_attribs),
    
    			'review' => array('render' => locate_template('blocks/review.php'), 'attribs' => array('position' => 'bottom')),
    
    			'main_highlights' => array('render' => locate_template('blocks/main-highlights.php'), 'attribs' => $default_attribs),
    
    			'news_bar' => array('render' => locate_template('blocks/news-bar.php'), 'attribs' => $default_attribs),
    
    			'multimedia' => array('render' => locate_template('blocks/multimedia.php'), 'attribs' => array_merge($default_attribs, array(
    				'per_slide' => 3
    			))),
    
    			'latest_gallery' => array('render' => locate_template('blocks/latest-gallery.php'), 'attribs' => array_merge($default_attribs, array(
    				'per_slide' => 3, 'show_nav' => true, 'title_pos' => ''
    			))), 
    
    			// string based
    			'main-color' => array('template' => '<span class="main-color">%text%</span>', 'attribs' => array('text' => '')),
    		));
    
    		// setup shortcode modifications
    		add_filter('bunyad_shortcodes_list', array($this, 'shortcodes_list'));
    		add_filter('bunyad_shortcodes_list_styles', array($this, 'shortcodes_list_styles'));
    
    	}
    
    	/**
    	 * Styles and skins
    	 */
    	public function get_style($style = '')
    	{
    		$styles = array(
    			'magazine' => array(
    				'font_args' => array('family' => 'Source Sans Pro:400,600,700|Open Sans:400,400italic,600,700'),
    				'css' => 'layout-magazine',
    			),
    
    			'news' => array(
    				'font_args' => array('family' => 'Lora:400,700|Open Sans:400,600,700|Volkhov:400'),
    			),
    
    			'creative' => array(
    				'font_args' => array('family' => 'Oswald:400,700|Lato:400,400italic,700|PT Serif:400italic'),
    				'css' => 'layout-creative',
    				'responsive-css' => 'responsive-creative'
    			),
    		);
    
    		if (empty($styles[$style])) {
    			return array();
    		}
    
    		return $styles[$style];
    	}
    
    	/**
    	 * Action callback: Add form fields to category editing / adding form
    	 */
    	public function edit_category_meta($term = null)
    	{
    		// add required assets
    		wp_enqueue_style('bunyad-cat-options', get_template_directory_uri() . '/admin/css/cat-options.css');
    		wp_enqueue_style('wp-color-picker');
    		wp_enqueue_script('wp-color-picker');
    
    		// add media scripts
    		wp_enqueue_media(); 
    
    		wp_enqueue_script('bunyad-theme-options', get_template_directory_uri() . '/admin/js/options.js', array('jquery'));
    
    		// get our category meta template
    		include_once get_template_directory() . '/admin/category-meta.php';
    	}
    
    	public function shortcodes_list($list)
    	{
    		unset($list['default']['box']);
    		return $list;
    	}
    
    	public function shortcodes_list_styles($styles)
    	{
    		$styles['arrow-right'] = $styles['arrow'];
    		unset($styles['arrow']);
    
    		return $styles;
    	}
    
    	/**
    	 * Filter callback: Custom menu fields
    	 */
    	public function custom_menu_fields($fields)
    	{
    		$fields = array(
    			'mega_menu' => array(
    				'label' => __('Mega Menu', 'bunyad'),
    				'element' => array(
    					'type' => 'select',
    					'class' => 'widefat',
    					'options' => array(
    						0 => __('Disabled', 'bunyad'),
    						'category' => __('Category Mega Menu (Subcats, Posts)', 'bunyad'),
    						'category-featured' => __('Category Mega Menu (Subcats, Featured & Recent))', 'bunyad'),
    						'normal' => __('Mega Menu for Links', 'bunyad')
    					)
    				),
    				'parent_only' => true,
    				'locations' => array('motive-main'),
    			)
    		);
    
    		return $fields;
    	}
    
    	/**
    	 * Filter Callback: Add our custom mega-menus
    	 *
    	 * @param array $args
    	 */
    	public function attach_mega_menu($args)
    	{
    		extract($args);
    
    		/**
    		 * @todo when not using a cache plugin, wrap in functions or cache the menu
    		 */
    
    		// category mega menu
    		if ($item->mega_menu == 'category') {
    			$template = 'partials/mega-menu/category.php';
    		}
    		else if ($item->mega_menu == 'normal') {
    			$template = 'partials/mega-menu/links.php';
    		}
    		else if ($item->mega_menu == 'category-featured') {
    			$template = 'partials/mega-menu/category-featured.php';
    		}
    
    		if ($template) {
    			ob_start();
    			include locate_template($template);
    			$output = ob_get_clean();
    
    			return $output;
    		}
    
    		return $sub_menu;
    	}
    
    	/**
    	 * Filter callback: Add logo to the sticky navigation
    	 */
    	public function add_navigation_logo($items, $args)
    	{
    		if (!Bunyad::options()->sticky_nav OR !Bunyad::options()->sticky_nav_logo OR $args->theme_location != 'motive-main') {
    			return $items;
    		}
    
    		if (Bunyad::options()->image_logo_nav) {
    			$logo = '<img src="' . esc_attr(Bunyad::options()->image_logo_nav) .'" />';
    		}
    		else {
    			$logo = do_shortcode(Bunyad::options()->text_logo); // pre-sanitized with kses - valid html
    		}
    
    		$items = '<li class="sticky-logo"><a href="'. esc_url(home_url('/')) .'">' . $logo . '</a></li>' . $items;
    
    		return $items;
    	}
    
    	/**
    	 * Filter callback: Add theme-specific profile fields
    	 */
    	public function add_profile_fields($fields)
    	{
    		$fields = array_merge((array) $fields, array(
    			'bunyad_twitter' => __('Twitter URL', 'bunyad'),
    			'bunyad_gplus'   => __('Google+ URL', 'bunyad'),
    			'bunyad_facebook' => __('Facebook URL', 'bunyad'),
    			'bunyad_linkedin' => __('LinkedIn URL', 'bunyad'),
    			'bunyad_dribbble' => __('Dribbble URL', 'bunyad'),
    			'bunyad_public_email' => __('Public Email', 'bunyad'),
    		));
    
    		return $fields;
    	}
    
    	/**
    	 * Action callback: Add the image overlay based on post-type
    	 */
    	public function add_image_overlay($term = '')
    	{	
    
    		// which icon?
    		switch (get_post_format()) {
    
    			case 'image':
    			case 'gallery':
    				$icon = 'fa-picture-o';
    				break;
    
    			case 'video';
    				$icon = 'fa-youtube-play';
    				break;
    
    			case 'audio':
    				$icon = 'fa-music';
    				break;
    
    			default:
    				$icon = 'fa-file-text-o';
    				break;
    		}
    
    		?>
    			<span class="image-overlay"></span>
    
    			<span class="meta-overlay">
    				<span class="meta">
    
    				<span class="post-format <?php echo esc_attr(get_post_format()); ?>"><i class="fa <?php echo esc_attr($icon); ?>"></i></span>
    
    				</span>
    			</span>
    		<?php
    
    	}
    
    	/**
    	 * Filter callback: Auto-embed video using a link
    	 *
    	 * @param string $content
    	 */
    	public function video_auto_embed($content)
    	{
    		global $wp_embed;
    
    		if (!is_object($wp_embed)) {
    			return $content;
    		}
    
    		return $wp_embed->autoembed($content);
    	}
    
    	/**
    	 * Filter callback: Add custom per page limits where set for individual category
    	 *
    	 * @param object $query
    	 */
    	public function add_category_limits($query)
    	{
    		// bail out if incorrect query
    		if (is_admin() OR !$query->is_category() OR !$query->is_main_query()) {
    			return $query;
    		}
    
    		// permalinks have id or name?
    		if ($query->get('cat')) {
    			$category = get_category($query->get('cat'));
    		}
    		else {
    			$category = get_category_by_slug($query->get('category_name'));
    		}
    
    		// category meta
    		$cat_meta = (array) Bunyad::options()->get('cat_meta_' . $category->term_id);
    
    		// set user-specified per page
    		if (!empty($cat_meta['per_page'])) {
    			$query->set('posts_per_page', intval($cat_meta['per_page']));
    		}
    
    		return $query;
    	}
    
    	/**
    	 * Add review/ratings to content
    	 *
    	 * @param string $content
    	 */
    	public function add_review($content)
    	{
    		if (!is_single() OR !Bunyad::posts()->meta('reviews')) {
    			return $content;
    		}
    
    		$position  = Bunyad::posts()->meta('review_pos');
    		$shortcode = do_shortcode('[review position="'. esc_attr($position) .'"]');
    
    		// based on placement
    		if (strstr($position, 'top')) {
    			$content =  $shortcode . $content;
    		}
    		else if ($position == 'bottom') {
    			$content .= $shortcode;
    		}
    
    		return $content;
    	}
    
    	/**
    	 * Filter callback: Add theme's default review snippet
    	 *
    	 * @param string $content
    	 */
    	public function add_review_snippet($content)
    	{
    		if (!Bunyad::posts()->meta('reviews') OR !Bunyad::options()->review_show) {
    			return $content;
    		}
    
    		// reviews enabled?
    		if (Bunyad::posts()->meta('reviews')) {
    
    			// star style reviews?
    			if (Bunyad::options()->review_style == 'stars')
    			{
    				return '
    					<span class="review-meta stars">
    						<span class="main-stars"><span style="width: '. Bunyad::reviews()->decimal_to_percent(Bunyad::posts()->meta('review_overall')) .'%;">
    							<strong class="rating">' . Bunyad::posts()->meta('review_overall') . '</strong></span>
    						</span>
    					</span>';
    			}
    
    			if (Bunyad::options()->review_style == 'percent') {
    				$rating = Bunyad::reviews()->decimal_to_percent(Bunyad::posts()->meta('review_overall')) . '<span class="percent">%</span>';
    			}
    			else {
    				$rating = floatval(Bunyad::posts()->meta('review_overall')) . '/' . Bunyad::reviews()->rating_max;
    			}
    
    			return '<span class="review-meta"><span class="number">' . $rating . '</span></span>';
    		}
    	}
    
    	/**
    	 * Filter callback: Remove unnecessary classes
    	 */
    	public function fix_post_class($classes = array())
    	{
    		// remove hentry, we use schema.org
    		$classes = array_diff($classes, array('hentry'));
    
    		return $classes;
    	}
    
    	/**
    	 * Filter callback: Add a wrapper to the content slideshow wrapper
    	 *
    	 * @param string $content
    	 */
    	public function add_post_slideshow_wrap($content)
    	{
    		if (is_single() && Bunyad::posts()->meta('content_slider')) {
    			return '<div class="content-page">' . $content . '</div>';
    		}
    
    		return $content;
    	}
    
    	/**
    	 * Filter callback: Add custom image sizes to the editor image size selection
    	 *
    	 * @param array $sizes
    	 */
    	public function add_image_sizes_editor($sizes)
    	{
    		global $_wp_additional_image_sizes;
    
    		if (empty($_wp_additional_image_sizes)) {
    			return $sizes;
    		}
    
    		$motive_images = array('motive-grid-slider', 'motive-main-block', 'motive-highlights-block', 'motive-image-block', 'motive-slider-alt-block', 'motive-alt-slider', 'motive-slider-full');
    		foreach ($_wp_additional_image_sizes as $id => $data) {
    
    			if (in_array($id, $motive_images) && !isset($sizes[$id])) {
    				$sizes[$id] = __('Theme - ', 'bunyad') . ucwords(str_replace('-', ' ', $id));
    			}
    		}
    
    		return $sizes;
    	}
    
    	/**
    	 * Filter callback: Limit search to posts only
    	 *
    	 * @param object $query
    	 */
    	public function limit_search($query)
    	{
    		global $wp_query;
    
    		// not in admin and not on bbpress search
    		if (!is_admin() && $query->is_search && empty($wp_query->bbp_search_terms) && (!function_exists('is_woocommerce') OR !is_woocommerce())) {
    			$query->set('post_type', 'post');
    		}
    
    		return $query;
    	}
    
    	/**
    	 * Action callback: Add to list processed posts to handle duplicates
    	 *
    	 * @param object $query
    	 */
    	public function update_duplicate_posts(&$query)
    	{
    		// the query must enable logging
    		if (empty($query->query_vars['handle_duplicates']) OR !did_action('bunyad_pre_main_content')) {
    			return;
    		}
    
    		// add to list
    		foreach ($query->posts as $post)
    		{
    			$duplicates = (array) Bunyad::registry()->page_duplicate_posts;
    			array_push($duplicates, $post->ID); 
    
    			Bunyad::registry()->page_duplicate_posts = $duplicates;
    		}
    	}
    
    	/**
    	 * Filter callback: Enable duplicate prevention on these query args
    	 *
    	 * @param array $query  query arguments
    	 */
    	public function add_duplicate_exclude($query)
    	{
    		if (!is_front_page()) {
    			return $query;
    		}
    
    		if (!is_array(Bunyad::registry()->page_duplicate_posts)) {
    			Bunyad::registry()->page_duplicate_posts = array();
    		}
    
    		$query['post__not_in'] = Bunyad::registry()->page_duplicate_posts;
    		$query['handle_duplicates'] = true;
    
    		return $query;
    	}
    
    	/**
    	 * Action callback: Output comments overlay
    	 */
    	public function comments_snippet() {
    
    		if (true /* have_comments() */):
    
    		?>
    			<a href="<?php echo esc_attr(get_comments_link()); ?>"><span class="comment-count"><?php echo get_comments_number(); ?></span></a>
    		<?php 
    
    		endif;
    	}
    
    	/**
    	 * Action callback: Output common meta for listings
    	 */
    	public function listing_meta($type = '')
    	{
    		// default options
    		$defaults = array('type' => '', 'review' => Bunyad::options()->listing_meta['review']);
    
    		if (!is_array($type)) {
    			$type = array('type' => $type);
    		}
    
    		// override options
    		$options = array_merge($defaults, $type);
    		extract($options);
    
    		echo '<span class="listing-meta">';
    
    		// add the category meta? don't show on small type listings
    		if (!strstr($type, 'small') && Bunyad::options()->listing_meta['category']) {
    
    			// object has category taxonomy? i.e., is it a post?
    			if (in_array('category', get_object_taxonomies(get_post_type()))) {
    
    				// custom label selected?
    				if (($cat_label = Bunyad::posts()->meta('cat_label'))) {
    					$category = get_category($cat_label);
    				}
    				else {
    					$category = current(get_the_category());
    				}
    
    				echo '<a href="'. get_category_link($category) .'" class="category main-color cat-color-'. esc_attr($category->term_id) .'">' . esc_html($category->cat_name) . '</a>';
    			}
    		}
    
    		// add the date meta?
    		if (Bunyad::options()->listing_meta['date']) {
    			echo '<time datetime="' . esc_attr(get_the_date(DATE_W3C)) . '" itemprop="datePublished">' . get_the_date() . '</time>';
    		}
    
    		if ($review && ($type != 'small-widget' OR Bunyad::options()->review_show_widgets)) {
    			echo apply_filters('bunyad_review_main_snippet', '');
    		}
    
    		echo '</span>';
    	}	
    
    	/**
    	 * Filter callback: Set column for widgets where dynamic widths are set
    	 *
    	 * @param array $params
    	 * @see dynamic_sidebar()
    	 */
    	public function set_footer_columns($params)
    	{
    		static $count = 0, $columns, $last_id;
    
    		if (empty($columns)) {
    			$columns = array(
    				'motive-main-footer' => $this->parse_column_setting(Bunyad::options()->footer_cols_upper),
    				'motive-mid-footer'  => $this->parse_column_setting(Bunyad::options()->footer_cols_middle)
    			);
    		}
    
    		/**
    		 * Set correct column class for each widget in footer
    		 */
    
    		$id = $params[0]['id'];
    
    		// reset counter if last sidebar id was different than current
    		if ($last_id != $id) {
    			$count = 0;
    		}
    
    		// skip everything but these
    		if (in_array($params[0]['id'], array('motive-main-footer', 'motive-mid-footer'))) {
    
    			if (isset($columns[$id][$count])) {
    				$params[0]['before_widget'] = str_replace('column', $columns[$id][$count], $params[0]['before_widget']);
    			}
    
    			$count++;
    		}
    
    		$last_id = $id;
    
    		return $params;
    	}
    
    	/**
    	 * Action callback: Runs when theme version changes in admin
    	 *
    	 * @see Bunyad_Admin_Options::check_version()
    	 */
    	public function theme_update()
    	{
    		// foce WordPress to re-check for plugin updates
    		delete_site_transient('update_plugins');
    	}
    
    	/**
    	 * Parse columns of format 1/2+1/4+1/4 into an array of col-X
    	 *
    	 * @param   array  $cols
    	 * @return  array  Example: array('col-6', 'col-3', ...)
    	 */
    	public function parse_column_setting($cols)
    	{
    		$columns = array();
    
    		foreach (explode('+', $cols) as $col)
    		{
    			$col = explode('/', trim($col));
    
    			if (!empty($col[0]) && !empty($col[1])) {
    
    				$width = number_format($col[0] / $col[1], 2);
    
    				// pre-parsed map to save computation time
    				$map = array(
    					'0.08' => 'col-1', '0.17' => 'col-2', '0.25' => 'col-3', '0.33' => 'col-4',
    					'0.42' => 'col-5', '0.50' => 'col-6', '0.58' => 'col-7', '0.67' => 'col-8',
    					'0.75' => 'col-9', '0.83' => 'col-10', '0.92' => 'col-11', '1.00' => 'col-12'
    				);
    
    				if (array_key_exists($width, $map)) {
    					array_push($columns, $map[$width]);
    				}
    			}
    		}
    
    		return $columns;
    	}
    
    	/**
    	 * Get relative width for current block, based on parent column width in
    	 * relation to the whole container.
    	 *
    	 * @return  float  column width in percent/100, i.e. 30% will be returned as 0.3
    	 */
    	public function block_relative_width()
    	{
    		// set current column width weight (width/100) - used to determine image sizing
    		$col_relative_width = 1;
    		if (isset(Bunyad::registry()->layout['col_relative_width'])) {
    			$col_relative_width = Bunyad::registry()->layout['col_relative_width'];
    		}
    
    		// adjust relative width if there's a sidebar
    		if (Bunyad::core()->get_sidebar() != 'none') {
    			$col_relative_width = ($col_relative_width * (8/12));
    		}
    
    		return $col_relative_width;
    	}
    
    }
    Thread Starter Sravan92

    (@sravan92)

    Hi Steve, Thank for the reply. I have posted my functions.php code in the above reply.

    So, Can you please guide me how to solve this thing ?

    What are the duplicate image sizes that i can delete ?

    Moderator Steven Stern (sterndata)

    (@sterndata)

    Volunteer Forum Moderator

    I gave you the solution above. Look for add_image_size() in your functions.php.

    Thread Starter Sravan92

    (@sravan92)

    and i found these.. there are around 5 sizes ..

    /*
    * Featured images settings
    */
    set_post_thumbnail_size(72, 60, true); // used in many more aspect ratios

    add_image_size(‘motive-grid-slider’, 603, 362, true); // main slider image in grid slider – also used for main higlights
    add_image_size(‘motive-image-block’, 333, 200, true); // gallery sizes used in sidebars and so on – also used in slider at 301×181

    add_image_size(‘motive-alt-slider’, 740, 357, true); // alt slider image size
    add_image_size(‘motive-slider-full’, 1206, 410, true); // alt slider full-width image size
    add_image_size(‘motive-slider-alt-block’, 352, 169, true); // alt slider right slide blocks image

    add_image_size(‘motive-main-block’, 252, 167, true); // main home block – used in 232×154 too
    add_image_size(‘motive-highlight-block’, 359, 201, true); // also used in highlights blocks at 348×195

    so can i delete remaining pics except these ?

Viewing 5 replies - 1 through 5 (of 5 total)
  • The topic ‘Problem with Thumbnails after Deletion of duplicates’ is closed to new replies.