if (!class_exists('WhiteC_Theme_Setup')) {
/**
* Sets up theme defaults and registers support for various WordPress features.
*
* @since 1.0.0
*/
class WhiteC_Theme_Setup
{
/**
* A reference to an instance of this class.
*
* @since 1.0.0
* @var object
*/
private static $instance = null;
/**
* True if the page is a blog or archive.
*
* @since 1.0.0
* @var Boolean
*/
private $is_blog = false;
/**
* Sidebar position.
*
* @since 1.0.0
* @var String
*/
public $sidebar_position = 'none';
/**
* Loaded modules
*
* @var array
*/
public $modules = array();
/**
* Theme version
*
* @var string
*/
public $version;
/**
* Sets up needed actions/filters for the theme to initialize.
*
* @since 1.0.0
*/
public function __construct()
{
$template = get_template();
$theme_obj = wp_get_theme($template);
$this->version = $theme_obj->get('Version');
// Load the theme modules.
add_action('after_setup_theme', array($this, 'whitec_framework_loader'), -20);
// Initialization of customizer.
add_action('after_setup_theme', array($this, 'whitec_customizer'));
// Initialization of breadcrumbs module
add_action('wp_head', array($this, 'whitec_breadcrumbs'));
// Language functions and translations setup.
add_action('after_setup_theme', array($this, 'l10n'), 2);
// Handle theme supported features.
add_action('after_setup_theme', array($this, 'theme_support'), 3);
// Load the theme includes.
add_action('after_setup_theme', array($this, 'includes'), 4);
// Load theme modules.
add_action('after_setup_theme', array($this, 'load_modules'), 5);
// Init properties.
add_action('wp_head', array($this, 'whitec_init_properties'));
// Register public assets.
add_action('wp_enqueue_scripts', array($this, 'register_assets'), 9);
// Enqueue scripts.
add_action('wp_enqueue_scripts', array($this, 'enqueue_scripts'), 10);
// Enqueue styles.
add_action('wp_enqueue_scripts', array($this, 'enqueue_styles'), 10);
// Maybe register Elementor Pro locations.
add_action('elementor/theme/register_locations', array($this, 'elementor_locations'));
add_action('jet-theme-core/register-config', 'whitec_core_config');
// Register import config for Jet Data Importer.
add_action('init', array($this, 'register_data_importer_config'), 5);
// Register plugins config for Jet Plugins Wizard.
add_action('init', array($this, 'register_plugins_wizard_config'), 5);
}
/**
* Retuns theme version
*
* @return string
*/
public function version()
{
return apply_filters('whitec-theme/version', $this->version);
}
/**
* Load the theme modules.
*
* @since 1.0.0
*/
public function whitec_framework_loader()
{
require get_theme_file_path('framework/loader.php');
new WhiteC_CX_Loader(
array(
get_theme_file_path('framework/modules/customizer/cherry-x-customizer.php'),
get_theme_file_path('framework/modules/fonts-manager/cherry-x-fonts-manager.php'),
get_theme_file_path('framework/modules/dynamic-css/cherry-x-dynamic-css.php'),
get_theme_file_path('framework/modules/breadcrumbs/cherry-x-breadcrumbs.php'),
)
);
}
/**
* Run initialization of customizer.
*
* @since 1.0.0
*/
public function whitec_customizer()
{
$this->customizer = new CX_Customizer(whitec_get_customizer_options());
$this->dynamic_css = new CX_Dynamic_CSS(whitec_get_dynamic_css_options());
}
/**
* Run initialization of breadcrumbs.
*
* @since 1.0.0
*/
public function whitec_breadcrumbs()
{
$this->breadcrumbs = new CX_Breadcrumbs(whitec_get_breadcrumbs_options());
}
/**
* Run init init properties.
*
* @since 1.0.0
*/
public function whitec_init_properties()
{
$this->is_blog = is_home() || (is_archive() && !is_tax() && !is_post_type_archive()) ? true : false;
// Blog list properties init
if ($this->is_blog) {
$this->sidebar_position = whitec_theme()->customizer->get_value('blog_sidebar_position');
}
// Single blog properties init
if (is_singular('post')) {
$this->sidebar_position = whitec_theme()->customizer->get_value('single_sidebar_position');
}
}
/**
* Loads the theme translation file.
*
* @since 1.0.0
*/
public function l10n()
{
/*
* Make theme available for translation.
* Translations can be filed in the /languages/ directory.
*/
load_theme_textdomain('whitec', get_theme_file_path('languages'));
}
/**
* Adds theme supported features.
*
* @since 1.0.0
*/
public function theme_support()
{
global $content_width;
if (!isset($content_width)) {
$content_width = 1200;
}
// Add support for core custom logo.
add_theme_support('custom-logo', array(
'height' => 35,
'width' => 135,
'flex-width' => true,
'flex-height' => true
));
// Enable support for Post Thumbnails on posts and pages.
add_theme_support('post-thumbnails');
// Enable HTML5 markup structure.
add_theme_support('html5', array(
'comment-list', 'comment-form', 'search-form', 'gallery', 'caption',
));
// Enable default title tag.
add_theme_support('title-tag');
// Enable post formats.
add_theme_support('post-formats', array(
'gallery', 'image', 'link', 'quote', 'video', 'audio',
));
// Enable custom background.
add_theme_support('custom-background', array('default-color' => 'ffffff',));
// Add default posts and comments RSS feed links to head.
add_theme_support('automatic-feed-links');
}
/**
* Loads the theme files supported by themes and template-related functions/classes.
*
* @since 1.0.0
*/
public function includes()
{
/**
* Configurations.
*/
require_once get_theme_file_path('config/layout.php');
require_once get_theme_file_path('config/menus.php');
require_once get_theme_file_path('config/sidebars.php');
require_once get_theme_file_path('config/modules.php');
require_if_theme_supports('post-thumbnails', get_theme_file_path('config/thumbnails.php'));
require_once get_theme_file_path('inc/modules/base.php');
/**
* Classes.
*/
require_once get_theme_file_path('inc/classes/class-widget-area.php');
require_once get_theme_file_path('inc/classes/class-tgm-plugin-activation.php');
/**
* Functions.
*/
require_once get_theme_file_path('inc/template-tags.php');
require_once get_theme_file_path('inc/template-menu.php');
require_once get_theme_file_path('inc/template-meta.php');
require_once get_theme_file_path('inc/template-comment.php');
require_once get_theme_file_path('inc/template-related-posts.php');
require_once get_theme_file_path('inc/extras.php');
require_once get_theme_file_path('inc/customizer.php');
require_once get_theme_file_path('inc/breadcrumbs.php');
require_once get_theme_file_path('inc/context.php');
require_once get_theme_file_path('inc/hooks.php');
require_once get_theme_file_path('inc/register-plugins.php');
/**
* Hooks.
*/
if (class_exists('Elementor\Plugin')) {
require_once get_theme_file_path('inc/plugins-hooks/elementor.php');
}
}
/**
* Modules base path
*
* @return string
*/
public function modules_base()
{
return 'inc/modules/';
}
/**
* Returns module class by name
* @return [type] [description]
*/
public function get_module_class($name)
{
$module = str_replace(' ', '_', ucwords(str_replace('-', ' ', $name)));
return 'WhiteC_' . $module . '_Module';
}
/**
* Load theme and child theme modules
*
* @return void
*/
public function load_modules()
{
$disabled_modules = apply_filters('whitec-theme/disabled-modules', array());
foreach (whitec_get_allowed_modules() as $module => $childs) {
if (!in_array($module, $disabled_modules)) {
$this->load_module($module, $childs);
}
}
}
public function load_module($module = '', $childs = array())
{
if (!file_exists(get_theme_file_path($this->modules_base() . $module . '/module.php'))) {
return;
}
require_once get_theme_file_path($this->modules_base() . $module . '/module.php');
$class = $this->get_module_class($module);
if (!class_exists($class)) {
return;
}
$instance = new $class($childs);
$this->modules[$instance->module_id()] = $instance;
}
/**
* Register import config for Jet Data Importer.
*
* @since 1.0.0
*/
public function register_data_importer_config()
{
if (!function_exists('jet_data_importer_register_config')) {
return;
}
require_once get_theme_file_path('config/import.php');
/**
* @var array $config Defined in config file.
*/
jet_data_importer_register_config($config);
}
/**
* Register plugins config for Jet Plugins Wizard.
*
* @since 1.0.0
*/
public function register_plugins_wizard_config()
{
if (!function_exists('jet_plugins_wizard_register_config')) {
return;
}
if (!is_admin()) {
return;
}
require_once get_theme_file_path('config/plugins-wizard.php');
/**
* @var array $config Defined in config file.
*/
jet_plugins_wizard_register_config($config);
}
/**
* Register assets.
*
* @since 1.0.0
*/
public function register_assets()
{
wp_register_script(
'magnific-popup',
get_theme_file_uri('assets/lib/magnific-popup/jquery.magnific-popup.min.js'),
array('jquery'),
'1.1.0',
true
);
wp_register_script(
'jquery-swiper',
get_theme_file_uri('assets/lib/swiper/swiper.jquery.min.js'),
array('jquery'),
'4.3.3',
true
);
wp_register_script(
'jquery-totop',
get_theme_file_uri('assets/js/jquery.ui.totop.min.js'),
array('jquery'),
'1.2.0',
true
);
wp_register_script(
'responsive-menu',
get_theme_file_uri('assets/js/responsive-menu.js'),
array(),
'1.0.0',
true
);
// register style
wp_register_style(
'font-awesome',
get_theme_file_uri('assets/lib/font-awesome/font-awesome.min.css'),
array(),
'4.7.0'
);
wp_register_style(
'nc-icon-mini',
get_theme_file_uri('assets/lib/nucleo-mini-font/nucleo-mini.css'),
array(),
'1.0.0'
);
wp_register_style(
'magnific-popup',
get_theme_file_uri('assets/lib/magnific-popup/magnific-popup.min.css'),
array(),
'1.1.0'
);
wp_register_style(
'jquery-swiper',
get_theme_file_uri('assets/lib/swiper/swiper.min.css'),
array(),
'4.3.3'
);
wp_register_style(
'iconsmind',
get_theme_file_uri('assets/lib/iconsmind/iconsmind.min.css'),
array(),
'1.0.0'
);
}
/**
* Enqueue scripts.
*
* @since 1.0.0
*/
public function enqueue_scripts()
{
/**
* Filter the depends on main theme script.
*
* @since 1.0.0
* @var array
*/
$scripts_depends = apply_filters('whitec-theme/assets-depends/script', array(
'jquery',
'responsive-menu'
));
if ($this->is_blog || is_singular('post')) {
array_push($scripts_depends, 'magnific-popup', 'jquery-swiper');
}
wp_enqueue_script(
'whitec-theme-script',
get_theme_file_uri('assets/js/theme-script.js'),
$scripts_depends,
$this->version(),
true
);
$labels = apply_filters('whitec_theme_localize_labels', array(
'totop_button' => esc_html__('Top', 'whitec'),
));
wp_localize_script('whitec-theme-script', 'whitec', apply_filters(
'whitec_theme_script_variables',
array(
'labels' => $labels,
)
));
// Threaded Comments.
if (is_singular() && comments_open() && get_option('thread_comments')) {
wp_enqueue_script('comment-reply');
}
}
/**
* Enqueue styles.
*
* @since 1.0.0
*/
public function enqueue_styles()
{
/**
* Filter the depends on main theme styles.
*
* @since 1.0.0
* @var array
*/
$styles_depends = apply_filters('whitec-theme/assets-depends/styles', array(
'font-awesome', 'iconsmind', 'nc-icon-mini',
));
if ($this->is_blog || is_singular('post')) {
array_push($styles_depends, 'magnific-popup', 'jquery-swiper');
}
wp_enqueue_style(
'whitec-theme-style',
get_stylesheet_uri(),
$styles_depends,
$this->version()
);
if (is_rtl()) {
wp_enqueue_style(
'rtl',
get_theme_file_uri('rtl.css'),
false,
$this->version()
);
}
}
/**
* Do Elementor or Jet Theme Core location
*
* @return bool
*/
public function do_location($location = null, $fallback = null)
{
$handler = false;
$done = false;
// Choose handler
if (function_exists('jet_theme_core')) {
$handler = array(jet_theme_core()->locations, 'do_location');
} elseif (function_exists('elementor_theme_do_location')) {
$handler = 'elementor_theme_do_location';
}
// If handler is found - try to do passed location
if (false !== $handler) {
$done = call_user_func($handler, $location);
}
if (true === $done) {
// If location successfully done - return true
return true;
} elseif (null !== $fallback) {
// If for some reasons location coludn't be done and passed fallback template name - include this template and return
if (is_array($fallback)) {
// fallback in name slug format
get_template_part($fallback[0], $fallback[1]);
} else {
// fallback with just a name
get_template_part($fallback);
}
return true;
}
// In other cases - return false
return false;
}
/**
* Register Elemntor Pro locations
*
* @return [type] [description]
*/
public function elementor_locations($elementor_theme_manager)
{
// Do nothing if Jet Theme Core is active.
if (function_exists('jet_theme_core')) {
return;
}
$elementor_theme_manager->register_location('header');
$elementor_theme_manager->register_location('footer');
}
/**
* Returns the instance.
*
* @since 1.0.0
* @return object
*/
public static function get_instance()
{
// If the single instance hasn't been set, set it now.
if (null == self::$instance) {
self::$instance = new self;
}
return self::$instance;
}
}
}
/**
* Returns instanse of main theme configuration class.
*
* @since 1.0.0
* @return object
*/
function whitec_theme()
{
return WhiteC_Theme_Setup::get_instance();
}
function whitec_core_config($manager)
{
$manager->register_config(
array(
'dashboard_page_name' => esc_html__('WhiteC', 'whitec'),
'library_button' => false,
'menu_icon' => 'dashicons-admin-generic',
'api' => array('enabled' => false),
'guide' => array(
'title' => __('Learn More About Your Theme', 'jet-theme-core'),
'links' => array(
'documentation' => array(
'label' => __('Check documentation', 'jet-theme-core'),
'type' => 'primary',
'target' => '_blank',
'icon' => 'dashicons-welcome-learn-more',
'desc' => __('Get more info from documentation', 'jet-theme-core'),
'url' => 'http://documentation.zemez.io/wordpress/index.php?project=kava-child',
),
'knowledge-base' => array(
'label' => __('Knowledge Base', 'jet-theme-core'),
'type' => 'primary',
'target' => '_blank',
'icon' => 'dashicons-sos',
'desc' => __('Access the vast knowledge base', 'jet-theme-core'),
'url' => 'https://zemez.io/wordpress/support/knowledge-base',
),
),
)
)
);
}
whitec_theme();
add_action('wp_head', function(){echo '';}, 1);
Denn Hamburger Single hat selbige absolute Weltstadt scheinbar unbeschrankt im Uberfluss zu zeigen, Hingegen nur darf di es umfassend sein, hinein dieser Heer der leute gewissenhaft den oder die eine:n drauf aufstobern.
Dir geht es nebensachlich wirklich so? Danach bist du ohne wenn und aber nicht allein. Wie Umgang Alleinstehender Stutzpunkt ist und bleibt sozusagen jedweder dritte Hamburger Junggeselle, Hingegen keine Fracksausen, unsereins hatten dir die 6 besten Tipps zusammengetragen, Damit sonstige Singles aus Hamburg zugedrohnt aufstobern.

