Completed
Push — master ( 911fab...2cd94c )
by Md. Mozahidur
06:00
created

functions.php (1 issue)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
/**
3
 * Lighthouse functions and definitions.
4
 *
5
 * @link https://developer.wordpress.org/themes/basics/theme-functions/
6
 *
7
 * @package Lighthouse
8
 */
9
10
if ( ! function_exists( 'lighthouse_setup' ) ) :
11
/**
12
 * Sets up theme defaults and registers support for various WordPress features.
13
 *
14
 * Note that this function is hooked into the after_setup_theme hook, which
15
 * runs before the init hook. The init hook is too late for some features, such
16
 * as indicating support for post thumbnails.
17
 */
18
function lighthouse_setup() {
19
	/*
20
	 * Make theme available for translation.
21
	 * Translations can be filed in the /languages/ directory.
22
	 * If you're building a theme based on Lighthouse, use a find and replace
23
	 * to change 'lighthouse' to the name of your theme in all the template files.
24
	 */
25
	load_theme_textdomain( 'lighthouse', get_template_directory() . '/languages' );
26
27
	// Add default posts and comments RSS feed links to head.
28
	add_theme_support( 'automatic-feed-links' );
29
30
	/*
31
	 * Let WordPress manage the document title.
32
	 * By adding theme support, we declare that this theme does not use a
33
	 * hard-coded <title> tag in the document head, and expect WordPress to
34
	 * provide it for us.
35
	 */
36
	add_theme_support( 'title-tag' );
37
38
	/*
39
	 * Enable support for Post Thumbnails on posts and pages.
40
	 *
41
	 * @link https://developer.wordpress.org/themes/functionality/featured-images-post-thumbnails/
42
	 */
43
	add_theme_support( 'post-thumbnails' );
44
45
	add_image_size( 'lighthouse_feature_img', 1000, 310, array( 'center', 'center' ) );
46
47
	add_image_size( 'lighthouse_blog_listing', 714, 274, array( 'center', 'center' ) );
48
49
	add_image_size( 'lighthouse_related_post', 475, 280, array( 'center', 'center' ) );
50
51
	/*
52
	 * Default HTML5 Form
53
	 *
54
	 * @link https://codex.wordpress.org/Function_Reference/get_search_form
55
	 */
56
	add_theme_support( 'html5', array( 'search-form' ) ); 
57
58
	// This theme uses wp_nav_menu() in one location.
59
	register_nav_menus( array(
60
		'primary' => esc_html__( 'Primary', 'lighthouse' ),
61
	) );
62
63
64
	/*
65
	 * Lighthouse custom header menus
66
	 *
67
	 */
68
	function lighthouse_menus() {
69
		register_nav_menus(
70
			array(
71
				'header-menu-left' => __( 'Header menu left', 'nav menu location', 'lighthouse' ),
72
				'header-menu-right' => __( 'Header menu right' , 'nav menu location', 'lighthouse'),
73
				'footer-menu' => __( 'Footer menu' , 'nav menu location', 'lighthouse'),
74
				'footer-menu-bottom' => __( 'Footer menu bottom' , 'nav menu location', 'lighthouse')
75
				)
76
			);
77
	}
78
	add_action( 'init', 'lighthouse_menus' );
79
80
	/*
81
	 * Switch default core markup for search form, comment form, and comments
82
	 * to output valid HTML5.
83
	 */
84
	add_theme_support( 'html5', array(
85
		'search-form',
86
		'comment-form',
87
		'comment-list',
88
		'gallery',
89
		'caption',
90
	) );
91
92
	/*
93
	 * Enable support for Post Formats.
94
	 * See https://developer.wordpress.org/themes/functionality/post-formats/
95
	 */
96
	add_theme_support( 'post-formats', array(
97
		'aside',
98
		'image',
99
		'video',
100
		'quote',
101
		'link',
102
	) );
103
104
	// Set up the WordPress core custom background feature.
105
	add_theme_support( 'custom-background', apply_filters( 'lighthouse_custom_background_args', array(
106
		'default-color' => 'ffffff',
107
		'default-image' => '',
108
	) ) );
109
}
110
endif;
111
add_action( 'after_setup_theme', 'lighthouse_setup' );
112
113
/**
114
 * Set the content width in pixels, based on the theme's design and stylesheet.
115
 *
116
 * Priority 0 to make it available to lower priority callbacks.
117
 *
118
 * @global int $content_width
119
 */
