View difference between Paste ID: B8dnyvVa and
SHOW: | | - or go back to the newest paste.
1-
1+
<?php
2
/**
3
 * Starkers functions and definitions
4
 *
5
 * @package WordPress
6
 * @subpackage Starkers
7
 * @since Starkers HTML5 3.0
8
 */
9
10
/** Tell WordPress to run starkers_setup() when the 'after_setup_theme' hook is run. */
11
add_action( 'after_setup_theme', 'starkers_setup' );
12
13
if ( ! function_exists( 'starkers_setup' ) ):
14
/**
15
 * Sets up theme defaults and registers support for various WordPress features.
16
 *
17
 * @since Starkers HTML5 3.0
18
 */
19
function starkers_setup() {
20
21
	// This theme uses post thumbnails
22
	add_theme_support( 'post-thumbnails' );
23
24
	// Add default posts and comments RSS feed links to head
25
	add_theme_support( 'automatic-feed-links' );
26
        
27
        // Add support for visual editor stylesheet
28
        add_editor_style('editor-style.css');
29
30
	// Make theme available for translation
31
	// Translations can be filed in the /languages/ directory
32
	load_theme_textdomain( 'starkers', TEMPLATEPATH . '/languages' );
33
34
	$locale = get_locale();
35
	$locale_file = TEMPLATEPATH . "/languages/$locale.php";
36
	if ( is_readable( $locale_file ) )
37
		require_once( $locale_file );
38
39
	// This theme uses wp_nav_menu() in one location.
40
	register_nav_menus( array(
41
		'primary' => __( 'Primary Navigation', 'starkers' ),
42
	) );
43
}
44
endif;
45
46
47
function appglobe_jquery_enqueue() { 
48
   if (is_admin()) return; 
49
   global $wp_scripts; 
50
   $cdn_script_in_footer = false; 
51
52
   if (is_a($wp_scripts, 'WP_Scripts') && isset($wp_scripts->registered['jquery'])) {
53
      $registered_jquery_version = $wp_scripts -> registered[jquery] -> ver; 
54
55
      if($registered_jquery_version) {
56
         $google_jquery_url = ($_SERVER['SERVER_PORT'] == 443 ? "https" : "http") . 
57
         "://ajax.googleapis.com/ajax/libs/jquery/$registered_jquery_version/jquery.min.js";
58
59
         if(200 === wp_remote_retrieve_response_code(wp_remote_head($google_jquery_url))) {
60
         wp_deregister_script('jquery');
61
         wp_register_script('jquery', $google_jquery_url , false, null, $cdn_script_in_footer);
62
         }
63
      }
64
   }
65
    wp_enqueue_script('jquery');
66
    wp_enqueue_style('jscrollpane', get_bloginfo('template_directory') . '/js/jScrollPane.css' );
67
    wp_enqueue_script('jscrollpane', get_bloginfo('template_directory') . '/js/jScrollPane.js', array('jquery') );
68
    wp_enqueue_script('jscroll', get_bloginfo('template_directory') . '/js/jScroll.js', array('jquery') );
69
    wp_enqueue_script('wpa_script', get_bloginfo('template_directory') . '/js/wpascript.js', array('jquery') );
70
}
71
add_action('wp_enqueue_scripts', 'appglobe_jquery_enqueue', 11);
72
73
/**
74
 * Set our wp_nav_menu() fallback, starkers_menu().
75
 *
76
 * @since Starkers HTML5 3.0
77
 */
78
function starkers_menu() {
79
	echo '<nav><ul><li><a href="'.get_bloginfo('url').'">Home</a></li>';
80
	wp_list_pages('title_li=');
81
	echo '</ul></nav>';
82
}
83
84
/**
85
 * Remove inline styles printed when the gallery shortcode is used.
86
 *
87
 * @since Starkers HTML5 3.2
88
 */
89
add_filter( 'use_default_gallery_style', '__return_false' );
90
91
/**
92
 * @since Starkers HTML5 3.0
93
 * @deprecated in Starkers HTML5 3.2 for WordPress 3.1
94
 *
95
 * @return string The gallery style filter, with the styles themselves removed.
96
 */
97
function starkers_remove_gallery_css( $css ) {
98
	return preg_replace( "#<style type='text/css'>(.*?)</style>#s", '', $css );
99
}
100
// Backwards compatibility with WordPress 3.0.
101
if ( version_compare( $GLOBALS['wp_version'], '3.1', '<' ) )
102
	add_filter( 'gallery_style', 'starkers_remove_gallery_css' );
103
104
if ( ! function_exists( 'starkers_comment' ) ) :
105
/**
106
 * Template for comments and pingbacks.
107
 *
108
 * @since Starkers HTML5 3.0
109
 */
