| 1 | <?php |
|---|
| 2 | $theme_opt = wp_get_theme(get_template()); |
|---|
| 3 | define('LIGHTNING_THEME_VERSION', $theme_opt->Version); |
|---|
| 4 | /*-------------------------------------------*/ |
|---|
| 5 | /* Theme setup |
|---|
| 6 | /*-------------------------------------------*/ |
|---|
| 7 | /* Load JS |
|---|
| 8 | /*-------------------------------------------*/ |
|---|
| 9 | /* Load CSS |
|---|
| 10 | /*-------------------------------------------*/ |
|---|
| 11 | /*-------------------------------------------*/ |
|---|
| 12 | /* WidgetArea initiate |
|---|
| 13 | /*-------------------------------------------*/ |
|---|
| 14 | /* Year Artchive list 'year' and count insert to inner </a> |
|---|
| 15 | /*-------------------------------------------*/ |
|---|
| 16 | /* Category list 'count insert to inner </a> |
|---|
| 17 | /*-------------------------------------------*/ |
|---|
| 18 | /* Global navigation add cptions |
|---|
| 19 | /*-------------------------------------------*/ |
|---|
| 20 | /* headfix enable |
|---|
| 21 | /*-------------------------------------------*/ |
|---|
| 22 | /* Tag Cloud _ Change font size |
|---|
| 23 | /*-------------------------------------------*/ |
|---|
| 24 | /* HOME _ Default content hidden |
|---|
| 25 | /*-------------------------------------------*/ |
|---|
| 26 | |
|---|
| 27 | /*-------------------------------------------*/ |
|---|
| 28 | /* Theme setup |
|---|
| 29 | /*-------------------------------------------*/ |
|---|
| 30 | |
|---|
| 31 | add_action('after_setup_theme', 'lightning_theme_setup'); |
|---|
| 32 | function lightning_theme_setup() { |
|---|
| 33 | |
|---|
| 34 | global $content_width; |
|---|
| 35 | |
|---|
| 36 | /*-------------------------------------------*/ |
|---|
| 37 | /* Title tag |
|---|
| 38 | /*-------------------------------------------*/ |
|---|
| 39 | add_theme_support( 'title-tag' ); |
|---|
| 40 | |
|---|
| 41 | /*-------------------------------------------*/ |
|---|
| 42 | /* Admin page _ Eye catch |
|---|
| 43 | /*-------------------------------------------*/ |
|---|
| 44 | add_theme_support( 'post-thumbnails' ); |
|---|
| 45 | set_post_thumbnail_size( 320, 180, true ); |
|---|
| 46 | |
|---|
| 47 | /*-------------------------------------------*/ |
|---|
| 48 | /* Custom menu |
|---|
| 49 | /*-------------------------------------------*/ |
|---|
| 50 | register_nav_menus( array( 'Header' => 'Header Navigation', ) ); |
|---|
| 51 | register_nav_menus( array( 'Footer' => 'Footer Navigation', ) ); |
|---|
| 52 | |
|---|
| 53 | load_theme_textdomain('lightning', get_template_directory() . '/languages'); |
|---|
| 54 | |
|---|
| 55 | /*-------------------------------------------*/ |
|---|
| 56 | /* Set content width |
|---|
| 57 | /* (Auto set up to media max with.) |
|---|
| 58 | /*-------------------------------------------*/ |
|---|
| 59 | if ( ! isset( $content_width ) ) $content_width = 750; |
|---|
| 60 | |
|---|
| 61 | /*-------------------------------------------*/ |
|---|
| 62 | /* Admin page _ Add editor css |
|---|
| 63 | /*-------------------------------------------*/ |
|---|
| 64 | add_editor_style('//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.1/css/font-awesome.min.css'); |
|---|
| 65 | if( ! apply_filters('lightning-disable-theme_style', false) ) |
|---|
| 66 | add_editor_style('design_skin/origin/css/editor.css'); |
|---|
| 67 | |
|---|
| 68 | /*-------------------------------------------*/ |
|---|
| 69 | /* Feed Links |
|---|
| 70 | /*-------------------------------------------*/ |
|---|
| 71 | add_theme_support( 'automatic-feed-links' ); |
|---|
| 72 | } |
|---|
| 73 | |
|---|
| 74 | /*-------------------------------------------*/ |
|---|
| 75 | /* Load JS |
|---|
| 76 | /*-------------------------------------------*/ |
|---|
| 77 | |
|---|
| 78 | add_action('wp_enqueue_scripts','lightning_addJs'); |
|---|
| 79 | function lightning_addJs() { |
|---|
| 80 | wp_enqueue_script( 'html5shiv', '//oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js' ); |
|---|
| 81 | wp_script_add_data( 'html5shiv', 'conditional', 'lt IE 9' ); |
|---|
| 82 | wp_enqueue_script( 'respond', '//oss.maxcdn.com/respond/1.4.2/respond.min.js' ); |
|---|
| 83 | wp_script_add_data( 'respond', 'conditional', 'lt IE 9' ); |
|---|
| 84 | wp_enqueue_script( 'lightning-js', get_template_directory_uri().'/js/all_in_header_fixed.min.js', array( 'jquery' ), LIGHTNING_THEME_VERSION ); |
|---|
| 85 | } |
|---|
| 86 | |
|---|
| 87 | /* If you want to remove the header fixed, |
|---|
| 88 | /* you paste the bellow code to your child theme's functions.php or plugin file. |
|---|
| 89 | /*-------------------------------------------*/ |
|---|
| 90 | // add_action('wp_enqueue_scripts','lightning_header_fixed_remove',100); |
|---|
| 91 | // function lightning_header_fixed_remove(){ |
|---|
| 92 | // wp_dequeue_script( 'lightning-js' ); |
|---|
| 93 | // wp_enqueue_script( 'lightning-no-header-fixed-js', get_template_directory_uri().'/js/all.min.js', array( 'jquery' ), LIGHTNING_THEME_VERSION ); |
|---|
| 94 | // } |
|---|
| 95 | |
|---|
| 96 | add_action( 'wp_enqueue_scripts', 'lightning_commentJs' ); |
|---|
| 97 | function lightning_commentJs(){ |
|---|
| 98 | if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { |
|---|
| 99 | wp_enqueue_script( 'comment-reply' ); |
|---|
| 100 | } |
|---|
| 101 | } |
|---|
| 102 | |
|---|
| 103 | /*-------------------------------------------*/ |
|---|
| 104 | /* Load CSS |
|---|
| 105 | /*-------------------------------------------*/ |
|---|
| 106 | add_action('wp_enqueue_scripts', 'lightning_css' ); |
|---|
| 107 | function lightning_css(){ |
|---|
| 108 | wp_enqueue_style( 'font-awesome', get_template_directory_uri().'/library/font-awesome/4.6.1/css/font-awesome.min.css', array(), '4.6.1' ); |
|---|
| 109 | wp_enqueue_style( 'lightning-theme-style', get_stylesheet_uri(), array('lightning-design-style'), LIGHTNING_THEME_VERSION ); |
|---|
| 110 | } |
|---|
| 111 | |
|---|
| 112 | // Load design skin |
|---|
| 113 | add_action('wp_enqueue_scripts', 'lightning_design_css' ); |
|---|
| 114 | function lightning_design_css(){ |
|---|
| 115 | if( ! apply_filters('lightning-disable-theme_style', false) ) |
|---|
| 116 | wp_enqueue_style( 'lightning-design-style', get_template_directory_uri().'/design_skin/origin/css/style.css', array('font-awesome'), LIGHTNING_THEME_VERSION ); |
|---|
| 117 | } |
|---|
| 118 | |
|---|
| 119 | /*-------------------------------------------*/ |
|---|
| 120 | /* Load Theme customizer |
|---|
| 121 | /*-------------------------------------------*/ |
|---|
| 122 | get_template_part( 'functions_customizer' ); |
|---|
| 123 | |
|---|
| 124 | /*-------------------------------------------*/ |
|---|
| 125 | /* Load helpers |
|---|
| 126 | /*-------------------------------------------*/ |
|---|
| 127 | get_template_part( 'functions_helpers' ); |
|---|
| 128 | |
|---|
| 129 | /*-------------------------------------------*/ |
|---|
| 130 | /* Load designskin manager |
|---|
| 131 | /*-------------------------------------------*/ |
|---|
| 132 | get_template_part( 'inc/class-design-manager' ); |
|---|
| 133 | |
|---|
| 134 | /*-------------------------------------------*/ |
|---|
| 135 | /* Load tga(Plugin install) |
|---|
| 136 | /*-------------------------------------------*/ |
|---|
| 137 | get_template_part( 'inc/tgm-plugin-activation/tgm-config' ); |
|---|
| 138 | |
|---|
| 139 | /*-------------------------------------------*/ |
|---|
| 140 | /* Load Front PR Blocks |
|---|
| 141 | /*-------------------------------------------*/ |
|---|
| 142 | get_template_part( 'inc/front-page-pr' ); |
|---|
| 143 | |
|---|
| 144 | /*-------------------------------------------*/ |
|---|
| 145 | /* WidgetArea initiate |
|---|
| 146 | /*-------------------------------------------*/ |
|---|
| 147 | if ( ! function_exists( 'lightning_widgets_init' ) ) { |
|---|
| 148 | function lightning_widgets_init() { |
|---|
| 149 | // sidebar widget area |
|---|
| 150 | register_sidebar( array( |
|---|
| 151 | 'name' => __('Sidebar(Home)', 'lightning' ), |
|---|
| 152 | 'id' => 'front-side-top-widget-area', |
|---|
| 153 | 'before_widget' => '<aside class="widget %2$s" id="%1$s">', |
|---|
| 154 | 'after_widget' => '</aside>', |
|---|
| 155 | 'before_title' => '<h1 class="widget-title subSection-title">', |
|---|
| 156 | 'after_title' => '</h1>', |
|---|
| 157 | ) ); |
|---|
| 158 | register_sidebar( array( |
|---|
| 159 | 'name' => __( 'Sidebar(Common top)', 'lightning' ), |
|---|
| 160 | 'id' => 'common-side-top-widget-area', |
|---|
| 161 | 'before_widget' => '<aside class="widget %2$s" id="%1$s">', |
|---|
| 162 | 'after_widget' => '</aside>', |
|---|
| 163 | 'before_title' => '<h1 class="widget-title subSection-title">', |
|---|
| 164 | 'after_title' => '</h1>', |
|---|
| 165 | ) ); |
|---|
| 166 | register_sidebar( array( |
|---|
| 167 | 'name' => __( 'Sidebar(Common bottom)', 'lightning' ), |
|---|
| 168 | 'id' => 'common-side-bottom-widget-area', |
|---|
| 169 | 'before_widget' => '<aside class="widget %2$s" id="%1$s">', |
|---|
| 170 | 'after_widget' => '</aside>', |
|---|
| 171 | 'before_title' => '<h1 class="widget-title subSection-title">', |
|---|
| 172 | 'after_title' => '</h1>', |
|---|
| 173 | ) ); |
|---|
| 174 | |
|---|
| 175 | // Sidebar( post_type ) |
|---|
| 176 | |
|---|
| 177 | $postTypes = get_post_types(Array('public' => true)); |
|---|
| 178 | |
|---|
| 179 | foreach ($postTypes as $postType) { |
|---|
| 180 | |
|---|
| 181 | // Get post type name |
|---|
| 182 | /*-------------------------------------------*/ |
|---|
| 183 | $post_type_object = get_post_type_object($postType); |
|---|
| 184 | if($post_type_object){ |
|---|
| 185 | // Set post type name |
|---|
| 186 | $postType_name = esc_html($post_type_object->labels->name); |
|---|
| 187 | |
|---|
| 188 | // Set post type widget area |
|---|
| 189 | register_sidebar( array( |
|---|
| 190 | 'name' => sprintf( __( 'Sidebar(%s)', 'lightning' ), $postType_name ), |
|---|
| 191 | 'id' => $postType.'-side-widget-area', |
|---|
| 192 | 'description' => sprintf( __( 'This widget area appears on the %s contents page only.', 'lightning' ), $postType_name ), |
|---|
| 193 | 'before_widget' => '<aside class="widget %2$s" id="%1$s">', |
|---|
| 194 | 'after_widget' => '</aside>', |
|---|
| 195 | 'before_title' => '<h1 class="widget-title subSection-title">', |
|---|
| 196 | 'after_title' => '</h1>', |
|---|
| 197 | ) ); |
|---|
| 198 | } // if($post_type_object){ |
|---|
| 199 | |
|---|
| 200 | } // foreach ($postTypes as $postType) { |
|---|
| 201 | |
|---|
| 202 | // Home content top widget area |
|---|
| 203 | |
|---|
| 204 | register_sidebar( array( |
|---|
| 205 | 'name' => __( 'Home content top', 'lightning' ), |
|---|
| 206 | 'id' => 'home-content-top-widget-area', |
|---|
| 207 | 'before_widget' => '<section class="widget %2$s" id="%1$s">', |
|---|
| 208 | 'after_widget' => '</section>', |
|---|
| 209 | 'before_title' => '<h1 class="mainSection-title">', |
|---|
| 210 | 'after_title' => '</h1>', |
|---|
| 211 | ) ); |
|---|
| 212 | |
|---|
| 213 | // footer upper widget area |
|---|
| 214 | |
|---|
| 215 | register_sidebar( array( |
|---|
| 216 | 'name' => __( 'Widget area of upper footer', 'lightning' ), |
|---|
| 217 | 'id' => 'footer-upper-widget-1', |
|---|
| 218 | 'before_widget' => '<aside class="widget %2$s" id="%1$s">', |
|---|
| 219 | 'after_widget' => '</aside>', |
|---|
| 220 | 'before_title' => '<h1 class="widget-title subSection-title">', |
|---|
| 221 | 'after_title' => '</h1>', |
|---|
| 222 | ) ); |
|---|
| 223 | |
|---|
| 224 | // footer widget area |
|---|
| 225 | |
|---|
| 226 | $footer_widget_area_count = 3; |
|---|
| 227 | $footer_widget_area_count = apply_filters( 'lightning_footer_widget_area_count', $footer_widget_area_count ); |
|---|
| 228 | |
|---|
| 229 | for ( $i = 1; $i <= $footer_widget_area_count ;) { |
|---|
| 230 | register_sidebar( array( |
|---|
| 231 | 'name' => __( 'Footer widget area ', 'lightning' ).$i, |
|---|
| 232 | 'id' => 'footer-widget-'.$i, |
|---|
| 233 | 'before_widget' => '<aside class="widget %2$s" id="%1$s">', |
|---|
| 234 | 'after_widget' => '</aside>', |
|---|
| 235 | 'before_title' => '<h1 class="widget-title subSection-title">', |
|---|
| 236 | 'after_title' => '</h1>', |
|---|
| 237 | ) ); |
|---|
| 238 | $i++; |
|---|
| 239 | } |
|---|
| 240 | |
|---|
| 241 | // LP widget area |
|---|
| 242 | |
|---|
| 243 | $args = Array( |
|---|
| 244 | 'post_type' => 'page', |
|---|
| 245 | 'posts_per_page' => -1, |
|---|
| 246 | 'meta_key' => '_wp_page_template', |
|---|
| 247 | 'meta_value' => 'page-lp.php' |
|---|
| 248 | ); |
|---|
| 249 | $posts = get_posts($args); |
|---|
| 250 | |
|---|
| 251 | if ( $posts ){ |
|---|
| 252 | foreach ($posts as $key => $post) { |
|---|
| 253 | register_sidebar( array( |
|---|
| 254 | 'name' => __( 'LP widget "', 'lightning' ).esc_html($post->post_title).'"', |
|---|
| 255 | 'id' => 'lp-widget-'.$post->ID, |
|---|
| 256 | 'before_widget' => '<section class="widget %2$s" id="%1$s">', |
|---|
| 257 | 'after_widget' => '</section>', |
|---|
| 258 | 'before_title' => '<h1 class="mainSection-title">', |
|---|
| 259 | 'after_title' => '</h1>', |
|---|
| 260 | ) ); |
|---|
| 261 | } |
|---|
| 262 | } |
|---|
| 263 | wp_reset_postdata(); |
|---|
| 264 | } |
|---|
| 265 | } // if ( ! function_exists( 'lightning_widgets_init' ) ) { |
|---|
| 266 | add_action( 'widgets_init', 'lightning_widgets_init' ); |
|---|
| 267 | |
|---|
| 268 | /*-------------------------------------------*/ |
|---|
| 269 | /* Year Artchive list 'year' and count insert to inner </a> |
|---|
| 270 | /*-------------------------------------------*/ |
|---|
| 271 | function lightning_archives_link($html){ |
|---|
| 272 | return preg_replace('@</a>(.+?)</li>@', '\1</a></li>', $html); |
|---|
| 273 | } |
|---|
| 274 | add_filter('get_archives_link', 'lightning_archives_link'); |
|---|
| 275 | |
|---|
| 276 | /*-------------------------------------------*/ |
|---|
| 277 | /* Category list count insert to inner </a> |
|---|
| 278 | /*-------------------------------------------*/ |
|---|
| 279 | function lightning_list_categories( $output, $args ) { |
|---|
| 280 | $output = preg_replace('/<\/a>\s*\((\d+)\)/',' ($1)</a>',$output); |
|---|
| 281 | return $output; |
|---|
| 282 | } |
|---|
| 283 | add_filter( 'wp_list_categories', 'lightning_list_categories', 10, 2 ); |
|---|
| 284 | |
|---|
| 285 | /*-------------------------------------------*/ |
|---|
| 286 | /* Global navigation add cptions |
|---|
| 287 | /*-------------------------------------------*/ |
|---|
| 288 | class description_walker extends Walker_Nav_Menu { |
|---|
| 289 | function start_el(&$output, $item, $depth = 0, $args = array(), $id = 0) { |
|---|
| 290 | global $wp_query; |
|---|
| 291 | $indent = ( $depth ) ? str_repeat( "\t", $depth ) : ''; |
|---|
| 292 | |
|---|
| 293 | $class_names = $value = ''; |
|---|
| 294 | |
|---|
| 295 | $classes = empty( $item->classes ) ? array() : (array) $item->classes; |
|---|
| 296 | |
|---|
| 297 | $class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item ) ); |
|---|
| 298 | $class_names = ' class="'. esc_attr( $class_names ) . '"'; |
|---|
| 299 | $output .= $indent . '<li id="menu-item-'. $item->ID . '"' . $value . $class_names .'>'; |
|---|
| 300 | |
|---|
| 301 | $attributes = ! empty( $item->attr_title ) ? ' title="' . esc_attr( $item->attr_title ) .'"' : ''; |
|---|
| 302 | $attributes .= ! empty( $item->target ) ? ' target="' . esc_attr( $item->target ) .'"' : ''; |
|---|
| 303 | $attributes .= ! empty( $item->xfn ) ? ' rel="' . esc_attr( $item->xfn ) .'"' : ''; |
|---|
| 304 | $attributes .= ! empty( $item->url ) ? ' href="' . esc_attr( $item->url ) .'"' : ''; |
|---|
| 305 | |
|---|
| 306 | $prepend = '<strong class="gMenu_name">'; |
|---|
| 307 | $append = '</strong>'; |
|---|
| 308 | $description = ! empty( $item->description ) ? '<span class="gMenu_description">'.esc_attr( $item->description ).'</span>' : ''; |
|---|
| 309 | |
|---|
| 310 | if($depth != 0) { |
|---|
| 311 | $description = $append = $prepend = ""; |
|---|
| 312 | } |
|---|
| 313 | |
|---|
| 314 | $item_output = $args->before; |
|---|
| 315 | $item_output .= '<a'. $attributes .'>'; |
|---|
| 316 | $item_output .= $args->link_before .$prepend.apply_filters( 'the_title', $item->title, $item->ID ).$append; |
|---|
| 317 | $item_output .= $description.$args->link_after; |
|---|
| 318 | $item_output .= '</a>'; |
|---|
| 319 | $item_output .= $args->after; |
|---|
| 320 | |
|---|
| 321 | $output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args ); |
|---|
| 322 | } |
|---|
| 323 | } |
|---|
| 324 | |
|---|
| 325 | /*-------------------------------------------*/ |
|---|
| 326 | /* headfix enable |
|---|
| 327 | /*-------------------------------------------*/ |
|---|
| 328 | add_filter( 'body_class', 'lightning_body_class' ); |
|---|
| 329 | function lightning_body_class( $class ){ |
|---|
| 330 | // header fix |
|---|
| 331 | if( apply_filters( 'lightning_headfix_enable', true ) ) { |
|---|
| 332 | $class[] = 'headfix'; |
|---|
| 333 | } |
|---|
| 334 | // header height changer |
|---|
| 335 | if( apply_filters( 'lightning_header_height_changer_enable', true ) ) { |
|---|
| 336 | $class[] = 'header_height_changer'; |
|---|
| 337 | } |
|---|
| 338 | return $class; |
|---|
| 339 | } |
|---|
| 340 | |
|---|
| 341 | // lightning headfix disabel sample |
|---|
| 342 | /* |
|---|
| 343 | add_filter( 'lightning_headfix_enable', 'lightning_headfix_disabel'); |
|---|
| 344 | function lightning_headfix_disabel(){ |
|---|
| 345 | return false; |
|---|
| 346 | } |
|---|
| 347 | */ |
|---|
| 348 | |
|---|
| 349 | // lightning header height changer disabel sample |
|---|
| 350 | /* |
|---|
| 351 | add_filter( 'lightning_header_height_changer_enable', 'lightning_header_height_changer_disabel'); |
|---|
| 352 | function lightning_header_height_changer_disabel(){ |
|---|
| 353 | return false; |
|---|
| 354 | } |
|---|
| 355 | */ |
|---|
| 356 | |
|---|
| 357 | /*------------------------------------------- |
|---|
| 358 | /* Tag Cloud _ Change font size |
|---|
| 359 | /*-------------------------------------------*/ |
|---|
| 360 | function lightning_tag_cloud_filter($args) { |
|---|
| 361 | $args['smallest'] = 10; |
|---|
| 362 | $args['largest'] = 10; |
|---|
| 363 | return $args; |
|---|
| 364 | } |
|---|
| 365 | add_filter('widget_tag_cloud_args', 'lightning_tag_cloud_filter'); |
|---|
| 366 | |
|---|
| 367 | /*-------------------------------------------*/ |
|---|
| 368 | /* HOME _ Default content hidden |
|---|
| 369 | /*-------------------------------------------*/ |
|---|
| 370 | add_filter( 'is_lightning_home_content_display', 'lightning_home_content_hidden' ); |
|---|
| 371 | function lightning_home_content_hidden( $flag ){ |
|---|
| 372 | global $lightning_theme_options; |
|---|
| 373 | if ( isset($lightning_theme_options['top_default_content_hidden']) && $lightning_theme_options['top_default_content_hidden'] ) { |
|---|
| 374 | $flag = false; |
|---|
| 375 | } |
|---|
| 376 | return $flag; |
|---|
| 377 | } |
|---|