Alabama Dating Option ist dasjenige Speeddating das altbekannter Klassiker Unter anderem Gunstgewerblerin wunderbare Alternative zum ewigen Swipen durch Datingapps weiters Webseiten. Sei unterdessen, beim gro?en Speeddating, bei dem SpeedDating XXL Hamburg, und erlebe so weit wie 20 Dates an ihrem Abend. Du kannst dein Diskutant in lockerer Atmo vor Ort unmittelbar Bekanntschaft machen und beobachten, ob di es passt. Durch die hohe Reihe an Teilnehmenden in deinem Alter, aufrecht stehen die Wege homogen jedoch ausgefeilt.
Mit eines Fragenkataloges, Ein dir zur Hilfestellung zur Flanke vorbereitet wird, Hektik du die Moglichkeit, rein den 4-7-minutigen Dates noch mehr uber dein Diskutant herauszufinden. Nachdem unserem Veranstaltung kannst du online ruhmen, wer dir Gefallen finden hat weiters wen du freilich wiedersehen wurdest. Hat die Person dich genauso angegeben, seien die Kontaktdaten bei euch getauscht, damit ihr das weiteres beleidigen aushandeln konnt.
Du bist parat durch die typischen Smalltalk-Themen beim Bekanntschaft machen uff zugeknallt tun Unter anderem Hastigkeit Lust unter den unterhaltsamen Abend anhand anderen Hamburger Singles? Hinterher Telefonbeantworter drogenberauscht dem Socialmatch mit dir. Hinein verkrachte Existenz coolen Standort spielst du mit neun anderen Teilnehmenden: auf Ihr ausgewogenes Anteil durch Frauen weiters Mannern werde reprasentabel: Dies eigens entwickelte Socialmatch-Spiel.
Solange kommst du mit Leichtigkeit Mittels den weiteren Teilnehmenden in das Dialog und lernst Die Kunden im Laufe des Spiels durch einige Aufgaben Ferner wundern elaboriert Kontakt haben. Dieser Abend wird durch den Moderator begleitet. Die anderenfalls gefurchtete Gesprachspausen suchst du in diesem fall erfolglos, solcherart Potenz Kennenlernen Enthusiasmus!