110
function starkers_comment( $comment, $args, $depth ) {
111
	$GLOBALS['comment'] = $comment;
112
	switch ( $comment->comment_type ) :
113
		case '' :
114
	?>
115
	<article <?php comment_class(); ?> id="comment-<?php comment_ID() ?>">
116
			<?php echo get_avatar( $comment, 40 ); ?>
117
			<?php printf( __( '%s says:', 'starkers' ), sprintf( '%s', get_comment_author_link() ) ); ?>
118
		<?php if ( $comment->comment_approved == '0' ) : ?>
119
			<?php _e( 'Your comment is awaiting moderation.', 'starkers' ); ?>
120
			<br />
121
		<?php endif; ?>
122
123
		<a href="<?php echo esc_url( get_comment_link( $comment->comment_ID ) ); ?>">
124
			<?php
125
				/* translators: 1: date, 2: time */
126
				printf( __( '%1$s at %2$s', 'starkers' ), get_comment_date(),  get_comment_time() ); ?></a><?php edit_comment_link( __( '(Edit)', 'starkers' ), ' ' );
127
			?>
128
129
		<?php comment_text(); ?>
130
131
			<?php comment_reply_link( array_merge( $args, array( 'depth' => $depth, 'max_depth' => $args['max_depth'] ) ) ); ?>
132
133
	<?php
134
			break;
135
		case 'pingback'  :
136
		case 'trackback' :
137
	?>
138
	<article <?php comment_class(); ?> id="comment-<?php comment_ID() ?>">
139
		<p><?php _e( 'Pingback:', 'starkers' ); ?> <?php comment_author_link(); ?><?php edit_comment_link( __('(Edit)', 'starkers'), ' ' ); ?></p>
140
	<?php
141
			break;
142
	endswitch;
143
}
144
endif;
145
146
/**
147
 * Closes comments and pingbacks with </article> instead of </li>.
148
 *
149
 * @since Starkers HTML5 3.0
150
 */
151
function starkers_comment_close() {
152
	echo '</article>';
153
}
154
155
/**
156
 * Adjusts the comment_form() input types for HTML5.
157
 *
158
 * @since Starkers HTML5 3.0
159
 */
160
function starkers_fields($fields) {
161
$commenter = wp_get_current_commenter();
162
$req = get_option( 'require_name_email' );
163
$aria_req = ( $req ? " aria-required='true'" : '' );
164
$fields =  array(
165
	'author' => '<p><label for="author">' . __( 'Name' ) . '</label> ' . ( $req ? '*' : '' ) .
166
	'<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' /></p>',
167
	'email'  => '<p><label for="email">' . __( 'Email' ) . '</label> ' . ( $req ? '*' : '' ) .
168
	'<input id="email" name="email" type="email" value="' . esc_attr(  $commenter['comment_author_email'] ) . '" size="30"' . $aria_req . ' /></p>',
169
	'url'    => '<p><label for="url">' . __( 'Website' ) . '</label>' .
170
	'<input id="url" name="url" type="url" value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="30" /></p>',
171
);
172
return $fields;
173
}
174
add_filter('comment_form_default_fields','starkers_fields');
175
176
/**
177
 * Register widgetized areas.
178
 *
179
 * @since Starkers HTML5 3.0
180
 */
181
function starkers_widgets_init() {
182
183
	register_sidebar( array(
184
		'name' => __( 'Laurel Widget Area', 'starkers' ),
185
		'id' => 'laurel-widget-area',
186
		'description' => __( 'Laurels in the header - use one image, and make sure it is a transparent PNG no larger than 165px tall by 540px wide.', 'starkers' ),
187
		'before_widget' => '<div id="laurels">',
188
		'after_widget' => '</div><!-- #laurels -->',
189
		'before_title' => '<h3>',
190
		'after_title' => '</h3>',
191
	) );
192
193
194
	register_sidebar( array(
195
		'name' => __( 'Social Media Widget Area', 'starkers' ),
196
		'id' => 'social-widget-area',
197
		'description' => __( 'Social media icons in the navigation bar', 'starkers' ),
198
		'before_widget' => '<div id="social-nav">',
199
		'after_widget' => '</div><!-- #social-nav -->',
200
		'before_title' => '<h3>',
201
		'after_title' => '</h3>',
202
	) );
203
204
205
	register_sidebar( array(
206
		'name' => __( 'Donate Widget Area', 'starkers' ),
207
		'id' => 'donate-widget-area',
208
		'description' => __( 'The donate section of the page sidebar', 'starkers' ),
209
		'before_widget' => '<div id="donate">',
210
		'after_widget' => '</div>',
211
		'before_title' => '<h3>',
212
		'after_title' => '</h3>',
213
	) );
214
215
216
	register_sidebar( array(
217
		'name' => __( 'Buy Widget Area', 'starkers' ),
218
		'id' => 'buy-widget-area',
219
		'description' => __( 'The buy DVD and soundtrack sections of the page sidebar', 'starkers' ),
220
		'before_widget' => '<div class="buy">',
221
		'after_widget' => '</div>',
222
		'before_title' => '<h3>',
223
		'after_title' => '</h3>',
224
	) );
225
226
	register_sidebar( array(
227
		'name' => __( 'Blog Widget Area', 'starkers' ),
228
		'id' => 'blog-widget-area',
229
		'description' => __( 'Widgets that appear in the sidebar on blog pages', 'starkers' ),
230
		'before_widget' => '<div class="blogwidget %2$s">',
231
		'after_widget' => '</div>',
232
		'before_title' => '<h3>',
233
		'after_title' => '</h3>',
234
	) );
235
236
237
	register_sidebar( array(
238
		'name' => __( 'Footer Widget Area', 'starkers' ),
239
		'id' => 'footer-widget-area',
240
		'description' => __( 'The footer widget area for logos of supporting organizations', 'starkers' ),
241
		'before_widget' => '<div id="supporters">',
242
		'after_widget' => '</div><!-- #supporters -->',
243
		'before_title' => '<h3>',
244
		'after_title' => '</h3>',
245
	) );
246
}
247
/** Register sidebars by running starkers_widgets_init() on the widgets_init hook. */
248
add_action( 'widgets_init', 'starkers_widgets_init' );
249
250
/**
251
 * Removes the default styles that are packaged with the Recent Comments widget.
252
 *
253
 * @updated Starkers HTML5 3.2
254
 */