120
function lighthouse_content_width() {
121
	$GLOBALS['content_width'] = apply_filters( 'lighthouse_content_width', 640 );
122
}
123
add_action( 'after_setup_theme', 'lighthouse_content_width', 0 );
124
125
/**
126
 * Register widget area.
127
 *
128
 * @link https://developer.wordpress.org/themes/functionality/sidebars/#registering-a-sidebar
129
 */
130 View Code Duplication
function lighthouse_widgets_init() {
131
	register_sidebar( array(
132
		'name'          => esc_html__( 'Sidebar', 'lighthouse' ),
133
		'id'            => 'sidebar-1',
134
		'description'   => '',
135
		'before_widget' => '<section id="%1$s" class="widget %2$s">',
136
		'after_widget'  => '</section>',
137
		'before_title'  => '<h2 class="widget-title">',
138
		'after_title'   => '</h2>',
139
	) );
140
}
141
add_action( 'widgets_init', 'lighthouse_widgets_init' );
142
143
/**
144
 * Enqueue scripts and styles.
145
 */
146
function lighthouse_scripts() {
147
148
	wp_enqueue_style( 'lighthouse-font-awesome-css', get_template_directory_uri() . '/css/font-awesome.min.css');
149
150
	wp_enqueue_style( 'lighthouse-style', get_stylesheet_uri() );
151
152
	wp_enqueue_style('lighthouse-google-fonts', 'https://fonts.googleapis.com/css?family=Questrial');
153
154
	//wp_enqueue_style('lighthouse-owl-carousel-css', get_template_directory_uri() . '/css/owl.carousel.css');
155
156
	wp_enqueue_script( 'lighthouse-classList-js', 'https://cdnjs.cloudflare.com/ajax/libs/classlist/2014.01.31/classList.min.js', array('jquery'), '');
157
158
	wp_enqueue_script( 'lighthouse-bootstrap-js', get_template_directory_uri() . '/js/bootstrap.min.js', array('jquery'), '', true );
159
160
	wp_enqueue_script( 'lighthouse-material-menu-js', get_template_directory_uri() . '/js/materialMenu.js', array('jquery'), '', true );
161
162
	wp_enqueue_script( 'lighthouse-owl-carousel-js', get_template_directory_uri() . '/js/owl-carousel.js', array('jquery'), '', true );
163
164
	wp_enqueue_script( 'lighthouse-navigation', get_template_directory_uri() . '/js/navigation.js', array(), '20120206', true );
165
166
	wp_enqueue_script( 'lighthouse-settings-js', get_template_directory_uri() . '/js/lighthouse-settings.js', array('jquery'), '', true );
167
168
	wp_enqueue_script( 'lighthouse-skip-link-focus-fix', get_template_directory_uri() . '/js/skip-link-focus-fix.js', array(), '20130115', true );
169
170
	if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
171
		wp_enqueue_script( 'comment-reply' );
172
	}
173
}
174
add_action( 'wp_enqueue_scripts', 'lighthouse_scripts' );
175
176
177
/**
178
 * Read More button in excerpt
179
 */
180
function new_excerpt_more( $more ) {
181
    return ' ';
182
}
183
add_filter( 'excerpt_more', 'new_excerpt_more' );
184
185
/**
186
 * Custome Lenght of excerpt
187
 */
