PluginProbe
bbPress / 2.6.15
bbPress v2.6.15
trunk 2.0 2.0-beta-1 2.0-beta-2b 2.0-beta-3 2.0-beta-3b 2.0-rc-2 2.0-rc-3 2.0-rc-4 2.0-rc-5 2.0.1 2.0.2 2.0.3 2.1 2.1-beta-1 2.1-rc1 2.1-rc2 2.1-rc3 2.1-rc4 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.2.2 All 71 releases
bbpress / includes / core / template-loader.php

template-loader.php in bbPress 2.6.15, at includes/core/template-loader.php

473 lines 12.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * bbPress Template Loader
5 *
6 * @package bbPress
7 * @subpackage TemplateLoader
8 */
9
10 // Exit if accessed directly
11 defined( 'ABSPATH' ) || exit;
12
13 /**
14 * Possibly intercept the template being loaded
15 *
16 * Listens to the 'template_include' filter and waits for any bbPress specific
17 * template condition to be met. If one is met and the template file exists,
18 * it will be used; otherwise
19 *
20 * Note that the _edit() checks are ahead of their counterparts, to prevent them
21 * from being stomped on accident.
22 *
23 * @since 2.0.0 bbPress (r3032)
24 *
25 * @param string $template
26 *
27 * @return string The path to the template file that is being used
28 */
29 function bbp_template_include_theme_supports( $template = '' ) {
30
31 // Editing a user
32 if ( bbp_is_single_user_edit() && ( $new_template = bbp_get_single_user_edit_template() ) ) :
33
34 // User favorites
35 elseif ( bbp_is_favorites() && ( $new_template = bbp_get_favorites_template() ) ) :
36
37 // User favorites
38 elseif ( bbp_is_subscriptions() && ( $new_template = bbp_get_subscriptions_template() ) ) :
39
40 // Viewing a user
41 elseif ( bbp_is_single_user() && ( $new_template = bbp_get_single_user_template() ) ) :
42
43 // Single View
44 elseif ( bbp_is_single_view() && ( $new_template = bbp_get_single_view_template() ) ) :
45
46 // Search
47 elseif ( bbp_is_search() && ( $new_template = bbp_get_search_template() ) ) :
48
49 // Forum edit
50 elseif ( bbp_is_forum_edit() && ( $new_template = bbp_get_forum_edit_template() ) ) :
51
52 // Single Forum
53 elseif ( bbp_is_single_forum() && ( $new_template = bbp_get_single_forum_template() ) ) :
54
55 // Forum Archive
56 elseif ( bbp_is_forum_archive() && ( $new_template = bbp_get_forum_archive_template() ) ) :
57
58 // Topic merge
59 elseif ( bbp_is_topic_merge() && ( $new_template = bbp_get_topic_merge_template() ) ) :
60
61 // Topic split
62 elseif ( bbp_is_topic_split() && ( $new_template = bbp_get_topic_split_template() ) ) :
63
64 // Topic edit
65 elseif ( bbp_is_topic_edit() && ( $new_template = bbp_get_topic_edit_template() ) ) :
66
67 // Single Topic
68 elseif ( bbp_is_single_topic() && ( $new_template = bbp_get_single_topic_template() ) ) :
69
70 // Topic Archive
71 elseif ( bbp_is_topic_archive() && ( $new_template = bbp_get_topic_archive_template() ) ) :
72
73 // Reply move
74 elseif ( bbp_is_reply_move() && ( $new_template = bbp_get_reply_move_template() ) ) :
75
76 // Editing a reply
77 elseif ( bbp_is_reply_edit() && ( $new_template = bbp_get_reply_edit_template() ) ) :
78
79 // Single Reply
80 elseif ( bbp_is_single_reply() && ( $new_template = bbp_get_single_reply_template() ) ) :
81
82 // Editing a topic tag
83 elseif ( bbp_is_topic_tag_edit() && ( $new_template = bbp_get_topic_tag_edit_template() ) ) :
84
85 // Viewing a topic tag
86 elseif ( bbp_is_topic_tag() && ( $new_template = bbp_get_topic_tag_template() ) ) :
87 endif;
88
89 // A bbPress template file was located, so override the WordPress template
90 // and use it to switch off theme compatibility.
91 if ( ! empty( $new_template ) ) {
92 $template = bbp_set_template_included( $new_template );
93 }
94
95 // Filter & return
96 return apply_filters( 'bbp_template_include_theme_supports', $template );
97 }
98
99 /**
100 * Set the included template
101 *
102 * @since 2.4.0 bbPress (r4975)
103 *
104 * @param mixed $template Default false
105 * @return mixed False if empty. Template name if template included
106 */
107 function bbp_set_template_included( $template = false ) {
108 bbpress()->theme_compat->bbpress_template = $template;
109
110 return bbpress()->theme_compat->bbpress_template;
111 }
112
113 /**
114 * Is a bbPress template being included?
115 *
116 * @since 2.4.0 bbPress (r4975)
117 *
118 * @return bool True if yes, false if no
119 */
120 function bbp_is_template_included() {
121 return ! empty( bbpress()->theme_compat->bbpress_template );
122 }
123
124 /** Custom Functions **********************************************************/
125
126 /**
127 * Attempt to load a custom bbPress functions file, similar to each themes
128 * functions.php file.
129 *
130 * @since 2.1.0 bbPress (r3732)
131 *
132 * @global string $pagenow
133 */
134 function bbp_load_theme_functions() {
135 global $pagenow;
136
137 // If bbPress is being deactivated, do not load any more files
138 if ( bbp_is_deactivation() ) {
139 return;
140 }
141
142 if ( ! defined( 'WP_INSTALLING' ) || ( ! empty( $pagenow ) && ( 'wp-activate.php' !== $pagenow ) ) ) {
143 bbp_locate_template( 'bbpress-functions.php', true );
144 }
145 }
146
147 /** Individual Templates ******************************************************/
148
149 /**
150 * Get the user profile template
151 *
152 * @since 2.0.0 bbPress (r3311)
153 *
154 * @return string Path to template file
155 */
156 function bbp_get_single_user_template() {
157 $nicename = bbp_get_displayed_user_field( 'user_nicename' );
158 $user_id = bbp_get_displayed_user_id();
159 $templates = array(
160 'single-user-' . $nicename . '.php', // Single User nicename
161 'single-user-' . $user_id . '.php', // Single User ID
162 'single-user.php', // Single User
163 'user.php', // User
164 );
165 return bbp_get_query_template( 'profile', $templates );
166 }
167
168 /**
169 * Get the user profile edit template
170 *
171 * @since 2.0.0 bbPress (r3311)
172 *
173 * @return string Path to template file
174 */
175 function bbp_get_single_user_edit_template() {
176 $nicename = bbp_get_displayed_user_field( 'user_nicename' );
177 $user_id = bbp_get_displayed_user_id();
178 $templates = array(
179 'single-user-edit-' . $nicename . '.php', // Single User Edit nicename
180 'single-user-edit-' . $user_id . '.php', // Single User Edit ID
181 'single-user-edit.php', // Single User Edit
182 'user-edit.php', // User Edit
183 'user.php', // User
184 );
185 return bbp_get_query_template( 'profile_edit', $templates );
186 }
187
188 /**
189 * Get the user favorites template
190 *
191 * @since 2.2.0 bbPress (r4225)
192 *
193 * @return string Path to template file
194 */
195 function bbp_get_favorites_template() {
196 $nicename = bbp_get_displayed_user_field( 'user_nicename' );
197 $user_id = bbp_get_displayed_user_id();
198 $templates = array(
199 'single-user-favorites-' . $nicename . '.php', // Single User Favs nicename
200 'single-user-favorites-' . $user_id . '.php', // Single User Favs ID
201 'favorites-' . $nicename . '.php', // Favorites nicename
202 'favorites-' . $user_id . '.php', // Favorites ID
203 'favorites.php', // Favorites
204 'user.php', // User
205 );
206 return bbp_get_query_template( 'favorites', $templates );
207 }
208
209 /**
210 * Get the user subscriptions template
211 *
212 * @since 2.2.0 bbPress (r4225)
213 *
214 * @return string Path to template file
215 */
216 function bbp_get_subscriptions_template() {
217 $nicename = bbp_get_displayed_user_field( 'user_nicename' );
218 $user_id = bbp_get_displayed_user_id();
219 $templates = array(
220 'single-user-subscriptions-' . $nicename . '.php', // Single User Subs nicename
221 'single-user-subscriptions-' . $user_id . '.php', // Single User Subs ID
222 'subscriptions-' . $nicename . '.php', // Subscriptions nicename
223 'subscriptions-' . $user_id . '.php', // Subscriptions ID
224 'subscriptions.php', // Subscriptions
225 'user.php', // User
226 );
227 return bbp_get_query_template( 'subscriptions', $templates );
228 }
229
230 /**
231 * Get the view template
232 *
233 * @since 2.0.0 bbPress (r3311)
234 *
235 * @return string Path to template file
236 */
237 function bbp_get_single_view_template() {
238 $view_id = bbp_get_view_id();
239 $templates = array(
240 'single-view-' . $view_id . '.php', // Single View ID
241 'view-' . $view_id . '.php', // View ID
242 'single-view.php', // Single View
243 'view.php', // View
244 );
245 return bbp_get_query_template( 'single_view', $templates );
246 }
247
248 /**
249 * Get the search template
250 *
251 * @since 2.3.0 bbPress (r4579)
252 *
253 * @return string Path to template file
254 */
255 function bbp_get_search_template() {
256 $templates = array(
257 'page-forum-search.php', // Single Search
258 'forum-search.php', // Search
259 );
260 return bbp_get_query_template( 'single_search', $templates );
261 }
262
263 /**
264 * Get the single forum template
265 *
266 * @since 2.1.0 bbPress (r3922)
267 *
268 * @return string Path to template file
269 */
270 function bbp_get_single_forum_template() {
271 $templates = array(
272 'single-' . bbp_get_forum_post_type() . '.php' // Single Forum
273 );
274 return bbp_get_query_template( 'single_forum', $templates );
275 }
276
277 /**
278 * Get the forum archive template
279 *
280 * @since 2.1.0 bbPress (r3922)
281 *
282 * @return string Path to template file
283 */
284 function bbp_get_forum_archive_template() {
285 $templates = array(
286 'archive-' . bbp_get_forum_post_type() . '.php' // Forum Archive
287 );
288 return bbp_get_query_template( 'forum_archive', $templates );
289 }
290
291 /**
292 * Get the forum edit template
293 *
294 * @since 2.1.0 bbPress (r3566)
295 *
296 * @return string Path to template file
297 */
298 function bbp_get_forum_edit_template() {
299 $templates = array(
300 'single-' . bbp_get_forum_post_type() . '-edit.php' // Single Forum Edit
301 );
302 return bbp_get_query_template( 'forum_edit', $templates );
303 }
304
305 /**
306 * Get the single topic template
307 *
308 * @since 2.1.0 bbPress (r3922)
309 *
310 * @return string Path to template file
311 */
312 function bbp_get_single_topic_template() {
313 $templates = array(
314 'single-' . bbp_get_topic_post_type() . '.php'
315 );
316 return bbp_get_query_template( 'single_topic', $templates );
317 }
318
319 /**
320 * Get the topic archive template
321 *
322 * @since 2.1.0 bbPress (r3922)
323 *
324 * @return string Path to template file
325 */
326 function bbp_get_topic_archive_template() {
327 $templates = array(
328 'archive-' . bbp_get_topic_post_type() . '.php' // Topic Archive
329 );
330 return bbp_get_query_template( 'topic_archive', $templates );
331 }
332
333 /**
334 * Get the topic edit template
335 *
336 * @since 2.0.0 bbPress (r3311)
337 *
338 * @return string Path to template file
339 */
340 function bbp_get_topic_edit_template() {
341 $templates = array(
342 'single-' . bbp_get_topic_post_type() . '-edit.php' // Single Topic Edit
343 );
344 return bbp_get_query_template( 'topic_edit', $templates );
345 }
346
347 /**
348 * Get the topic split template
349 *
350 * @since 2.0.0 bbPress (r3311)
351 *
352 * @return string Path to template file
353 */
354 function bbp_get_topic_split_template() {
355 $templates = array(
356 'single-' . bbp_get_topic_post_type() . '-split.php', // Topic Split
357 );
358 return bbp_get_query_template( 'topic_split', $templates );
359 }
360
361 /**
362 * Get the topic merge template
363 *
364 * @since 2.0.0 bbPress (r3311)
365 *
366 * @return string Path to template file
367 */
368 function bbp_get_topic_merge_template() {
369 $templates = array(
370 'single-' . bbp_get_topic_post_type() . '-merge.php', // Topic Merge
371 );
372 return bbp_get_query_template( 'topic_merge', $templates );
373 }
374
375 /**
376 * Get the single reply template
377 *
378 * @since 2.1.0 bbPress (r3922)
379 *
380 * @return string Path to template file
381 */
382 function bbp_get_single_reply_template() {
383 $templates = array(
384 'single-' . bbp_get_reply_post_type() . '.php'
385 );
386 return bbp_get_query_template( 'single_reply', $templates );
387 }
388
389 /**
390 * Get the reply edit template
391 *
392 * @since 2.0.0 bbPress (r3311)
393 *
394 * @return string Path to template file
395 */
396 function bbp_get_reply_edit_template() {
397 $templates = array(
398 'single-' . bbp_get_reply_post_type() . '-edit.php' // Single Reply Edit
399 );
400 return bbp_get_query_template( 'reply_edit', $templates );
401 }
402
403 /**
404 * Get the reply move template
405 *
406 * @since 2.3.0 bbPress (r4521)
407 *
408 * @return string Path to template file
409 */
410 function bbp_get_reply_move_template() {
411 $templates = array(
412 'single-' . bbp_get_reply_post_type() . '-move.php', // Reply move
413 );
414 return bbp_get_query_template( 'reply_move', $templates );
415 }
416
417 /**
418 * Get the topic template
419 *
420 * @since 2.0.0 bbPress (r3311)
421 *
422 * @return string Path to template file
423 */
424 function bbp_get_topic_tag_template() {
425 $tt_slug = bbp_get_topic_tag_slug();
426 $tt_id = bbp_get_topic_tag_tax_id();
427 $templates = array(
428 'taxonomy-' . $tt_slug . '.php', // Single Topic Tag slug
429 'taxonomy-' . $tt_id . '.php', // Single Topic Tag ID
430 );
431 return bbp_get_query_template( 'topic_tag', $templates );
432 }
433
434 /**
435 * Get the topic edit template
436 *
437 * @since 2.0.0 bbPress (r3311)
438 *
439 * @return string Path to template file
440 */
441 function bbp_get_topic_tag_edit_template() {
442 $tt_slug = bbp_get_topic_tag_slug();
443 $tt_id = bbp_get_topic_tag_tax_id();
444 $templates = array(
445 'taxonomy-' . $tt_slug . '-edit.php', // Single Topic Tag Edit slug
446 'taxonomy-' . $tt_id . '-edit.php' // Single Topic Tag Edit ID
447 );
448 return bbp_get_query_template( 'topic_tag_edit', $templates );
449 }
450
451 /**
452 * Get the templates to use as the endpoint for bbPress template parts
453 *
454 * @since 2.0.0 bbPress (r3311)
455 * @since 2.6.0 bbPress (r5950) Added `singular.php` to template stack
456 *
457 * @return string Path to template file
458 */
459 function bbp_get_theme_compat_templates() {
460 $templates = array(
461 'plugin-bbpress.php',
462 'bbpress.php',
463 'forums.php',
464 'forum.php',
465 'generic.php',
466 'page.php',
467 'single.php',
468 'singular.php',
469 'index.php'
470 );
471 return bbp_get_query_template( 'bbpress', $templates );
472 }
473