File: /mnt/data/companiesonthegouk/wp-content/plugins/apper-core/includes/dynamic-sidebars.php
<?php
/*
* @package AcmThemes
* @author AcmeeDesign
* @link http://acmeedesign.com
* @since 1.0
*/
/**
* Register the Sidebars menu.
*/
function sidebar_register_menu() {
add_submenu_page(
'themes.php',
esc_html__( 'Sidebars', 'acmthemes' ),
esc_html__( 'Sidebars', 'acmthemes' ),
'manage_options',
'edit-tags.php?taxonomy=acmthemes_sidebars'
);
}
add_action( 'admin_menu', 'sidebar_register_menu', 11 );
/**
* Register Sidebars taxonomy.
*/
function acmthemes_sidebars_taxonomy() {
$labels = array(
'name' => esc_html__( 'Sidebars', 'acmthemes' ),
'singular_name' => esc_html__( 'Sidebar', 'acmthemes' ),
'menu_name' => esc_html_x( 'Sidebars', 'Admin menu name', 'acmthemes' ),
'search_items' => esc_html__( 'Search Sidebars', 'acmthemes' ),
'all_items' => esc_html__( 'All Sidebars', 'acmthemes' ),
'parent_item' => esc_html__( 'Parent Sidebar', 'acmthemes' ),
'parent_item_colon' => esc_html__( 'Parent Sidebar:', 'acmthemes' ),
'edit_item' => esc_html__( 'Edit Sidebar', 'acmthemes' ),
'update_item' => esc_html__( 'Update Sidebar', 'acmthemes' ),
'add_new_item' => esc_html__( 'Add New Sidebar', 'acmthemes' ),
'new_item_name' => esc_html__( 'New Sidebar Name', 'acmthemes' ),
);
$args = array(
'hierarchical' => false,
'labels' => $labels,
'public' => false,
'show_in_nav_menus' => false,
'show_ui' => true,
'capabilities' => array( 'manage_options' ),
'query_var' => false,
'rewrite' => false,
);
register_taxonomy( 'acmthemes_sidebars', array(), $args );
}
add_action( 'init', 'acmthemes_sidebars_taxonomy', 0 );
/**
* Return the sidebar obj.
*/
function acmthemes_get_sidebars() {
$sidebars = get_terms( 'acmthemes_sidebars', array( 'hide_empty' => false ) );
return $sidebars;
}
/**
* check if sidebar persists.
*/
function acmthemes_has_sidebars() {
$sidebars = acmthemes_get_sidebars();
return ! empty( $sidebars );
}
/**
* Register the sidebars.
*/
function acmthemes_register_sidebars() {
if ( ! acmthemes_has_sidebars() ) {
return;
}
$sidebars = acmthemes_get_sidebars();
foreach ( $sidebars as $sidebar ) {
$sidebar_classes = array( 'acmthemes-sidebar' );
register_sidebar(
array(
'id' => 'acm-' . sanitize_title( $sidebar->name ),
'name' => $sidebar->name,
'description' => $sidebar->description,
'before_widget' => '<div class="megamenu-widget %2$s clr">',
'after_widget' => '</div>',
'before_title' => '<h4 class="widget-title">',
'after_title' => '</h4>',
)
);
}
}
add_action( 'init', 'acmthemes_register_sidebars', 0 );