188
function custom_excerpt_length( $length ) {
0 ignored issues
show
The parameter $length is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
189
    return 18;
190
}
191
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
192
193
194
//callback function for the 'clear_content' shortcode
195
function recent_post_slider($atts){
196
197
	echo'<div class="post-slider row"><div id="recent-posts" class="owl-carousel">';
198
199
	global $post;
200
201
	$post_query = new WP_Query( array(
202
		'post_type' => 'post',
203
		'posts_per_page' => 12,
204
		'order'=>'DESC',
205
		'orderby' => 'date',
206
		)
207
	);
208
209
	if( $post_query->have_posts() ) : while( $post_query->have_posts() ) : $post_query->the_post();
210
211
		$thumb_post = wp_get_attachment_image_src( get_post_thumbnail_id(), 'lighthouse_related_post');
212
		$url_post = $thumb_post[0];
213
		$content = get_the_content();
214
215
		echo '<div class="col-xs-12"><div class="thumbnail thumbnail-hover">';
216
217
		echo'<img class="img-responsive" src=" ' . $url_post . '">';
218
219
		echo '<a href=" ' . get_permalink() .' " " title=" ' .  get_the_title() .' " class="overlay"></a>';
220
221
		echo'</div>';
222
		
223
		echo'<div class="entry">';
224
225
		echo '<h3><a href=" ' . get_permalink() . ' "> ' . get_the_title() . '</a></h3>';
226
227
		echo '<span class="date"> <i class="fa fa-clock-o"></i> ' . get_the_time(get_option('date_format')) .'</span>';
228
		
229
		echo '<div class="entry-content">' . wp_trim_words( $content , '27' ) . '</div>';
230
231
		echo '<div class="read-more">';
232
233
		echo '<a href="' . get_permalink() . ' " class="btn read-more-btn">View Article</a>';
234
235
		echo '</div>';
236
237
		echo '</div></div>';
238
239
		endwhile;
240
	    wp_reset_postdata();
241
	endif;
242
		
243
		echo '</div></div>';
244
245
}
246
//add the new 'recent_posts' shortcode
247
add_shortcode('recent_posts','recent_post_slider');
248
249
// Numbered Pagination
250
function pagination($pages = '', $range = 4)
251
{  
252
     $showitems = ($range * 2)+1;  
253
 
254
     global $paged;
255
     if(empty($paged)) $paged = 1;
256
 
257
     if($pages == '')
258
     {
259
         global $wp_query;
260
         $pages = $wp_query->max_num_pages;
261
         if(!$pages)
262
         {
263
             $pages = 1;
264
         }
265
     }   
266
 
267
     if(1 != $pages)
268
     {
269
         echo "<div class=\"pagination\"><span>Page ".$paged." of ".$pages."</span>";
270
         if($paged > 2 && $paged > $range+1 && $showitems < $pages) echo "<a href='".get_pagenum_link(1)."'>&laquo; First</a>";
271 View Code Duplication
         if($paged > 1 && $showitems < $pages) echo "<a href='".get_pagenum_link($paged - 1)."'>&lsaquo; Previous</a>";
272
 
273
         for ($i=1; $i <= $pages; $i++)
274
         {
275
             if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems ))
276
             {
277
                 echo ($paged == $i)? "<span class=\"current\">".$i."</span>":"<a href='".get_pagenum_link($i)."' class=\"inactive\">".$i."</a>";
278
             }
279
         }
280
 
281 View Code Duplication
         if ($paged < $pages && $showitems < $pages) echo "<a href=\"".get_pagenum_link($paged + 1)."\">Next &rsaquo;</a>";  
282
         if ($paged < $pages-1 &&  $paged+$range-1 < $pages && $showitems < $pages) echo "<a href='".get_pagenum_link($pages)."'>Last &raquo;</a>";
283
         echo "</div>\n";
284
     }
285
}
286
287
/**
288
 * Implement the Custom Header feature.
289
 */
290
require get_template_directory() . '/inc/custom-header.php';
291
292
/**
293
 * Custom template tags for this theme.
294
 */
295
require get_template_directory() . '/inc/template-tags.php';
296
297
/**
298
 * Custom functions that act independently of the theme templates.
299
 */
300
require get_template_directory() . '/inc/extras.php';
301
302
/**
303
 * Customizer additions.
304
 */
305
require get_template_directory() . '/inc/customizer.php';
306
307
/**
308
 * Load Jetpack compatibility file.
309
 */
310
require get_template_directory() . '/inc/jetpack.php';
311