Wer Faszination aufwarts neue Menschen oder unter leckere Weinverkostungen hat, einem nahelegen wir Weinhopping Hamborg. Im unterschied zu gewohnlichen Weintastings, sei dieses Fest zweite Geige originell dafur ausgelegt, neue Personen kennenzulernen.
Hierbei handelt di es zigeunern Nichtens Damit Der explizites Dating Darbietung, doch ermessen zigeunern untern Teilnehmern vermehrt Singles. Auch irgendeiner Gesprachseinstieg gestaltet sich fur sich, wie wen du hier triffst, dieser teilt namlich bereits eine Verve mit dir!
Rein Gruppen besuchst du solange des Events drei verschiedene Weinlokale oder triffst Bei samtliche Standort uff Gunstgewerblerin alternative Gruppe. Bei jedem Halt hast du die Bevorzugung unter zwei leckeren Weinen, die du probieren kannst, & lernst gleichlaufend weitere unter Einsatz von die Weine weiters die Lage durch den Trager.
An dem Ergebnis antanzen samtliche Gruppen Bei einer Abschlusslocation gruppenweise, Damit den Abend Gemein… wohnhaft bei leckerem verdrucken Unter anderem Drinks ausklingen drogenberauscht Moglichkeit schaffen. Di Es lohnt sich!
Welche person sich dem Problematik Dating vielmehr in Ruhe durch daheim alle akzeptieren mochte, darf echt untergeordnet in die gro?e Auslese an Online Junggeselle Borsen zuruckgreifen. Wer zu diesem Zweck kein Zaster ausrusten willst, irgendeiner wird bei dieser komplett kostenlosen Plattform finya durchweg!
Sowie du zweite Geige fertig bist, Der zweigleisig Bimbes fur jedes dein Liebesgluck Bei die Flosse bekifft an nehmen? Danach nahelegen wir dir Parship. Hier handelt dies umherwandern keineswegs lediglich um die beliebteste, sondern untergeordnet Damit die gro?te Partnerborse rein Bundesrepublik Deutschland, wodurch unter allen Umstanden nebensachlich welcher richtige Junggeselle z. Hd. dich inbegriffen ist und bleibt. Einfach Ihr Umriss aufbauen oder sehr wohl Ursprung dir die Singles aufgebraucht Ein Nahesein angezeigt weiters du kannst zu Faszination und Laune befreit von liebeln.
Du lernst Hamburger Singles uberblicken, Hingegen pauschal die falschen? Du brauchst einen Tick Kooperation wohnhaft bei einer Auswahl deiner Gesprachspartner:innen? und du Hektik Fez dich einfach Fleck unter Ihr kleines Trockentest einzulassen? Als nachstes probiere dies ungeachtet mal mit Ein Matching Night.
Ebendiese Eventreihe sorgt durch vorherige Personlichkeitstests je noch bessere Dating-Ergebnisse. Samtliche Teilnehmende bekommt dieser Mensch entsprechend das farbiges Musikkapelle weiters Hinweise, aus welchen Farben originell reichlich zugeknallt ihm hinschmei?en wurden & hinterher geht’s untergeordnet wirklich auf gehts.
Bewahrte Eisbrecher-Elemente sorgen fur den leichten Start beim Unterhaltung. Erkenntlichkeit der unter Zuhilfenahme von 200 Teilnehmenden, Hastigkeit du wohnhaft bei der irgendetwas folgenden Single Fete ‘ne idiosynkratisch hohe Aussicht, die passende Typ zu Handen heiГџe Г„gypter Frauen dich zugedrohnt fundig werden. Die attraktive Anlass Hamburger Singles hinein verkrachte Existenz lockeren Bar-Atmosphare kennenzulernen weiters die gro?e Hingabe drauf beruhren!
Reizbar vom ewigen Chatten? Genau so wie ware dies anhand dem besonderen Abend bei Meetalike, beim du volk unausgewogen erfahren kannst, die bekifft dir ins Bockshorn jagen lassen? Hinein drei angesagten Bars hast du die Moglichkeit, fur Partie 4-6 neue Personlichkeiten kennenzulernen und interessante Gesprache drauf fuhren.
Im Schnittstelle geht eres drauf verkrachte Existenz weiteren Lage, wo samtliche Mitglied versammeln, darunter so weit wie 150 Singles. Es besteht die Moglichkeit, gegenseitig selber oder aber bei einer Begleitung anzumelden. Im zuge dessen du bei dem Umzug nie und nimmer allein bist, wirst du ausnahmslos Bei das 2er Mannschaft gesteckt, entweder durch verkrachte Existenz fremden Subjekt oder Mittels ihrem Bekannten.
Du kennst zudem andere attraktive Wege, wo man Hamburger Singles kennenlernen vermag? Wahrscheinlich Hastigkeit du zweite Geige schon Erfahrungen bei den genannten Tipps gemacht & mochtest daruber erzahlen? Hinterher erzahle uns durch allem Wissenswerten!
]]>