* If you want to hook into WordPress and make changes or modification, please use \BootstrapBasic4\Hooks\Bsb4Hooks() class.
* To use, just code as follows:
*
* $BootstrapBasic4 = new \BootstrapBasic4\BootstrapBasic4();
* $BootstrapBasic4->addActionsFilters();
*
* That's it.
*/
class BootstrapBasic4
{
/**
* Add actions and filters to make main theme functional works.
*/
public function addActionsFilters()
{
// Change main content width up to columns available.
add_action('template_redirect', array($this, 'detectContentWidth'));
// Add theme feature.
add_action('after_setup_theme', array($this, 'themeSetup'));
// Register sidebars.
add_action('widgets_init', array($this, 'registerSidebars'));
// Enqueue scripts and styles.
add_action('wp_enqueue_scripts', array($this, 'registerCommonScriptsAndStyles'));
add_action('admin_enqueue_scripts', array($this, 'registerCommonScriptsAndStyles'));
add_action('wp_enqueue_scripts', array($this, 'enqueueScriptsAndStyles'));
// Add Bootstrap styles into editor.
add_action('admin_init', array($this, 'addEditorStyles'));
// Add Bootstrap styles into Gutenberg editor.
add_action('enqueue_block_editor_assets', array($this, 'enqueueBlockEditorAssets'));
}// addActionsFilters
/**
* Add Bootstrap styles into classic editor.
*/
public function addEditorStyles()
{
add_editor_style('assets/css/bootstrap.min.css');
}// addEditorStyles
/**
* Detect main content width upto columns available.
*/
public function detectContentWidth()
{
global $content_width, $bootstrapbasic4_sidebar_left_size, $bootstrapbasic4_sidebar_right_size;
if (is_active_sidebar('sidebar-left') && is_active_sidebar('sidebar-right')) {
$content_width = 540;
} elseif (is_active_sidebar('sidebar-left') || is_active_sidebar('sidebar-right')) {
$content_width = 825;
}
$content_width = apply_filters('bootstrap_basic4_content_width', $content_width, $bootstrapbasic4_sidebar_left_size, $bootstrapbasic4_sidebar_right_size);
}// detectContentWidth
/**
* Add Bootstrap styles into Gutenberg editor.
*/
public function enqueueBlockEditorAssets()
{
wp_enqueue_style('bootstrap4');
}// enqueueBlockEditorAssets
/**
* Enqueue scripts and styles.
*
* @access private Do not access this method directly. This is for hook callback not for direct call.
*/
public function enqueueScriptsAndStyles()
{
wp_enqueue_style('bootstrap-basic4-wp-main', get_stylesheet_uri(), array(), '1.0.9');
wp_enqueue_style('bootstrap4');
// font awesome. choose css fonts instead of svg, see more at https://fontawesome.com/how-to-use/on-the-web/other-topics/performance
wp_enqueue_style('bootstrap-basic4-font-awesome5', get_template_directory_uri() . '/assets/fontawesome/css/all.min.css', array(), '5.5.0');
wp_enqueue_style('bootstrap-basic4-main', get_template_directory_uri() . '/assets/css/main.css', array(), '1.0.9');
if (is_singular() && get_option('thread_comments')) {
wp_enqueue_script('comment-reply');
}
wp_enqueue_script('bootstrap4-bundle', get_template_directory_uri() . '/assets/js/bootstrap.bundle.min.js', array('jquery'), '4.1.3', true);// bundled with popper. see https://getbootstrap.com/docs/4.0/getting-started/contents/#comparison-of-css-files
wp_enqueue_script('bootstrap-basic4-main', get_template_directory_uri() . '/assets/js/main.js', array('jquery'), '1.0.9', true);
}// enqueueScriptsAndStyles
/**
* Register commonly use scripts and styles for back-end and front-end.
*/
public function registerCommonScriptsAndStyles()
{
wp_register_style('bootstrap4', get_template_directory_uri() . '/assets/css/bootstrap.min.css', array(), '4.1.3');
}// registerCommonScriptsAndStyles
/**
* Register sidebars
*
* @access private Do not access this method directly. This is for hook callback not for direct call.
*/
public function registerSidebars()
{
register_sidebar(array(
'name' => __('Sidebar left', 'bootstrap-basic4'),
'id' => 'sidebar-left',
'before_widget' => '',
'before_title' => '