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'); ?>">🔗</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'); ?>">🔗</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 |
Stats
MD5 | 5a2c5ce64cb0cb4746d8396d90e2eaff |
Eval Count | 0 |
Decode Time | 121 ms |