Make WordPress Themes

source: lightning/3.0.2/functions.php

Last change on this file was 72916, checked in by themedropbox, 9 years ago

New version of Lightning - 3.0.2

File size: 13.5 KB
Line 
1<?php
2$theme_opt = wp_get_theme(get_template());
3define('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
31add_action('after_setup_theme', 'lightning_theme_setup');
32function 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
78add_action('wp_enqueue_scripts','lightning_addJs');
79function 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
96add_action( 'wp_enqueue_scripts', 'lightning_commentJs' );
97function 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/*-------------------------------------------*/
106add_action('wp_enqueue_scripts', 'lightning_css' );
107function 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
113add_action('wp_enqueue_scripts', 'lightning_design_css' );
114function 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/*-------------------------------------------*/
122get_template_part( 'functions_customizer' );
123
124/*-------------------------------------------*/
125/*      Load helpers
126/*-------------------------------------------*/
127get_template_part( 'functions_helpers' );
128
129/*-------------------------------------------*/
130/*      Load designskin manager
131/*-------------------------------------------*/
132get_template_part( 'inc/class-design-manager' );
133
134/*-------------------------------------------*/
135/*      Load tga(Plugin install)
136/*-------------------------------------------*/
137get_template_part( 'inc/tgm-plugin-activation/tgm-config' );
138
139/*-------------------------------------------*/
140/*      Load Front PR Blocks
141/*-------------------------------------------*/
142get_template_part( 'inc/front-page-pr' );
143
144/*-------------------------------------------*/
145/*      WidgetArea initiate
146/*-------------------------------------------*/
147if ( ! function_exists( 'lightning_widgets_init' ) ) {
148function 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' ) ) {
266add_action( 'widgets_init', 'lightning_widgets_init' );
267
268/*-------------------------------------------*/
269/*      Year Artchive list 'year' and count insert to inner </a>
270/*-------------------------------------------*/
271function lightning_archives_link($html){
272  return preg_replace('@</a>(.+?)</li>@', '\1</a></li>', $html);
273}
274add_filter('get_archives_link', 'lightning_archives_link');
275
276/*-------------------------------------------*/
277/*      Category list count insert to inner </a>
278/*-------------------------------------------*/
279function lightning_list_categories( $output, $args ) {
280        $output = preg_replace('/<\/a>\s*\((\d+)\)/',' ($1)</a>',$output);
281        return $output;
282}
283add_filter( 'wp_list_categories', 'lightning_list_categories', 10, 2 );
284
285/*-------------------------------------------*/
286/*      Global navigation add cptions
287/*-------------------------------------------*/
288class 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/*-------------------------------------------*/
328add_filter( 'body_class', 'lightning_body_class' );
329function 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/*
343add_filter( 'lightning_headfix_enable', 'lightning_headfix_disabel');
344function lightning_headfix_disabel(){
345        return false;
346}
347*/
348
349// lightning header height changer disabel sample
350/*
351add_filter( 'lightning_header_height_changer_enable', 'lightning_header_height_changer_disabel');
352function lightning_header_height_changer_disabel(){
353        return false;
354}
355*/
356
357/*-------------------------------------------
358/*      Tag Cloud _ Change font size
359/*-------------------------------------------*/
360function lightning_tag_cloud_filter($args) {
361        $args['smallest'] = 10;
362        $args['largest'] = 10;
363        return $args;
364}
365add_filter('widget_tag_cloud_args', 'lightning_tag_cloud_filter');
366
367/*-------------------------------------------*/
368/*      HOME _ Default content hidden
369/*-------------------------------------------*/
370add_filter( 'is_lightning_home_content_display', 'lightning_home_content_hidden' );
371function 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}
Note: See TracBrowser for help on using the repository browser.