/** * Theme functions and definitions. * * Sets up the theme and provides some helper functions * * When using a child theme (see https://codex.wordpress.org/Theme_Development * and https://codex.wordpress.org/Child_Themes), you can override certain * functions (those wrapped in a function_exists() call) by defining them first * in your child theme's functions.php file. The child theme's functions.php * file is included before the parent theme's file, so the child theme * functions would be used. * * * For more information on hooks, actions, and filters, * see https://codex.wordpress.org/Plugin_API * * @package Modarch WordPress theme */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly } if(!defined('MODARCH_THEME_VERSION')){ define('MODARCH_THEME_VERSION', '1.0.0'); } if(!class_exists('Modarch_Theme_Class')){ final class Modarch_Theme_Class { /** * @var string $template_dir_path */ public static $template_dir_path = ''; /** * @var string $template_dir_url */ public static $template_dir_url = ''; /** * @var Modarch_Ajax_Manager $ajax_manager; */ public $ajax_manager; /** * @var string $extra_style */ protected $extra_style = ''; /** * A reference to an instance of this class. * * @since 1.0.0 * @access private * @var object */ private static $instance = null; /** * Main Theme Class Constructor * * @since 1.0.0 */ public function __construct() { self::$template_dir_path = get_template_directory(); self::$template_dir_url = get_template_directory_uri(); // Define constants add_action( 'after_setup_theme', array( $this, 'constants' ), 0 ); // Load all core theme function files add_action( 'after_setup_theme', array( $this, 'include_functions' ), 1 ); // Load configuration classes add_action( 'after_setup_theme', array( $this, 'configs' ), 3 ); // Load framework classes add_action( 'after_setup_theme', array( $this, 'classes' ), 4 ); // Setup theme => add_theme_support: register_nav_menus, load_theme_textdomain, etc add_action( 'after_setup_theme', array( $this, 'theme_setup' ) ); add_action( 'after_setup_theme', array( $this, 'theme_setup_default' ) ); // register sidebar widget areas add_action( 'widgets_init', array( $this, 'register_sidebars' ) ); /** Admin only actions **/ if( is_admin() ) { // Load scripts in the WP admin add_action( 'admin_enqueue_scripts', array( $this, 'admin_scripts' ) ); add_action( 'elementor/editor/before_enqueue_scripts', array( $this, 'admin_scripts' ) ); add_action( 'enqueue_block_assets', array( $this, 'admin_scripts' ) ); } /** Non Admin actions **/ else{ // Load theme CSS add_action( 'wp_enqueue_scripts', array( $this, 'theme_css' ) ); // Load theme js add_action( 'wp_enqueue_scripts', array( $this, 'theme_js' ), 99 ); // Add a pingback url auto-discovery header for singularly identifiable articles add_action( 'wp_head', array( $this, 'pingback_header' ), 1 ); // Add meta viewport tag to header add_action( 'wp_head', array( $this, 'meta_viewport' ), 1 ); // Add meta apple web app capable tag to header add_action( 'wp_head', array( $this, 'apple_mobile_web_app_capable_header' ), 1 ); // Add an X-UA-Compatible header add_filter( 'wp_headers', array( $this, 'x_ua_compatible_headers' ) ); // Add support for Elementor Pro locations add_action( 'elementor/theme/register_locations', array( $this, 'register_elementor_locations' ) ); // Load External Resources add_action( 'wp_footer', array( $this, 'load_external_resources' ) ); } add_action( 'elementor/init', array( $this, 'register_breakpoint' ) ); require_once get_theme_file_path('/framework/classes/ajax-manager.php'); $this->ajax_manager = new Modarch_Ajax_Manager(); } 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; } /** * Define Constants * * @since 1.0.0 */ public function constants() {} /** * Load all core theme function files * * @since 1.0.0 */ public function include_functions() { require_once get_theme_file_path('/framework/functions/helpers.php'); require_once get_theme_file_path('/framework/functions/theme-hooks.php'); require_once get_theme_file_path('/framework/functions/theme-functions.php'); require_once get_theme_file_path('/framework/third/lastudio-kit.php'); require_once get_theme_file_path('/framework/third/give.php'); } /** * Configs for 3rd party plugins. * * @since 1.0.0 */ public function configs() { // WooCommerce if(function_exists('WC')){ require_once get_theme_file_path('/framework/woocommerce/woocommerce-config.php'); } } /** * Load theme classes * * @since 1.0.0 */ public function classes() { // Admin only classes if ( is_admin() ) { // Recommend plugins require_once get_theme_file_path('/tgm/class-tgm-plugin-activation.php'); require_once get_theme_file_path('/tgm/tgm-plugin-activation.php'); } require_once get_theme_file_path('/framework/classes/admin.php'); // Breadcrumbs class require_once get_theme_file_path('/framework/classes/breadcrumbs.php'); new Modarch_Admin(); } /** * Theme Setup * * @since 1.0.0 */ public function theme_setup() { $ext = apply_filters('modarch/use_minify_css_file', false) || ( defined('WP_DEBUG') && WP_DEBUG ) ? '' : '.min'; // Load text domain load_theme_textdomain( 'modarch', self::$template_dir_path .'/languages' ); // Get globals global $content_width; // Set content width based on theme's default design if ( ! isset( $content_width ) ) { $content_width = 1200; } // Register navigation menus register_nav_menus( array( 'main-nav' => esc_attr_x( 'Main Navigation', 'admin-view', 'modarch' ) ) ); // Enable support for Post Formats add_theme_support( 'post-formats', array( 'video', 'gallery', 'audio', 'quote', 'link' ) ); // Enable support for tag add_theme_support( 'title-tag' ); // Add default posts and comments RSS feed links to head add_theme_support( 'automatic-feed-links' ); // Enable support for Post Thumbnails on posts and pages add_theme_support( 'post-thumbnails' ); /** * Enable support for header image */ add_theme_support( 'custom-header', apply_filters( 'modarch/filter/custom_header_args', array( 'width' => 2000, 'height' => 1200, 'flex-height' => true, 'video' => true, ) ) ); add_theme_support( 'custom-background' ); // Declare WooCommerce support. add_theme_support( 'woocommerce' ); if( modarch_string_to_bool( modarch_get_theme_mod('woocommerce_gallery_zoom') ) ){ add_theme_support( 'wc-product-gallery-zoom'); } if( modarch_string_to_bool( modarch_get_theme_mod('woocommerce_gallery_lightbox') ) ){ add_theme_support( 'wc-product-gallery-lightbox'); } add_theme_support( 'wc-product-gallery-slider'); // Support WP Job Manager add_theme_support( 'job-manager-templates' ); // Add editor style add_editor_style( 'assets/css/editor-style.css' ); // Adding Gutenberg support add_theme_support( 'align-wide' ); add_theme_support( 'wp-block-styles' ); add_theme_support( 'responsive-embeds' ); add_theme_support( 'editor-styles' ); add_editor_style( 'assets/css/gutenberg-editor.css' ); add_theme_support( 'editor-color-palette', array( array( 'name' => esc_attr_x( 'pale pink', 'admin-view', 'modarch' ), 'slug' => 'pale-pink', 'color' => '#f78DA7', ), array( 'name' => esc_attr_x( 'theme primary', 'admin-view', 'modarch' ), 'slug' => 'modarch-theme-primary', 'color' => '#FF7F1D', ), array( 'name' => esc_attr_x( 'theme secondary', 'admin-view', 'modarch' ), 'slug' => 'modarch-theme-secondary', 'color' => '#303030', ), array( 'name' => esc_attr_x( 'strong magenta', 'admin-view', 'modarch' ), 'slug' => 'strong-magenta', 'color' => '#A156B4', ), array( 'name' => esc_attr_x( 'light grayish magenta', 'admin-view', 'modarch' ), 'slug' => 'light-grayish-magenta', 'color' => '#D0A5DB', ), array( 'name' => esc_attr_x( 'very light gray', 'admin-view', 'modarch' ), 'slug' => 'very-light-gray', 'color' => '#EEEEEE', ), array( 'name' => esc_attr_x( 'very dark gray', 'admin-view', 'modarch' ), 'slug' => 'very-dark-gray', 'color' => '#444444', ), ) ); remove_theme_support( 'widgets-block-editor' ); add_theme_support('lastudio', [ 'lakit-swatches' => true, 'revslider' => true, 'header-builder' => [ 'menu' => true, 'header-vertical' => true ], 'lastudio-kit' => true, 'elementor' => [ 'advanced-carousel' => false, 'ajax-templates' => false, 'css-transform' => false, 'floating-effects' => false, 'wrapper-links' => false, 'lastudio-icon' => true, 'custom-fonts' => true, 'mega-menu' => true, 'product-grid-v2' => true, 'slides-v2' => true, 'inline-icon' => true, 'cart-fragments' => true, 'swiper-dotv2' => true, 'optimize-bnlist' => true, 'newsletter-v2' => true, ], 'e_dynamic_tags' => [ 'wishlist' => true, 'compare' => true, 'cart' => true, 'search' => true, 'my-account' => true, ] ]); } /** * Theme Setup Default * * @since 1.0.0 */ public function theme_setup_default(){ $check_theme = get_option('modarch_has_init', false); if(!$check_theme || !get_option('lastudio-kit-settings')){ $cpt_supports = ['page', 'post']; if( post_type_exists('la_portfolio') ){ $cpt_supports[] = ['la_portfolio']; } if( post_type_exists('give_forms') ){ $cpt_supports[] = ['give_forms']; } update_option('modarch_has_init', true); update_option( 'elementor_cpt_support', $cpt_supports ); update_option( 'elementor_enable_inspector', '' ); update_option( 'elementor_experiment-e_optimized_markup', 'active' ); update_option( 'lastudio-kit-settings', [ 'svg-uploads' => 'enabled', 'lastudio_kit_templates' => 'enabled', 'single_post_template' => 'templates/fullwidth.php', 'single_page_template' => 'templates/fullwidth.php', 'avaliable_extensions' => [ 'album_content_type' => 'false', 'event_content_type' => 'false', 'portfolio_content_type' => 'true', 'motion_effects' => 'true', 'custom_css' => 'true', 'floating_effects' => 'false', 'wrapper_link' => 'false', 'css_transform' => 'false', 'element_visibility' => 'true' ] ] ); $customizes = []; if(!empty($customizes)){ foreach ($customizes as $k => $v){ set_theme_mod($k, $v); } } } } /** * Adds the meta tag to the site header * * @since 1.0.0 */ public function pingback_header() { if ( is_singular() && pings_open() ) { printf( '<link rel="pingback" href="%s">' . "\n", esc_url( get_bloginfo( 'pingback_url' ) ) ); } } /** * Adds the meta tag to the site header * * @since 1.0.0 */ public function apple_mobile_web_app_capable_header() { echo sprintf( '<meta name="mobile-web-app-capable" content="yes">' ); $meta_theme_color = sprintf( '<meta name="theme-color" content="%1$s">', get_theme_mod('primary_color', '#fff')); echo apply_filters( 'modarch_meta_theme_color', $meta_theme_color ); } /** * Adds the meta tag to the site header * * @since 1.0.0 */ public function meta_viewport() { // Meta viewport $viewport = '<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">'; // Apply filters for child theme tweaking echo apply_filters( 'modarch_meta_viewport', $viewport ); } /** * Load scripts in the WP admin * * @since 1.0.0 */ public function admin_scripts() { // Load font icon style wp_enqueue_style( 'modarch-font-lastudioicon', get_theme_file_uri( '/assets/css/lastudioicon.min.css' ), false, '1.0.0' ); wp_enqueue_style( 'modarch-typekit-fonts', $this->enqueue_typekit_fonts_url() , array(), null ); wp_enqueue_style( 'modarch-google-fonts', $this->enqueue_google_fonts_url() , array(), null ); } /** * Load front-end scripts * * @since 1.0.0 */ public function theme_css() { $theme_version = defined('WP_DEBUG') && WP_DEBUG ? time() : MODARCH_THEME_VERSION; $ext = apply_filters('modarch/use_minify_css_file', false) || ( defined('WP_DEBUG') && WP_DEBUG ) ? '' : '.min'; wp_enqueue_style( 'modarch-theme', get_parent_theme_file_uri('/style'.$ext.'.css'), false, $theme_version ); $this->render_extra_style(); $additional_inline_stype = modarch_minimizeCSS($this->extra_style); $inline_handler_name = 'modarch-theme'; if(modarch_is_woocommerce()){ wp_enqueue_style( 'modarch-woocommerce', get_theme_file_uri( '/assets/css/woocommerce'.$ext.'.css' ), false, $theme_version ); $inline_handler_name = 'modarch-woocommerce'; } wp_add_inline_style($inline_handler_name, $additional_inline_stype); } /** * Returns all js needed for the front-end * * @since 1.0.0 */ public function theme_js() { $theme_version = defined('WP_DEBUG') && WP_DEBUG ? time() : MODARCH_THEME_VERSION; $ext = !apply_filters('modarch/use_minify_js_file', true) || ( defined('WP_DEBUG') && WP_DEBUG ) ? '' : '.min'; // Get localized array $localize_array = $this->localize_array(); wp_register_script( 'pace', get_theme_file_uri('/assets/js/lib/pace'.$ext.'.js'), null, $theme_version, true); wp_register_script( 'js-cookie', get_theme_file_uri('/assets/js/lib/js.cookie'.$ext.'.js'), array('jquery'), $theme_version, true); wp_register_script( 'jquery-featherlight', get_theme_file_uri('/assets/js/lib/featherlight'.$ext.'.js') , array('jquery'), $theme_version, true); $dependencies = array( 'jquery', 'js-cookie', 'jquery-featherlight'); if( modarch_string_to_bool( modarch_get_theme_mod('page_preloader') ) ){ $dependencies[] = 'pace'; } if(function_exists('WC')){ $dependencies[] = 'modarch-woocommerce'; } $dependencies = apply_filters('modarch/filter/js_dependencies', $dependencies); wp_enqueue_script('modarch-theme', get_theme_file_uri( '/assets/js/app'.$ext.'.js' ), $dependencies, $theme_version, true); if (is_singular() && comments_open() && get_option('thread_comments')) { wp_enqueue_script('comment-reply'); } if(apply_filters('modarch/filter/force_enqueue_js_external', true)){ wp_localize_script('modarch-theme', 'la_theme_config', $localize_array ); } if(function_exists('la_get_polyfill_inline')){ $polyfill_data = apply_filters('modarch/filter/js_polyfill_data', [ 'modarch-polyfill-object-assign' => [ 'condition' => '\'function\'==typeof Object.assign', 'src' => get_theme_file_uri( '/assets/js/lib/polyfill-object-assign'.$ext.'.js' ), 'version' => $theme_version, ], 'modarch-polyfill-css-vars' => [ 'condition' => 'window.CSS && window.CSS.supports && window.CSS.supports(\'(--foo: red)\')', 'src' => get_theme_file_uri( '/assets/js/lib/polyfill-css-vars'.$ext.'.js' ), 'version' => $theme_version, ], 'modarch-polyfill-promise' => [ 'condition' => '\'Promise\' in window', 'src' => get_theme_file_uri( '/assets/js/lib/polyfill-promise'.$ext.'.js' ), 'version' => $theme_version, ], 'modarch-polyfill-fetch' => [ 'condition' => '\'fetch\' in window', 'src' => get_theme_file_uri( '/assets/js/lib/polyfill-fetch'.$ext.'.js' ), 'version' => $theme_version, ], 'modarch-polyfill-object-fit' => [ 'condition' => '\'objectFit\' in document.documentElement.style', 'src' => get_theme_file_uri( '/assets/js/lib/polyfill-object-fit'.$ext.'.js' ), 'version' => $theme_version, ] ]); $polyfill_inline = la_get_polyfill_inline($polyfill_data); if(!empty($polyfill_inline)){ wp_add_inline_script('modarch-theme', $polyfill_inline, 'before'); } } } public function load_external_resources(){ if(!wp_style_is('elementor-frontend')){ wp_enqueue_style( 'modarch-typekit-fonts', $this->enqueue_typekit_fonts_url() , array(), null ); wp_enqueue_style( 'modarch-google-fonts', $this->enqueue_google_fonts_url() , array(), null ); } } /** * Functions.js localize array * * @since 1.0.0 */ public function localize_array() { $template_cache = modarch_string_to_bool(modarch_get_option('template_cache')); $ext = !apply_filters('modarch/use_minify_js_file', true) || ( defined('WP_DEBUG') && WP_DEBUG ) ? '' : '.min'; $cssFiles = [ get_theme_file_uri ('/assets/css/lastudioicon'.$ext.'.css' ) ]; if(function_exists('WC') && !modarch_is_woocommerce() ){ $cssFiles[] = get_theme_file_uri ('/assets/css/woocommerce'.$ext.'.css' ); } $array = array( 'single_ajax_add_cart' => modarch_string_to_bool( modarch_get_theme_mod('single_ajax_add_cart') ), 'i18n' => array( 'backtext' => esc_attr_x('Back', 'front-view', 'modarch'), 'compare' => array( 'view' => esc_attr_x('Compare List', 'front-view', 'modarch'), 'success' => esc_attr_x('has been added to comparison list.', 'front-view', 'modarch'), 'error' => esc_attr_x('An error occurred ,Please try again !', 'front-view', 'modarch') ), 'wishlist' => array( 'view' => esc_attr_x('View Wishlist', 'front-view', 'modarch'), 'success' => esc_attr_x('has been added to your wishlist.', 'front-view', 'modarch'), 'error' => esc_attr_x('An error occurred, Please try again !', 'front-view', 'modarch') ), 'addcart' => array( 'view' => esc_attr_x('View Cart', 'front-view', 'modarch'), 'success' => esc_attr_x('has been added to your cart', 'front-view', 'modarch'), 'error' => esc_attr_x('An error occurred, Please try again !', 'front-view', 'modarch') ), 'global' => array( 'error' => esc_attr_x('An error occurred ,Please try again !', 'front-view', 'modarch'), 'search_not_found' => esc_attr_x('It seems we can’t find what you’re looking for, please try again !', 'front-view', 'modarch'), 'comment_author' => esc_attr_x('Please enter Name !', 'front-view', 'modarch'), 'comment_email' => esc_attr_x('Please enter Email Address !', 'front-view', 'modarch'), 'comment_rating' => esc_attr_x('Please select a rating !', 'front-view', 'modarch'), 'comment_content' => esc_attr_x('Please enter Comment !', 'front-view', 'modarch'), 'continue_shopping' => esc_attr_x('Continue Shopping', 'front-view', 'modarch'), 'cookie_disabled' => esc_attr_x('We are sorry, but this feature is available only if cookies are enabled on your browser', 'front-view', 'modarch'), 'more_menu' => esc_attr_x('Show More +', 'front-view', 'modarch'), 'less_menu' => esc_attr_x('Show Less', 'front-view', 'modarch'), 'search_view_more' => esc_attr_x('View More', 'front-view', 'modarch'), ) ), 'js_path' => esc_attr(apply_filters('modarch/filter/js_path', self::$template_dir_url . '/assets/js/lib/')), 'js_min' => apply_filters('modarch/use_minify_js_file', true), 'theme_path' => esc_attr(apply_filters('modarch/filter/theme_path', self::$template_dir_url . '/')), 'ajax_url' => esc_attr(admin_url('admin-ajax.php')), 'has_wc' => function_exists('WC' ), 'cache_ttl' => apply_filters('modarch/cache_time_to_life', !$template_cache ? 30 : (60 * 5)), 'local_ttl' => apply_filters('modarch/local_cache_time_to_life', !$template_cache ? 30 : (60 * 60 * 24)), 'home_url' => esc_url(home_url('/')), 'shop_url' => function_exists('wc_get_page_id') ? get_permalink( wc_get_page_id( 'shop' ) ) : home_url('/'), 'current_url' => esc_url( add_query_arg(null,null) ), 'disable_cache' => !$template_cache, 'is_dev' => defined('WP_DEBUG') && WP_DEBUG, 'ajaxGlobal' => [ 'nonce' => $this->ajax_manager->create_nonce(), 'wcNonce' => wp_create_nonce('woocommerce-cart'), 'storeApiNonce' => wp_create_nonce('wc_store_api'), 'action' => 'lastudio_theme_ajax', 'useFront' => 'true', ], 'cssFiles' => $cssFiles, 'themeVersion' => defined('WP_DEBUG') && WP_DEBUG ? time() : MODARCH_THEME_VERSION ); if(function_exists('la_get_wc_script_data') && function_exists('WC')){ $variation_data = la_get_wc_script_data('wc-add-to-cart-variation'); if(!empty($variation_data)){ $array['i18n']['variation'] = $variation_data; } $array['wc_variation'] = [ 'base' => esc_url(WC()->plugin_url()) . '/assets/js/frontend/add-to-cart-variation.min.js', 'wp_util' => esc_url(includes_url('js/wp-util.min.js')), 'underscore' => esc_url(includes_url('js/underscore.min.js')) ]; } // Apply filters and return array return apply_filters( 'modarch/filter/localize_array', $array ); } /** * Add headers for IE to override IE's Compatibility View Settings * * @since 1.0.0 */ public function x_ua_compatible_headers( $headers ) { $headers['X-UA-Compatible'] = 'IE=edge'; return $headers; } /** * Add support for Elementor Pro locations * * @since 1.0.0 */ public function register_elementor_locations( $elementor_theme_manager ) { $elementor_theme_manager->register_all_core_location(); } /** * Registers sidebars * * @since 1.0.0 */ public function register_sidebars() { $heading = 'div'; $heading = apply_filters( 'modarch/filter/sidebar_heading', $heading ); // Default Sidebar register_sidebar( array( 'name' => esc_html__( 'Default Sidebar', 'modarch' ), 'id' => 'sidebar', 'description' => esc_html__( 'Widgets in this area will be displayed in the left or right sidebar area if you choose the Left or Right Sidebar layout.', 'modarch' ), 'before_widget' => '<div id="%1$s" class="widget %2$s">', 'after_widget' => '</div>', 'before_title' => '<'. $heading .' class="widget-title"><span>', 'after_title' => '</span></'. $heading .'>', ) ); } public static function enqueue_google_fonts_url(){ $fonts_url = ''; $fonts = array(); if ( 'off' !== _x( 'on', 'Inter: on or off', 'modarch' ) ) { $fonts[] = 'Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900'; } if ( $fonts ) { $fonts_url = add_query_arg( array( 'family' => implode( '&family=', $fonts ), 'display' => 'swap', ), 'https://fonts.googleapis.com/css2' ); } return $fonts_url; } public static function enqueue_typekit_fonts_url(){ $fonts_url = ''; return esc_url_raw( $fonts_url ); } public function render_extra_style(){ $this->extra_style .= $this->css_page_preload(); } public function css_page_preload(){ ob_start(); include get_parent_theme_file_path('/framework/css/page-preload-css.php'); $content = ob_get_clean(); return $content; } public function register_breakpoint(){ if(defined('ELEMENTOR_VERSION') && class_exists('Elementor\Core\Breakpoints\Manager', false)){ $has_register_breakpoint = get_option('modarch_has_register_breakpoint', false); if(empty($has_register_breakpoint)){ update_option('elementor_experiment-additional_custom_breakpoints', 'active'); update_option('elementor_experiment-container', 'active'); $kit_active_id = Elementor\Plugin::$instance->kits_manager->get_active_id(); $raw_kit_settings = get_post_meta( $kit_active_id, '_elementor_page_settings', true ); if(empty($raw_kit_settings)){ $raw_kit_settings = []; } $default_settings = [ 'space_between_widgets' => '0', 'page_title_selector' => 'h1.entry-title', 'stretched_section_container' => '', 'active_breakpoints' => [ 'viewport_mobile', 'viewport_mobile_extra', 'viewport_tablet', ], 'viewport_mobile' => 639, 'viewport_md' => 640, 'viewport_mobile_extra' => 859, 'viewport_tablet' => 1279, 'viewport_lg' => 1280, 'viewport_laptop' => 1730, 'system_colors' => [ [ '_id' => 'primary', 'title' => esc_html__( 'Primary', 'modarch' ), 'color' => '#101010' ], [ '_id' => 'secondary', 'title' => esc_html__( 'Secondary', 'modarch' ), 'color' => '#101010' ], [ '_id' => 'text', 'title' => esc_html__( 'Text', 'modarch' ), 'color' => '#575757' ], [ '_id' => 'accent', 'title' => esc_html__( 'Accent', 'modarch' ), 'color' => '#101010' ] ], 'system_typography' => [ [ '_id' => 'primary', 'title' => esc_html__( 'Primary', 'modarch' ) ], [ '_id' => 'secondary', 'title' => esc_html__( 'Secondary', 'modarch' ) ], [ '_id' => 'text', 'title' => esc_html__( 'Text', 'modarch' ) ], [ '_id' => 'accent', 'title' => esc_html__( 'Accent', 'modarch' ) ] ] ]; $raw_kit_settings = array_merge($raw_kit_settings, $default_settings); update_post_meta( $kit_active_id, '_elementor_page_settings', $raw_kit_settings ); Elementor\Core\Breakpoints\Manager::compile_stylesheet_templates(); update_option('modarch_has_register_breakpoint', true); } } } } Modarch_Theme_Class::get_instance(); }<!DOCTYPE html> <html lang="en-US"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" /> <title> Pin Ups Wikipedia, Nieograniczona Encyklopedia - Balaji Retail Design Build
Designing for the Future

Pin Ups Wikipedia, Nieograniczona Encyklopedia

pin-up

Jedną z grono wielu modowych misji szczególnych wydaje się być stworzenie pięknej, eleganckiej i zmysłowej kolekcji ubrań na rzecz kobiet na wesele. Na ceremonię zaślubin proponujemy więc sukienki na wesele, kombinezony na wesele, eleganckie bluzki na wesele i spódnice na wesele. W Największym Stopniu znaną pin-up girl była i (nadal) jest Marylin Monroe.

Okres Czterdzieste/piećdziesiąte – Sukienka Acetatowa Midi Duże Kieszenie A-line

Żeby odtworzyć kultowy styl pin-up wraz z lat pięćdziesięciu., stwórz sylwetkę klepsydry. Fason pin-up girl owo symbol figlarnej kobiecości, wdzięku i uroku. W tym wzoru świetnie też odnajdą się ponadczasowe baleriny. Chodzi o identyfikację wspólnych cech (na przykład określenie, którzy konsumenta docelowi są bardziej otwarci na kampanię reklamową albo treści konkretnego typu).

Wyjątkowy Fason Pin Up Girl I Całość Jest To, Co Powinieneś O Przedtem Wiedzieć!

Przed Bettie Page cała sztuka pin-up miała formę ilustracji opartych na nieznanych kobietach. W tym rejonie warto wspomnieć o ilustratorach, twórcach wizerunku typowej pin-up girl. Kobiety w stylu pin-up emanują pozytywną energią i pełną świadomością własnej kobiecości.

Podkręć swoją stylizację w wzoru pin up zbyt pomocą imponujących dodatków. Duże retro okulary przeciwsłoneczne zapewnią odrobinę tajemniczości i szyku. Swoją stylizację zbuduj na bazie nadrzędnych elementów garderoby wraz z lat 40. Zdecyduj Się Na tkaniny w kwiatowe wzory, grochy, kratkę bądź paski, to znaczy czy mogę grać typowe printy w nurcie pin-up. Bluzka odkrywająca ramiona lub dekolt, często przyozdobiona kokardką, doda twojemu pin up lookowi lekkości i zmysłowości. Chociaż kobiety często były postrzegane jak symbole seksu, na wojnie spełniały również procedury propagandowe.

Czym Charakteryzuje Się Fryzura W Nurcie Pin-up?

  • Zmysłowość, kobiece kształty, świeżość – styl pin-up girl pojawił się w latach 30.
  • Nie Zaakceptować tylko ubrania są bardzo ważne w wzoru pin-up girl, lecz również dodatki.
  • W tym stylu świetnie też odnajdą się ponadczasowe baleriny.
  • Pewność własnej osoby, uśmiech i elegancja są nadrzędne, aby osiągnąć autentyczny styl pin-up.
  • Jest zabawny, a jednocześnie wyrafinowany; odważny, a jednocześnie niedopowiedziany; stylowy, a jednocześnie dogodny.
  • Na spontaniczne kawy wraz z przyjaciółką zalecamy sukienki powszednie i tuniki.

Pewność mojej dziurki, uśmiech i elegancja są główne, aby osiągnąć autentyczny fason pin-up. Jeśli chodzi o stylizację, jaką wydaje się fryzura pin-up, krótkie włosy mogą trochę utrudnić jej wykonanie. Najłatwiejszą fryzurą pin-up girl są w naszym przypadku fale i loki.

Marynarskie Paski – Bluzka Na Rzecz Dziewczyny Pin Up

Ubrania w nurcie pin-up girl muszą się wyróżniać nie zaakceptować wyłącznie krojem, jednak także kolorem! Wzór pin-up wraz z sukcesem zaadaptujesz do odwiedzenia powszednich stylizacji. Kluczem wydaje się harmonijne łączenie estetyki retro z współczesnością.

Przygotowaliśmy także subtelną, romantyczną i zwiewną kolekcję, w której sukienki sezonowe wdzięczą się na głównym planie. Dla poprawnych funkcjonalnie estetek proponujemy jakkolwiek piękne sukienki midi oraz sukienki maxi. Ale jej uniwersalny charakter czyni, że nadaje się też w charakterze stylizacja biurowa. Jedną spośród gwiazd kojarzonych z tym stylem była też boska Marilyn Monroe. Zmysłowość, kobiece kształty, świeżość – styl pin-up girl pojawił się w latach 40. Charakteryzują się ów lampy klasycznymi szczegółami, które wciąż zachwycają i inspirują dużej liczby fanów tegoż stylu.

pin-up

Krok Jednej: Ubrania W Stylu Pin Up

A na zachwytach ciepłymi stylizacjami, zaczniemy znów wspólnie odliczać dzionki do odwiedzenia kolejnej ciepłej wiosny, dającej powiew świeżości, również w własnych szafach. Używane Przez Nas stylizacje zmieniają się w który sposób w kalejdoskopie, razem wraz z pogodą zbytnio oknem i zawartość garderoby powinien się do nich na bieżąco dostosowywać. Zwiewne sukienki na lato kuszą lekkością i eterycznym powabem, a ciepłe golfy na zimę skutecznie ochronią Cię poprzednio każdą minusową temperaturą. Ta stylizacja świetnie sprawdzi się zarówno w biznesowej powierzchni, na egzaminie dojrzałości, w jaki to sposób i na zebraniu w szkole. W Avocado Style dominuje kolekcja ponadczasowa, dzięki której stworzysz różnorodne stylizacje na każdą okazję.

Panie, które mają krótką grzywkę, mogą dodatkowo podkręcić ją do odwiedzenia dołu, z kolei kobiety z dłuższą grzywką upiąć ją do góry. Czasem damy pojawiały się w skąpych strojach bądź też w tylko bieliźnie, tymczasem jednakże na projekt pierwszy wysuwały się sukienki w stylu pin-up. Wizerunek pin-up girls pojawiał się najczęściej na plakatach. Mężczyźni chętnie wyrywali plakaty wraz z magazynów, a następnie wieszali je na ścianach – stąd też wzięła się nazwa pin-up. Na bazie naszej kreacji bez kłopotu stworzymy kobiecy look w nurcie pin up girl. Trzeba, że dodamy białą bluzkę w granatowe albo czarne paski.

pin-up

Załączniki W Nurcie Pin-up: Buty, Biżuteria, Opaska Pin-up Girl I Różne Akcesoria

  • Dita Von Teese wciąż udowadnia, że styl pin-up owo nie zaakceptować jedynie moda, lecz także sposób na wyrażenie własnej indywidualności i miłości do estetyki vintage.
  • Pomimo owo panie z krótszymi włosami również mogą spróbować wykonać fryzurę w wzoru retro.
  • Od tegoż “przypinania” wywodzi się tytuł stylu – właśnie tę czynność oznacza słowo pin-up.
  • Szorty z ogromnym stanem są szalenie wygodne i znacznie stanowią 1 z zasadniczych elementów garderoby w wzoru pin-up girl.

Garderoba pin-up podkreśla kobiece kształty, tworząc kuszącą sylwetkę. Pin-up (z ang. pin-up – przypiąć, powiesić) – określenie używane względem trendu wywodzącego się głównie wraz z lat 40.

Minimalistyczne Bluzki Damskie, Eleganckie Spódnice I Błyszczące Akcesoria Tylko W Avocado Style!

pin-up

Nim przejdziemy do odwiedzenia doboru najpiękniejszej sukienki w stylu pin-up, zwróćmy uwagę na szczegóły. Pamiętajmy, że groszki i paski to może być zbyt wiele w jakiejś stylizacji. Bluzkę w paski połączmy wraz z spódnicą bądź spodniami w jednolitym kolorze.

  • Do Odwiedzenia wybrania posiadasz stylowe listonoszki i poręczne kopertówki wraz z magnetycznym zapięciem, stworzone wraz z różnych rodzajów drewna.
  • By odtworzyć związany wraz z kultem wzór pin-up spośród lat pięćdziesiąt., stwórz sylwetkę klepsydry.
  • Pin-up to również dobry makijaż i fryzura, lecz ten rzecz zgłębimy później.
  • Właściwym dodatkiem będą również duże okulary przeciwsłoneczne o kształcie kocich oczu i najkorzystniej w plastikowych oprawkach a także pończochy.
  • Na ceremonię zaślubin oferujemy więc sukienki na wesele, kombinezony na wesele, eleganckie bluzki na wesele i spódnice na wesele.

To one nadadzą prostej stylizacji charakterystycznego wzoru. Oprócz samego ułożenia włosów istotą fryzury pin-up są charakterystyczne dodatki. Oprócz tego fryzura pin-up girl może być ozdobiona dekoracyjnymi spinkami, kokardami bądź wpiętymi kwiatami. Plakaty te błyskawicznie zyskały popularność, zarówno wśród mężczyzn, jakim sposobem i kobiet. Świetnym pomysłem na górę stylizacji wydaje się być też klasyczna biała koszulka w granatowe paski wraz z krótki rękawem. Ubrania nurcie pin-up muszą ładnie eksponować biust, podkreślać talię i biodra.

Do Odwiedzenia wybrania masz stylowe listonoszki i poręczne kopertówki z magnetycznym zapięciem, wykonane wraz z różnych rodzajów drewna. Do zestawu możesz dobrać drewniane okulary przeciwsłoneczne damskie spośród polaryzacją zarówno lustrzane, jakim sposobem i doskonałe. Każda elegancka sukienka letnia koktajlowa zyska wyjątkową oprawę dzięki oryginalnym akcesoriom i dzieje się pełnoprawną kreacją na dowolną okazję.

Pamiętaj aczkolwiek, że opaska w nurcie pin-up owo wyłącznie część całej fryzury. Dzięki nim fason pin-up pozostanie żywy, bowiem wykorzystywane są tej najbardziej charakterystyczne elementy. Styl pin-up zaczął być wykorzystywany w reklamie, szczególnie naszej kierowanej do odwiedzenia kobiet, dotyczącej kosmetyków, odzieży bądź środków czystości! XX stuleciu rozkwitł, stając się prawdziwą ikoną stylu i kobiecości.

Żeby stylizacja pin-up girl była pełna, odrzucić może w tej dziewczyny zabraknąć również odpowiedniego makijażu. Nie możesz też zapomnieć o wyrazistych brwiach i ustach pociągniętych czerwoną szminką. Będziesz zaskoczona, jakim sposobem dogodne były buty z okresu pin-up girls. Po zakończeniu wojny w 1945 roku kalendarzowego najsłynniejszą pin up girl była Bettie Page.

Najpiękniejszym makijażem kobiety wydaje się być szczery, promienny uśmiech. Nie w inny sposób wydaje się być w sytuacji dziewczyny pin up – kobiety na plakatach miały na twarzach uśmiech od momentu ucha do odwiedzenia ucha. Makijaż pin up nakładany na buzia powinien łączyć naturalność spośród podkreślonymi ustami, policzkami i oczami. Mimo jest to panie spośród krótszymi włosami również mogą spróbować wykonać fryzurę w wzoru retro. Fryzura pin-up girl występuje w mnóstwo wariacjach, w związku wraz z czym każda kobieta może znaleźć coś na rzecz własnej osoby.

W związku wraz z tymże, jeśli odrzucić masz okresu, pomysłu, albo po prostu chęci na kreację stylizacji doskonałej, owo w naszej propozycji przygotowaliśmy kategorię niezwykłą. Pragniemy pokazać się spośród w jaki sposób najlepszej strony, proponując kolekcje ubrań dla kobiet wykonanych z najwyższej jakości materiałów. Mamy Nadzieję, że ogromne wyznawane wartości, piękne historie ukryte są właśnie we wnętrzu każdego ubrania. Marzy nam się, by móc Cię ubrać od czasu stóp do odwiedzenia głów, również jeśli idzie o stylowe załączniki w najlepszej dostępnej wersji. Królują wtedy modne sukienki spośród wiskozy na lato, uwielbiamy je za przewiewność i przyjazność upalnym klimatom. By poczuć pełnię modowego szczęścia, do odwiedzenia propozycji zaprosiliśmy także ubrania damskie w swobodnym wersji.

Nie tylko ubrania są bardzo ważne w nurcie pin-up girl, ale również załączniki. Jeżeli wystające końce opaski są nadzwyczaj krótkie, ułóż je w ten sposób, by wyglądały jakim sposobem kokardka lub schowaj je pod spodem spód. Aby ozdoba trzymała się na swoim miejscu za pośrednictwem cały dzień, możesz ją podpiąć wsuwkami. Jedną spośród największych współczesnych ikon stylu pin-up jest Dita Von Teese – tancerka burleski, modelka i projektantka. Dita Von Teese wciąż udowadnia, że styl pin-up to nie wyłącznie moda, lecz także sposób na wyrażenie swojej indywidualności i miłości do odwiedzenia estetyki vintage. Tworzą jego oczywiście najlepsze ubrania, jednak również charakterystyczne retro fryzury, zmysłowy makijaż a także nietuzinkowe załączniki.