255
function starkers_remove_recent_comments_style() {
256
	add_filter( 'show_recent_comments_widget_style', '__return_false' );
257
}
258
add_action( 'widgets_init', 'starkers_remove_recent_comments_style' );
259
260
if ( ! function_exists( 'starkers_posted_on' ) ) :
261
/**
262
 * Prints HTML with meta information for the current post—date/time and author.
263
 *
264
 * @since Starkers HTML5 3.0
265
 */
266
function starkers_posted_on() {
267
	printf( __( 'Posted on %2$s by %3$s', 'starkers' ),
268
		'meta-prep meta-prep-author',
269
		sprintf( '<a href="%1$s" title="%2$s" rel="bookmark"><time datetime="%3$s" pubdate>%4$s</time></a>',
270
			get_permalink(),
271
			esc_attr( get_the_time() ),
272
			get_the_date('Y-m-d'),
273
			get_the_date()
274
		),
275
		sprintf( '<a href="%1$s" title="%2$s">%3$s</a>',
276
			get_author_posts_url( get_the_author_meta( 'ID' ) ),
277
			sprintf( esc_attr__( 'View all posts by %s', 'starkers' ), get_the_author() ),
278
			get_the_author()
279
		)
280
	);
281
}
282
endif;
283
284
if ( ! function_exists( 'starkers_posted_in' ) ) :
285
/**
286
 * Prints HTML with meta information for the current post (category, tags and permalink).
287
 *
288
 * @since Starkers HTML5 3.0
289
 */
290
function starkers_posted_in() {
291
	// Retrieves tag list of current post, separated by commas.
292
	$tag_list = get_the_tag_list( '', ', ' );
293
	if ( $tag_list ) {
294
		$posted_in = __( 'This entry was posted in %1$s and tagged %2$s. Bookmark the <a href="%3$s" title="Permalink to %4$s" rel="bookmark">permalink</a>.', 'starkers' );
295
	} elseif ( is_object_in_taxonomy( get_post_type(), 'category' ) ) {
296
		$posted_in = __( 'This entry was posted in %1$s. Bookmark the <a href="%3$s" title="Permalink to %4$s" rel="bookmark">permalink</a>.', 'starkers' );
297
	} else {
298
		$posted_in = __( 'Bookmark the <a href="%3$s" title="Permalink to %4$s" rel="bookmark">permalink</a>.', 'starkers' );
299
	}
300
	// Prints the string, replacing the placeholders.
301
	printf(
302
		$posted_in,
303
		get_the_category_list( ', ' ),
304
		$tag_list,
305
		get_permalink(),
306
		the_title_attribute( 'echo=0' )
307
	);
308
}
309
endif;
310
311
312
// change excerpt length
313
314
function custom_excerpt_length( $length ) {
315
    return 50;
316
}
317
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
318
319
320
function getTopParentPostID($myid){
321
        $mypage = get_page($myid);
322
323
        if ($mypage->post_parent == 0){
324
                return $mypage->ID;
325
        }
326
        else{
327
                return getTopParentPostID($mypage->post_parent);
328
        }
329
}
330
331
function depthToRoot($myid,$depth){
332
        $mypage = get_page($myid);
333
334
        if ($mypage->post_parent == 0){
335
                return $depth;
336
        }
337
        else{
338
                $depth++;
339
                return depthToRoot($mypage->post_parent, $depth);
340
        }
341
}