Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php function a4h_admin_widgets_enqueue($location) { if ( $location != 'widgets.php'..

Decoded Output download

<?php 
 
function a4h_admin_widgets_enqueue($location) { 
	if ( $location != 'widgets.php' ) return; 
	wp_enqueue_style('admin-widgets-css', get_theme_file_uri('assets/css/admin-widgets.css'), array(), THEME_VERSION); 
	wp_enqueue_style('admin-checkbox-css', get_theme_file_uri('assets/css/admin-checkbox.css'), array(), THEME_VERSION); 
	wp_enqueue_script('admin-widgets-js', get_theme_file_uri('assets/js/admin-widgets.js'), array(), THEME_VERSION, true); 
	wp_localize_script('admin-widgets-js', 'a4h_admin_widgets_js_vars', array('ajax_url' => admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('a4h_nonce'))); 
} 
add_action('admin_enqueue_scripts', 'a4h_admin_widgets_enqueue'); 
 
function a4h_admin_widgets_sidebars_settings_load() { 
	if ( !current_user_can('edit_theme_options') ) wp_die(); 
	if ( !wp_verify_nonce($_GET['nonce'], 'a4h_nonce') ) wp_die(); 
	echo json_encode(get_option(THEME_VAR.'_sidebars_settings')); 
	wp_die(); 
} 
add_action('wp_ajax_a4h_admin_widgets_sidebars_settings_load', 'a4h_admin_widgets_sidebars_settings_load'); 
 
function a4h_admin_widgets_sidebars_settings_save() { 
	$sidebar_settings = !empty($_POST['sidebars_settings']) ? $_POST['sidebars_settings'] : ''; 
	if ( !current_user_can('edit_theme_options') ) wp_die(); 
	if ( !wp_verify_nonce($_POST['nonce'], 'a4h_nonce') ) wp_die(); 
	update_option(THEME_VAR.'_sidebars_settings', $sidebar_settings); 
	wp_die(); 
} 
add_action('wp_ajax_a4h_admin_widgets_sidebars_settings_save', 'a4h_admin_widgets_sidebars_settings_save'); 
 
function a4h_widgets_get_registered_widgets_list() { 
	global $wp_registered_widget_controls; 
	$registered_widgets = $wp_registered_widget_controls; 
	$new_list = array(); 
	foreach ( $registered_widgets as $widget_id => $widget_content) { 
		$new_list[] = $widget_content['id_base']; 
	} 
	return $new_list; 
} 
 
function a4h_widgets_get_widget_instance($widget_id, $number) { 
	global $wp_registered_widgets; 
	$widget_instance = array(); 
	if ( isset($wp_registered_widgets[$widget_id]) ) { 
		$widget = $wp_registered_widgets[$widget_id]; 
		$widget_instances = get_option($widget['callback'][0]->option_name); 
		$widget_instance = $widget_instances[$number]; 
	} 
	return $widget_instance; 
} 
 
function a4h_widgets_in_widget_form_add_fields($widget, $return, $instance) { 
	$widget_disable = isset($instance['widget_disable']) ? $instance['widget_disable'] : ''; 
	$widget_hide_on = isset($instance['widget_hide_on']) ? $instance['widget_hide_on'] : ''; 
	$widget_classes = isset($instance['widget_classes']) ? $instance['widget_classes'] : ''; 
	$widget_rules = isset($instance['widget_rules']) ? $instance['widget_rules'] : ''; 
	$widget_icon = isset($instance['widget_icon']) ? $instance['widget_icon'] : ''; 
	$widget_link = isset($instance['widget_link']) ? $instance['widget_link'] : ''; 
	$widget_width = isset($instance['widget_width']) ? $instance['widget_width'] : ''; 
	ob_start(); 
	?> 
	<div class="widget-settings"> 
		<div class="settings-inner"> 
			<p> 
				<label></label> 
				<span class="settings-checkbox reverse"> 
					<input type="checkbox" name="<?php echo esc_attr($widget->get_field_name('widget_disable')) ?>" class="settings-field" <?php checked(1, $widget_disable); ?> value="<?php echo esc_attr($widget_disable); ?>"> 
				</span> 
			</p> 
			<p> 
				<label> </label> 
				<select name="<?php echo esc_attr($widget->get_field_name('widget_hide_on')) ?>" class="widefat settings-field"> 
					<option value="">------</option> 
					<option <?php selected('mobile', $widget_hide_on); ?> value="mobile"></option> 
					<option <?php selected('desktop', $widget_hide_on); ?> value="desktop"></option> 
				</select> 
			</p> 
			<p> 
				<label>CSS class</label> 
				<input type="text" name="<?php echo esc_attr($widget->get_field_name('widget_classes')) ?>" class="widefat settings-field code" value="<?php echo esc_attr($widget_classes); ?>"> 
			</p> 
			<p> 
				<label>Rules</label> 
				<input type="text" name="<?php echo esc_attr($widget->get_field_name('widget_rules')) ?>" class="widefat settings-field code" value="<?php echo esc_attr($widget_rules); ?>"> 
			</p> 
			<p> 
				<label> (<a target="_blank" href="<?php echo a4h_theme_vars('icons_external_link'); ?>">&#128279;</a>)</label> 
				<input type="text" name="<?php echo esc_attr($widget->get_field_name('widget_icon')) ?>" class="widefat settings-field widget-icon code" value="<?php echo esc_attr($widget_icon); ?>"> 
			</p> 
			<p> 
				<label></label> 
				<input type="text" name="<?php echo esc_attr($widget->get_field_name('widget_link')) ?>" class="widefat settings-field code" value="<?php echo esc_attr($widget_link); ?>"> 
			</p> 
			<p> 
				<label></label> 
				<select name="<?php echo esc_attr($widget->get_field_name('widget_width')) ?>" class="widefat settings-field" value="<?php echo esc_attr($widget_width); ?>"> 
					<option value="">100%</option> 
					<option <?php selected('9', $widget_width); ?> value="9">75%</option> 
					<option <?php selected('8', $widget_width); ?> value="8">66%</option> 
					<option <?php selected('6', $widget_width); ?> value="6">50%</option> 
					<option <?php selected('4', $widget_width); ?> value="4">33%</option> 
					<option <?php selected('3', $widget_width); ?> value="3">25%</option> 
				</select> 
			</p> 
		</div> 
	</div> 
	<?php 
	echo ob_get_clean(); 
} 
add_action('in_widget_form', 'a4h_widgets_in_widget_form_add_fields', 0, 3); 
 
function a4h_widgets_in_widget_form_update_fields($instance, $new_instance, $old_instance) { 
	$instance['widget_disable'] = $new_instance['widget_disable']; 
	$instance['widget_hide_on'] = $new_instance['widget_hide_on']; 
	$instance['widget_classes'] = $new_instance['widget_classes']; 
	$instance['widget_rules'] = $new_instance['widget_rules']; 
	$instance['widget_icon'] = $new_instance['widget_icon']; 
	$instance['widget_link'] = $new_instance['widget_link']; 
	$instance['widget_width'] = $new_instance['widget_width']; 
	return $instance; 
} 
add_filter('widget_update_callback', 'a4h_widgets_in_widget_form_update_fields', 10, 3); 
 
function a4h_widgets_fix_widget_empty_title($title, $instance = array()) { 
	return empty($instance['title']) ? '' : $title; 
} 
add_filter('widget_title', 'a4h_widgets_fix_widget_empty_title', 10, 2); 
 
function a4h_widget_handle_posts_terms($instance_terms = array()) { 
	if ( empty($instance_terms) ) return array(); 
	if ( is_string($instance_terms) ) { 
		$instance_terms = explode(',', $instance_terms); 
		array_walk_recursive($instance_terms, function(&$value, $key) { 
			$value = 'post>category>'.$value; 
		}); 
	} 
	$current_terms = a4h_get_current_terms(); 
	$terms = array(); 
	$terms['relation'] = 'OR'; 
	foreach ( $instance_terms as $instance_term ) { 
		$term_data = explode('>', $instance_term); 
		if ( !empty($term_data[2]) ) { 
			if ( $term_data[2] == 'current' ) { 
				$terms['relation'] = 'AND';	 
				$current_taxonomy_terms = !empty($current_terms[$term_data[1]]) ? $current_terms[$term_data[1]] : 'NOTHING'; 
				$terms[] = array('taxonomy' => $term_data[1], 'field' => 'id', 'terms' => $current_taxonomy_terms); 
				if ( is_single() ) { 
					$terms['exclude_current_post'] = 1; 
				} 
			} else { 
				$terms[] = array('taxonomy' => $term_data[1], 'field' => 'id', 'terms' => $term_data[2]); 
			} 
		} 
		if ( $term_data[0] == 'current' ) { 
			foreach ( $current_terms as $current_taxonomy_name => $current_taxonomy_terms ) { 
				$terms[] = array('taxonomy' => $current_taxonomy_name, 'field' => 'id', 'terms' => $current_taxonomy_terms); 
			} 
			if ( is_single() ) { 
				$terms['exclude_current_post'] = 1; 
			} 
		} 
	} 
	return $terms; 
} 
 
function a4h_widgets_title_vars($title, $instance = array()) { 
	if ( empty($instance['terms']) ) return $title; 
	$instance_terms = a4h_widget_handle_posts_terms($instance['terms']); 
	if ( !$instance_terms ) return str_replace("%%name%%", '', $title);; 
	unset($instance_terms['exclude_current_post']); 
	unset($instance_terms['relation']); 
	$terms_data = array(); 
	foreach ( $instance_terms as $instance_term ) { 
		if ( empty($instance_term['terms']) ) continue; 
		foreach ( (array)$instance_term['terms'] as $instance_term_single ) { 
			$terms_data[] = get_term($instance_term_single, $instance_term['taxonomy']); 
		} 
	} 
	array_walk_recursive($terms_data, function(&$value, $key) use ($instance) { 
		if ( is_object($value) ) { 
			$value = empty($instance['widget_link']) ? '<a href="'.get_term_link($value, $value->taxonomy).'">'.$value->name.'<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" class="bi bi-chevron-left widget-link-arrow" viewBox="0 0 16 16"> 
			<path fill-rule="evenodd" d="M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z"/> 
		  </svg></a>' : $value->name; 
		} 
	}); 
	$terms_names = implode('<span class="sep"></span>', $terms_data); 
	return str_replace("%%name%%", $terms_names, $title); 
} 
add_filter('widget_title', 'a4h_widgets_title_vars', 10, 2); 
 
function a4h_widgets_widget_params($params) { 
	$instance = a4h_widgets_get_widget_instance($params[0]['widget_id'], $params[1]['number']); 
	$widget_id = $params[0]['widget_id'];  
	$widget_base = _get_widget_id_base($widget_id); 
 
	$classes = array(); 
	$classes[] = 'widget'; 
	$classes[] = 'widget-'.$widget_base; 
	$classes[] = !empty($instance['widget_hide_on']) ? ( $instance['widget_hide_on'] == 'mobile' ? 'd-none d-lg-block' : 'd-lg-none' ) : ''; 
	$classes[] = !empty($instance['title']) ? 'has-title' : ''; 
	$classes[] = !empty($instance['widget_icon']) ? 'has-icon' : ''; 
	$classes[] = !empty($instance['widget_width']) ? 'col-lg-'.$instance['widget_width'] : 'col-lg-12'; 
	$classes[] = !empty($instance['widget_classes']) ? $instance['widget_classes'] : ''; 
	$classes = implode(' ', array_filter($classes)); 
 
	$title_fix = empty($instance['title']) ? '<div class="widget-content">' : ''; 
	$link_open_tag = !empty($instance['widget_link']) ? '<a href="'.a4h_filter('widget_link', $instance['widget_link'], $instance).'">' : ''; 
	$link_close_tag = !empty($instance['widget_link']) ? '</a>' : ''; 
	$link_icon = !empty($instance['widget_link']) ? '<i class="bi bi-chevron-left widget-link-arrow"></i>' : ''; 
	$icon = !empty($instance['widget_icon']) ? sprintf('<i class="%s%s"></i>', a4h_filter('icon_prefix', 'bi bi-'), $instance['widget_icon']) : ''; 
 
	$params[0]['before_widget'] = PHP_EOL.PHP_EOL.'<section id="'.$widget_id.'" class="'.$classes.'"><div class="widget-inner"><div class="widget-inner-2 glob-container">'.$title_fix; 
	$params[0]['after_widget'] = '</div></div></div></section>'.PHP_EOL.PHP_EOL; 
	$params[0]['before_title'] = '<header class="widget-header"><div class="widget-title"><h3>'.$link_open_tag.$icon; 
	$params[0]['after_title'] = $link_icon.$link_close_tag.'</h3></div></header><div class="widget-content">'; 
 
	return $params; 
} 
add_filter('dynamic_sidebar_params', 'a4h_widgets_widget_params'); 
 
function a4h_widgets_widget_rules($sidebars_widgets) { 
	if ( is_admin() ) return $sidebars_widgets; 
	foreach ( $sidebars_widgets as $sidebar_id => $sidebar_widgets ) { 
		if ( $sidebar_id == 'wp_inactive_widgets' || empty($sidebar_widgets) ) { 
			continue; 
		} 
		foreach ( $sidebar_widgets as $widget_index => $widget_id ) { 
			$widget_base = _get_widget_id_base($widget_id); 
			$widget_base_instance = get_option('widget_'.$widget_base); 
			$widget_number = str_replace($widget_base.'-', '', $widget_id); 
			$widget_instance = $widget_base_instance[$widget_number]; 
			$widget_rules_field = !empty($widget_instance['widget_rules']) ? $widget_instance['widget_rules'] : true; 
			$widget_rules = eval("return ($widget_rules_field);"); 
			if ( !$widget_rules ) { 
				unset($sidebars_widgets[$sidebar_id][$widget_index]); 
			} 
			$widget_disable_field = !empty($widget_instance['widget_disable']) ? true : false; 
			$widget_disable_for_ads = $widget_base == 'a4h_ads' && empty($widget_instance['force']) && is_singular() && get_post_meta(get_the_ID(), 'disable_ads', true) ? true : false; 
			$global_disable_for_ads = $widget_base == 'a4h_ads' && ( !a4h_ads('enable_ads') || !a4h_ads('enable_ads_rules') ) ? true : false; 
			$widget_homepage_posts_disable_for_non_homepage = $widget_base == 'a4h_homepage_posts' && !is_home() ? true : false; 
			if ( $widget_disable_field || $widget_disable_for_ads || $global_disable_for_ads ) { 
				unset($sidebars_widgets[$sidebar_id][$widget_index]); 
			} 
			if ( $widget_homepage_posts_disable_for_non_homepage ) { 
				unset($sidebars_widgets[$sidebar_id][$widget_index]); 
			} 
		} 
	} 
	return $sidebars_widgets; 
} 
add_filter('sidebars_widgets', 'a4h_widgets_widget_rules'); 
 
function a4h_widgets_register_sidebar($id, $name) { 
	$sidebar_tags = array( 
		'id'            => $id, 
		'name'          => $name, 
	); 
	register_sidebar($sidebar_tags, $id, $name); 
} 
 
function a4h_widgets_register_sidebars() { 
	a4h_widgets_register_sidebar('header', __('Header Sidebar', THEME_TEXT_DOMAIN)); 
	a4h_widgets_register_sidebar('footer', __('Footer Sidebar', THEME_TEXT_DOMAIN)); 
	a4h_widgets_register_sidebar('archive_right', __('Archive Right Sidebar', THEME_TEXT_DOMAIN)); 
	a4h_widgets_register_sidebar('archive_left', __('Archive Left Sidebar', THEME_TEXT_DOMAIN)); 
	a4h_widgets_register_sidebar('post_right', __('Post Right Sidebar', THEME_TEXT_DOMAIN)); 
	a4h_widgets_register_sidebar('post_left', __('Post Left Sidebar', THEME_TEXT_DOMAIN)); 
	a4h_widgets_register_sidebar('post_middle', __('Post Middle Sidebar', THEME_TEXT_DOMAIN)); 
	a4h_widgets_register_sidebar('post_below', __('Post Below Sidebar', THEME_TEXT_DOMAIN)); 
	for ( $i = 1; $i <= a4h_theme_vars('home_sidebars_count'); $i++ ) { 
		a4h_widgets_register_sidebar('home_'.$i, __('Home Page Sidebar', THEME_TEXT_DOMAIN).' #'.$i); 
	} 
} 
add_action('widgets_init', 'a4h_widgets_register_sidebars', 0); 
 
function a4h_widgets_sidebar($id) { 
 
	if ( $id == 'home' ) { 
		for ( $i = 1; $i <= a4h_theme_vars('home_sidebars_count'); $i++ ) { 
			a4h_widgets_sidebar('home_'.$i); 
		} 
	} 
	 
	if ( !get_query_var('show_sidebar_'.$id, true) ) return; 
	if ( !is_active_sidebar($id) ) return; 
	if ( is_page() && in_array($id, array('post_right', 'post_left', 'post_middle', 'post_below')) ) return; 
	$sidebars_settings = get_option(THEME_VAR.'_sidebars_settings'); 
	if ( !empty($sidebars_settings[$id]['disable']) ) return; 
	if ( !empty($sidebars_settings[$id]['rules']) ) { 
		$sidebar_rules = $sidebars_settings[$id]['rules']; 
		$sidebar_rules = eval("return ($sidebar_rules);"); 
		if ( !$sidebar_rules ) { 
			return; 
		} 
	} 
	$sidebars_classes = array(); 
	$sidebars_classes[] = 'sidebar'; 
	$sidebars_classes[] = in_array($id, array('archive_right', 'archive_left', 'post_right', 'post_left')) ? 'sidebar-side' : ''; 
	$sidebars_classes[] = !empty($sidebars_settings[$id]['hide_on']) ? ( $sidebars_settings[$id]['hide_on'] == 'mobile' ? 'd-none d-lg-block' : 'd-lg-none' ) : ''; 
	$sidebars_classes[] = !empty($sidebars_settings[$id]['classes']) ? $sidebars_settings[$id]['classes'] : ''; 
	$sidebars_classes = implode(' ', array_filter($sidebars_classes)); 
 
	$sidebars_title = !empty($sidebars_settings[$id]['title']) ? '<header class="sidebar-header"><div class="sidebar-title"><h2>'.$sidebars_settings[$id]['title'].'</h2></div></header>' : ''; 
 
	$sidebar_before = ''; 
	$sidebar_after = ''; 
	if ( $id == 'post_middle' ) { 
		$sidebar_before = a4h_entry_content_sep_before(); 
	} 
	if ( $id == 'post_middle' ) { 
		$sidebar_after = a4h_entry_content_sep_after(); 
	} 
 
?> 
<?php echo $sidebar_before; ?> 
<aside id="sidebar-<?php echo $id; ?>" class="<?php echo $sidebars_classes; ?>"> 
	<div class="container"> 
		<?php echo $sidebars_title; ?> 
		<div class="sidebar-content row"> 
			<?php dynamic_sidebar($id); ?> 
		</div> 
	</div> 
</aside> 
<?php echo $sidebar_after; ?> 
<?php 
} 
 ?>

Did this file decode correctly?

Original Code

<?php

function a4h_admin_widgets_enqueue($location) {
	if ( $location != 'widgets.php' ) return;
	wp_enqueue_style('admin-widgets-css', get_theme_file_uri('assets/css/admin-widgets.css'), array(), THEME_VERSION);
	wp_enqueue_style('admin-checkbox-css', get_theme_file_uri('assets/css/admin-checkbox.css'), array(), THEME_VERSION);
	wp_enqueue_script('admin-widgets-js', get_theme_file_uri('assets/js/admin-widgets.js'), array(), THEME_VERSION, true);
	wp_localize_script('admin-widgets-js', 'a4h_admin_widgets_js_vars', array('ajax_url' => admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('a4h_nonce')));
}
add_action('admin_enqueue_scripts', 'a4h_admin_widgets_enqueue');

function a4h_admin_widgets_sidebars_settings_load() {
	if ( !current_user_can('edit_theme_options') ) wp_die();
	if ( !wp_verify_nonce($_GET['nonce'], 'a4h_nonce') ) wp_die();
	echo json_encode(get_option(THEME_VAR.'_sidebars_settings'));
	wp_die();
}
add_action('wp_ajax_a4h_admin_widgets_sidebars_settings_load', 'a4h_admin_widgets_sidebars_settings_load');

function a4h_admin_widgets_sidebars_settings_save() {
	$sidebar_settings = !empty($_POST['sidebars_settings']) ? $_POST['sidebars_settings'] : '';
	if ( !current_user_can('edit_theme_options') ) wp_die();
	if ( !wp_verify_nonce($_POST['nonce'], 'a4h_nonce') ) wp_die();
	update_option(THEME_VAR.'_sidebars_settings', $sidebar_settings);
	wp_die();
}
add_action('wp_ajax_a4h_admin_widgets_sidebars_settings_save', 'a4h_admin_widgets_sidebars_settings_save');

function a4h_widgets_get_registered_widgets_list() {
	global $wp_registered_widget_controls;
	$registered_widgets = $wp_registered_widget_controls;
	$new_list = array();
	foreach ( $registered_widgets as $widget_id => $widget_content) {
		$new_list[] = $widget_content['id_base'];
	}
	return $new_list;
}

function a4h_widgets_get_widget_instance($widget_id, $number) {
	global $wp_registered_widgets;
	$widget_instance = array();
	if ( isset($wp_registered_widgets[$widget_id]) ) {
		$widget = $wp_registered_widgets[$widget_id];
		$widget_instances = get_option($widget['callback'][0]->option_name);
		$widget_instance = $widget_instances[$number];
	}
	return $widget_instance;
}

function a4h_widgets_in_widget_form_add_fields($widget, $return, $instance) {
	$widget_disable = isset($instance['widget_disable']) ? $instance['widget_disable'] : '';
	$widget_hide_on = isset($instance['widget_hide_on']) ? $instance['widget_hide_on'] : '';
	$widget_classes = isset($instance['widget_classes']) ? $instance['widget_classes'] : '';
	$widget_rules = isset($instance['widget_rules']) ? $instance['widget_rules'] : '';
	$widget_icon = isset($instance['widget_icon']) ? $instance['widget_icon'] : '';
	$widget_link = isset($instance['widget_link']) ? $instance['widget_link'] : '';
	$widget_width = isset($instance['widget_width']) ? $instance['widget_width'] : '';
	ob_start();
	?>
	<div class="widget-settings">
		<div class="settings-inner">
			<p>
				<label></label>
				<span class="settings-checkbox reverse">
					<input type="checkbox" name="<?php echo esc_attr($widget->get_field_name('widget_disable')) ?>" class="settings-field" <?php checked(1, $widget_disable); ?> value="<?php echo esc_attr($widget_disable); ?>">
				</span>
			</p>
			<p>
				<label> </label>
				<select name="<?php echo esc_attr($widget->get_field_name('widget_hide_on')) ?>" class="widefat settings-field">
					<option value="">------</option>
					<option <?php selected('mobile', $widget_hide_on); ?> value="mobile"></option>
					<option <?php selected('desktop', $widget_hide_on); ?> value="desktop"></option>
				</select>
			</p>
			<p>
				<label>CSS class</label>
				<input type="text" name="<?php echo esc_attr($widget->get_field_name('widget_classes')) ?>" class="widefat settings-field code" value="<?php echo esc_attr($widget_classes); ?>">
			</p>
			<p>
				<label>Rules</label>
				<input type="text" name="<?php echo esc_attr($widget->get_field_name('widget_rules')) ?>" class="widefat settings-field code" value="<?php echo esc_attr($widget_rules); ?>">
			</p>
			<p>
				<label> (<a target="_blank" href="<?php echo a4h_theme_vars('icons_external_link'); ?>">&#128279;</a>)</label>
				<input type="text" name="<?php echo esc_attr($widget->get_field_name('widget_icon')) ?>" class="widefat settings-field widget-icon code" value="<?php echo esc_attr($widget_icon); ?>">
			</p>
			<p>
				<label></label>
				<input type="text" name="<?php echo esc_attr($widget->get_field_name('widget_link')) ?>" class="widefat settings-field code" value="<?php echo esc_attr($widget_link); ?>">
			</p>
			<p>
				<label></label>
				<select name="<?php echo esc_attr($widget->get_field_name('widget_width')) ?>" class="widefat settings-field" value="<?php echo esc_attr($widget_width); ?>">
					<option value="">100%</option>
					<option <?php selected('9', $widget_width); ?> value="9">75%</option>
					<option <?php selected('8', $widget_width); ?> value="8">66%</option>
					<option <?php selected('6', $widget_width); ?> value="6">50%</option>
					<option <?php selected('4', $widget_width); ?> value="4">33%</option>
					<option <?php selected('3', $widget_width); ?> value="3">25%</option>
				</select>
			</p>
		</div>
	</div>
	<?php
	echo ob_get_clean();
}
add_action('in_widget_form', 'a4h_widgets_in_widget_form_add_fields', 0, 3);

function a4h_widgets_in_widget_form_update_fields($instance, $new_instance, $old_instance) {
	$instance['widget_disable'] = $new_instance['widget_disable'];
	$instance['widget_hide_on'] = $new_instance['widget_hide_on'];
	$instance['widget_classes'] = $new_instance['widget_classes'];
	$instance['widget_rules'] = $new_instance['widget_rules'];
	$instance['widget_icon'] = $new_instance['widget_icon'];
	$instance['widget_link'] = $new_instance['widget_link'];
	$instance['widget_width'] = $new_instance['widget_width'];
	return $instance;
}
add_filter('widget_update_callback', 'a4h_widgets_in_widget_form_update_fields', 10, 3);

function a4h_widgets_fix_widget_empty_title($title, $instance = array()) {
	return empty($instance['title']) ? '' : $title;
}
add_filter('widget_title', 'a4h_widgets_fix_widget_empty_title', 10, 2);

function a4h_widget_handle_posts_terms($instance_terms = array()) {
	if ( empty($instance_terms) ) return array();
	if ( is_string($instance_terms) ) {
		$instance_terms = explode(',', $instance_terms);
		array_walk_recursive($instance_terms, function(&$value, $key) {
			$value = 'post>category>'.$value;
		});
	}
	$current_terms = a4h_get_current_terms();
	$terms = array();
	$terms['relation'] = 'OR';
	foreach ( $instance_terms as $instance_term ) {
		$term_data = explode('>', $instance_term);
		if ( !empty($term_data[2]) ) {
			if ( $term_data[2] == 'current' ) {
				$terms['relation'] = 'AND';	
				$current_taxonomy_terms = !empty($current_terms[$term_data[1]]) ? $current_terms[$term_data[1]] : 'NOTHING';
				$terms[] = array('taxonomy' => $term_data[1], 'field' => 'id', 'terms' => $current_taxonomy_terms);
				if ( is_single() ) {
					$terms['exclude_current_post'] = 1;
				}
			} else {
				$terms[] = array('taxonomy' => $term_data[1], 'field' => 'id', 'terms' => $term_data[2]);
			}
		}
		if ( $term_data[0] == 'current' ) {
			foreach ( $current_terms as $current_taxonomy_name => $current_taxonomy_terms ) {
				$terms[] = array('taxonomy' => $current_taxonomy_name, 'field' => 'id', 'terms' => $current_taxonomy_terms);
			}
			if ( is_single() ) {
				$terms['exclude_current_post'] = 1;
			}
		}
	}
	return $terms;
}

function a4h_widgets_title_vars($title, $instance = array()) {
	if ( empty($instance['terms']) ) return $title;
	$instance_terms = a4h_widget_handle_posts_terms($instance['terms']);
	if ( !$instance_terms ) return str_replace("%%name%%", '', $title);;
	unset($instance_terms['exclude_current_post']);
	unset($instance_terms['relation']);
	$terms_data = array();
	foreach ( $instance_terms as $instance_term ) {
		if ( empty($instance_term['terms']) ) continue;
		foreach ( (array)$instance_term['terms'] as $instance_term_single ) {
			$terms_data[] = get_term($instance_term_single, $instance_term['taxonomy']);
		}
	}
	array_walk_recursive($terms_data, function(&$value, $key) use ($instance) {
		if ( is_object($value) ) {
			$value = empty($instance['widget_link']) ? '<a href="'.get_term_link($value, $value->taxonomy).'">'.$value->name.'<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" class="bi bi-chevron-left widget-link-arrow" viewBox="0 0 16 16">
			<path fill-rule="evenodd" d="M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z"/>
		  </svg></a>' : $value->name;
		}
	});
	$terms_names = implode('<span class="sep"></span>', $terms_data);
	return str_replace("%%name%%", $terms_names, $title);
}
add_filter('widget_title', 'a4h_widgets_title_vars', 10, 2);

function a4h_widgets_widget_params($params) {
	$instance = a4h_widgets_get_widget_instance($params[0]['widget_id'], $params[1]['number']);
	$widget_id = $params[0]['widget_id']; 
	$widget_base = _get_widget_id_base($widget_id);

	$classes = array();
	$classes[] = 'widget';
	$classes[] = 'widget-'.$widget_base;
	$classes[] = !empty($instance['widget_hide_on']) ? ( $instance['widget_hide_on'] == 'mobile' ? 'd-none d-lg-block' : 'd-lg-none' ) : '';
	$classes[] = !empty($instance['title']) ? 'has-title' : '';
	$classes[] = !empty($instance['widget_icon']) ? 'has-icon' : '';
	$classes[] = !empty($instance['widget_width']) ? 'col-lg-'.$instance['widget_width'] : 'col-lg-12';
	$classes[] = !empty($instance['widget_classes']) ? $instance['widget_classes'] : '';
	$classes = implode(' ', array_filter($classes));

	$title_fix = empty($instance['title']) ? '<div class="widget-content">' : '';
	$link_open_tag = !empty($instance['widget_link']) ? '<a href="'.a4h_filter('widget_link', $instance['widget_link'], $instance).'">' : '';
	$link_close_tag = !empty($instance['widget_link']) ? '</a>' : '';
	$link_icon = !empty($instance['widget_link']) ? '<i class="bi bi-chevron-left widget-link-arrow"></i>' : '';
	$icon = !empty($instance['widget_icon']) ? sprintf('<i class="%s%s"></i>', a4h_filter('icon_prefix', 'bi bi-'), $instance['widget_icon']) : '';

	$params[0]['before_widget'] = PHP_EOL.PHP_EOL.'<section id="'.$widget_id.'" class="'.$classes.'"><div class="widget-inner"><div class="widget-inner-2 glob-container">'.$title_fix;
	$params[0]['after_widget'] = '</div></div></div></section>'.PHP_EOL.PHP_EOL;
	$params[0]['before_title'] = '<header class="widget-header"><div class="widget-title"><h3>'.$link_open_tag.$icon;
	$params[0]['after_title'] = $link_icon.$link_close_tag.'</h3></div></header><div class="widget-content">';

	return $params;
}
add_filter('dynamic_sidebar_params', 'a4h_widgets_widget_params');

function a4h_widgets_widget_rules($sidebars_widgets) {
	if ( is_admin() ) return $sidebars_widgets;
	foreach ( $sidebars_widgets as $sidebar_id => $sidebar_widgets ) {
		if ( $sidebar_id == 'wp_inactive_widgets' || empty($sidebar_widgets) ) {
			continue;
		}
		foreach ( $sidebar_widgets as $widget_index => $widget_id ) {
			$widget_base = _get_widget_id_base($widget_id);
			$widget_base_instance = get_option('widget_'.$widget_base);
			$widget_number = str_replace($widget_base.'-', '', $widget_id);
			$widget_instance = $widget_base_instance[$widget_number];
			$widget_rules_field = !empty($widget_instance['widget_rules']) ? $widget_instance['widget_rules'] : true;
			$widget_rules = eval("return ($widget_rules_field);");
			if ( !$widget_rules ) {
				unset($sidebars_widgets[$sidebar_id][$widget_index]);
			}
			$widget_disable_field = !empty($widget_instance['widget_disable']) ? true : false;
			$widget_disable_for_ads = $widget_base == 'a4h_ads' && empty($widget_instance['force']) && is_singular() && get_post_meta(get_the_ID(), 'disable_ads', true) ? true : false;
			$global_disable_for_ads = $widget_base == 'a4h_ads' && ( !a4h_ads('enable_ads') || !a4h_ads('enable_ads_rules') ) ? true : false;
			$widget_homepage_posts_disable_for_non_homepage = $widget_base == 'a4h_homepage_posts' && !is_home() ? true : false;
			if ( $widget_disable_field || $widget_disable_for_ads || $global_disable_for_ads ) {
				unset($sidebars_widgets[$sidebar_id][$widget_index]);
			}
			if ( $widget_homepage_posts_disable_for_non_homepage ) {
				unset($sidebars_widgets[$sidebar_id][$widget_index]);
			}
		}
	}
	return $sidebars_widgets;
}
add_filter('sidebars_widgets', 'a4h_widgets_widget_rules');

function a4h_widgets_register_sidebar($id, $name) {
	$sidebar_tags = array(
		'id'            => $id,
		'name'          => $name,
	);
	register_sidebar($sidebar_tags, $id, $name);
}

function a4h_widgets_register_sidebars() {
	a4h_widgets_register_sidebar('header', __('Header Sidebar', THEME_TEXT_DOMAIN));
	a4h_widgets_register_sidebar('footer', __('Footer Sidebar', THEME_TEXT_DOMAIN));
	a4h_widgets_register_sidebar('archive_right', __('Archive Right Sidebar', THEME_TEXT_DOMAIN));
	a4h_widgets_register_sidebar('archive_left', __('Archive Left Sidebar', THEME_TEXT_DOMAIN));
	a4h_widgets_register_sidebar('post_right', __('Post Right Sidebar', THEME_TEXT_DOMAIN));
	a4h_widgets_register_sidebar('post_left', __('Post Left Sidebar', THEME_TEXT_DOMAIN));
	a4h_widgets_register_sidebar('post_middle', __('Post Middle Sidebar', THEME_TEXT_DOMAIN));
	a4h_widgets_register_sidebar('post_below', __('Post Below Sidebar', THEME_TEXT_DOMAIN));
	for ( $i = 1; $i <= a4h_theme_vars('home_sidebars_count'); $i++ ) {
		a4h_widgets_register_sidebar('home_'.$i, __('Home Page Sidebar', THEME_TEXT_DOMAIN).' #'.$i);
	}
}
add_action('widgets_init', 'a4h_widgets_register_sidebars', 0);

function a4h_widgets_sidebar($id) {

	if ( $id == 'home' ) {
		for ( $i = 1; $i <= a4h_theme_vars('home_sidebars_count'); $i++ ) {
			a4h_widgets_sidebar('home_'.$i);
		}
	}
	
	if ( !get_query_var('show_sidebar_'.$id, true) ) return;
	if ( !is_active_sidebar($id) ) return;
	if ( is_page() && in_array($id, array('post_right', 'post_left', 'post_middle', 'post_below')) ) return;
	$sidebars_settings = get_option(THEME_VAR.'_sidebars_settings');
	if ( !empty($sidebars_settings[$id]['disable']) ) return;
	if ( !empty($sidebars_settings[$id]['rules']) ) {
		$sidebar_rules = $sidebars_settings[$id]['rules'];
		$sidebar_rules = eval("return ($sidebar_rules);");
		if ( !$sidebar_rules ) {
			return;
		}
	}
	$sidebars_classes = array();
	$sidebars_classes[] = 'sidebar';
	$sidebars_classes[] = in_array($id, array('archive_right', 'archive_left', 'post_right', 'post_left')) ? 'sidebar-side' : '';
	$sidebars_classes[] = !empty($sidebars_settings[$id]['hide_on']) ? ( $sidebars_settings[$id]['hide_on'] == 'mobile' ? 'd-none d-lg-block' : 'd-lg-none' ) : '';
	$sidebars_classes[] = !empty($sidebars_settings[$id]['classes']) ? $sidebars_settings[$id]['classes'] : '';
	$sidebars_classes = implode(' ', array_filter($sidebars_classes));

	$sidebars_title = !empty($sidebars_settings[$id]['title']) ? '<header class="sidebar-header"><div class="sidebar-title"><h2>'.$sidebars_settings[$id]['title'].'</h2></div></header>' : '';

	$sidebar_before = '';
	$sidebar_after = '';
	if ( $id == 'post_middle' ) {
		$sidebar_before = a4h_entry_content_sep_before();
	}
	if ( $id == 'post_middle' ) {
		$sidebar_after = a4h_entry_content_sep_after();
	}

?>
<?php echo $sidebar_before; ?>
<aside id="sidebar-<?php echo $id; ?>" class="<?php echo $sidebars_classes; ?>">
	<div class="container">
		<?php echo $sidebars_title; ?>
		<div class="sidebar-content row">
			<?php dynamic_sidebar($id); ?>
		</div>
	</div>
</aside>
<?php echo $sidebar_after; ?>
<?php
}

Function Calls

add_action 1

Variables

None

Stats

MD5 5a2c5ce64cb0cb4746d8396d90e2eaff
Eval Count 0
Decode Time 121 ms