[ Index ] |
PHP Cross Reference of BBPress |
[Summary view] [Print] [Text view]
1 <?php 2 3 /** 4 * bbPress Options 5 * 6 * @package bbPress 7 * @subpackage Core 8 */ 9 10 // Exit if accessed directly 11 defined( 'ABSPATH' ) || exit; 12 13 /** 14 * Get the default site options and their values. 15 * 16 * These option 17 * 18 * @since 2.0.0 bbPress (r3421) 19 * 20 * @return array Filtered option names and values 21 */ 22 function bbp_get_default_options() { 23 static $options = null; 24 25 // Store these to avoid recreating them 26 if ( is_null( $options ) ) { 27 28 // Use the participant role for the default-default role 29 $role = bbp_get_participant_role(); 30 $options = array( 31 32 /** DB Version ********************************************************/ 33 34 '_bbp_db_version' => 0, // Database version 35 '_bbp_db_pending_upgrades' => array(), // Database upgrades pending 36 37 /** Flags *************************************************************/ 38 39 '_bbp_flag_initial_content' => 1, // Flag to indicate initial content was created 40 41 /** Features **********************************************************/ 42 43 '_bbp_enable_favorites' => 1, // Enable favorites 44 '_bbp_enable_subscriptions' => 1, // Enable subscriptions 45 '_bbp_enable_engagements' => 1, // Enable engagements 46 '_bbp_allow_content_edit' => 1, // Allow content edit 47 '_bbp_allow_content_throttle' => 1, // Allow content throttle 48 '_bbp_allow_revisions' => 1, // Allow revisions 49 '_bbp_allow_topic_tags' => 1, // Allow topic tagging 50 '_bbp_allow_search' => 1, // Allow forum-wide search 51 '_bbp_allow_forum_mods' => 1, // Allow per-forum moderation 52 '_bbp_allow_global_access' => 1, // Allow users from all sites to post 53 '_bbp_allow_anonymous' => 0, // Allow anonymous posting 54 '_bbp_allow_super_mods' => 0, // Allow mods to edit users 55 '_bbp_allow_threaded_replies' => 0, // Allow threaded replies 56 '_bbp_use_wp_editor' => 1, // Use the WordPress editor if available 57 '_bbp_use_autoembed' => 0, // Use oEmbed in topics and replies 58 59 /** Settings **********************************************************/ 60 61 '_bbp_default_role' => $role, // Default forums role 62 '_bbp_edit_lock' => 5, // Lock post editing after 5 minutes 63 '_bbp_throttle_time' => 10, // Throttle post time to 10 seconds 64 '_bbp_thread_replies_depth' => 2, // Thread replies depth 65 '_bbp_theme_package_id' => 'default', // The ID for the current theme package 66 '_bbp_settings_integration' => 'basic', // How to integrate into wp-admin 67 '_bbp_engagements_strategy' => 'meta', // How to interact with engagements 68 69 /** Per Page **********************************************************/ 70 71 '_bbp_topics_per_page' => 15, // Topics per page 72 '_bbp_replies_per_page' => 15, // Replies per page 73 '_bbp_forums_per_page' => 50, // Forums per page 74 '_bbp_topics_per_rss_page' => 25, // Topics per RSS page 75 '_bbp_replies_per_rss_page' => 25, // Replies per RSS page 76 77 /** Page For **********************************************************/ 78 79 '_bbp_page_for_forums' => 0, // Page for forums 80 '_bbp_page_for_topics' => 0, // Page for forums 81 '_bbp_page_for_login' => 0, // Page for login 82 '_bbp_page_for_register' => 0, // Page for register 83 '_bbp_page_for_lost_pass' => 0, // Page for lost-pass 84 85 /** Forum Root ********************************************************/ 86 87 '_bbp_root_slug' => 'forums', // Forum archive slug 88 '_bbp_show_on_root' => 'forums', // What to show on root (forums|topics) 89 '_bbp_include_root' => 1, // Include forum-archive before single slugs 90 91 /** Single Slugs ******************************************************/ 92 93 '_bbp_forum_slug' => 'forum', // Forum slug 94 '_bbp_topic_slug' => 'topic', // Topic slug 95 '_bbp_reply_slug' => 'reply', // Reply slug 96 '_bbp_topic_tag_slug' => 'topic-tag', // Topic tag slug 97 98 /** User Slugs ********************************************************/ 99 100 '_bbp_user_slug' => 'users', // User profile slug 101 '_bbp_user_engs_slug' => 'engagements', // User engagements slug 102 '_bbp_user_favs_slug' => 'favorites', // User favorites slug 103 '_bbp_user_subs_slug' => 'subscriptions', // User subscriptions slug 104 '_bbp_topic_archive_slug' => 'topics', // Topic archive slug 105 '_bbp_reply_archive_slug' => 'replies', // Reply archive slug 106 107 /** Other Slugs *******************************************************/ 108 109 '_bbp_view_slug' => 'view', // View slug 110 '_bbp_search_slug' => 'search', // Search slug 111 112 /** Topics ************************************************************/ 113 114 '_bbp_title_max_length' => 80, // Title Max Length 115 '_bbp_super_sticky_topics' => '', // Super stickies 116 117 /** Forums ************************************************************/ 118 119 '_bbp_private_forums' => '', // Private forums 120 '_bbp_hidden_forums' => '', // Hidden forums 121 122 /** BuddyPress ********************************************************/ 123 124 '_bbp_enable_group_forums' => 1, // Enable BuddyPress Group Extension 125 '_bbp_group_forums_root_id' => 0, // Group Forums parent forum id 126 127 /** Akismet ***********************************************************/ 128 129 '_bbp_enable_akismet' => 1, // Users from all sites can post 130 131 /** Converter *********************************************************/ 132 133 // Connection 134 '_bbp_converter_db_user' => '', // Database User 135 '_bbp_converter_db_pass' => '', // Database Password 136 '_bbp_converter_db_name' => '', // Database Name 137 '_bbp_converter_db_port' => 3306, // Database Port 138 '_bbp_converter_db_server' => 'localhost', // Database Server/IP 139 '_bbp_converter_db_prefix' => '', // Database table prefix 140 141 // Options 142 '_bbp_converter_rows' => 100, // Number of rows to query 143 '_bbp_converter_delay_time' => 2, // Seconds to wait between queries 144 '_bbp_converter_step' => false, // Current converter step 145 '_bbp_converter_start' => false, // Step to start at 146 '_bbp_converter_convert_users' => false, // Whether to convert users 147 '_bbp_converter_halt' => false, // Halt on errors 148 '_bbp_converter_platform' => false, // Which platform to use 149 '_bbp_converter_query' => false // Last query 150 ); 151 } 152 153 // Filter & return 154 return (array) apply_filters( 'bbp_get_default_options', $options ); 155 } 156 157 /** 158 * Add default options 159 * 160 * Hooked to bbp_activate, it is only called once when bbPress is activated. 161 * This is non-destructive, so existing settings will not be overridden. 162 * 163 * @since 2.0.0 bbPress (r3421) 164 */ 165 function bbp_add_options() { 166 167 // Add default options 168 foreach ( bbp_get_default_options() as $key => $value ) { 169 add_option( $key, $value ); 170 } 171 172 // Allow previously activated plugins to append their own options. 173 do_action( 'bbp_add_options' ); 174 } 175 176 /** 177 * Delete default options 178 * 179 * Hooked to bbp_uninstall, it is only called once when bbPress is uninstalled. 180 * This is destructive, so existing settings will be destroyed. 181 * 182 * @since 2.0.0 bbPress (r3421) 183 */ 184 function bbp_delete_options() { 185 186 // Add default options 187 foreach ( array_keys( bbp_get_default_options() ) as $key ) { 188 delete_option( $key ); 189 } 190 191 // Allow previously activated plugins to append their own options. 192 do_action( 'bbp_delete_options' ); 193 } 194 195 /** 196 * Add filters to each bbPress option and allow them to be overloaded from 197 * inside the $bbp->options array. 198 * 199 * @since 2.0.0 bbPress (r3451) 200 */ 201 function bbp_setup_option_filters() { 202 203 // Add filters to each bbPress option 204 foreach ( array_keys( bbp_get_default_options() ) as $key ) { 205 add_filter( 'pre_option_' . $key, 'bbp_filter_pre_get_option', 10, 2 ); 206 add_filter( 'default_option_' . $key, 'bbp_filter_default_option', 10, 3 ); 207 } 208 209 // Allow previously activated plugins to append their own options. 210 do_action( 'bbp_setup_option_filters' ); 211 } 212 213 /** 214 * Filter pre options and maybe overloaded from the $bbp->options array. 215 * 216 * This function should not be called directly. 217 * 218 * @since 2.0.0 bbPress (r3451) 219 * @access private 220 * 221 * @param bool $value Default value false 222 * @param string $option Name of the option 223 * 224 * @return mixed false if not overloaded, mixed if set 225 */ 226 function bbp_filter_pre_get_option( $value = false, $option = '' ) { 227 228 // Check the options global for preset value 229 if ( isset( bbpress()->options[ $option ] ) ) { 230 $value = bbpress()->options[ $option ]; 231 } 232 233 // Always return a value, even if false 234 return $value; 235 } 236 237 /** 238 * Filter default_options set them from inside the $bbp->options array. 239 * 240 * This function should not be called directly. 241 * 242 * @since 2.6.0 bbPress (r3451) 243 * @access private 244 * 245 * @param bool $value Optional. Default value false 246 * @return mixed false if not overloaded, mixed if set 247 */ 248 function bbp_filter_default_option( $default = false, $option = '', $passed_default = false ) { 249 $options = bbp_get_default_options(); 250 251 // Maybe use the default value 252 if ( isset( $options[ $option ] ) ) { 253 254 // Try to use the passed default and fallback to assumed default 255 $default = ( true === $passed_default ) 256 ? $default 257 : $options[ $option ]; 258 } 259 260 // Always return a value, even if false 261 return $default; 262 } 263 264 /** 265 * Loads & caches bbPress options if a persistent cache is not being used. 266 * 267 * @since 2.6.0 268 */ 269 function bbp_pre_load_options() { 270 271 // Bail if using object cache or installing 272 if ( wp_using_ext_object_cache() || wp_installing() ) { 273 return; 274 } 275 276 // Maybe intercept 277 $strategy = apply_filters( 'bbp_pre_load_options_strategy', 'notoptions' ); 278 $intercept = bbp_maybe_intercept( __FUNCTION__, $strategy ); 279 if ( bbp_is_intercepted( $intercept ) ) { 280 return $intercept; 281 } 282 283 // Get variables 284 $bbp = bbpress(); 285 $bbp_options = bbp_get_default_options(); 286 $all_options = wp_load_alloptions(); 287 $not_options = (array) wp_cache_get( 'notoptions', 'options' ); 288 289 // Loop through all bbPress options to maybe cache their non-existence 290 foreach ( $bbp_options as $option => $value ) { 291 292 // Skip if already saved to database 293 if ( isset( $all_options[ $option ] ) ) { 294 continue; 295 296 // Skip if overloaded 297 } elseif ( isset( $bbp->options[ $option ] ) ) { 298 continue; 299 300 // Skip if already in cache 301 } elseif ( wp_cache_get( $option, 'options' ) !== false ) { 302 continue; 303 304 // Needs caching to avoid database hit 305 } else { 306 307 // Store internally, for easier identification later 308 $bbp->not_options[ $option ] = $value; 309 310 // Cache to notoptions 311 if ( 'notoptions' === $strategy ) { 312 $not_options[ $option ] = true; 313 wp_cache_set( 'notoptions', $not_options, 'options' ); 314 315 // Cache to option 316 } elseif ( 'option' === $strategy ) { 317 wp_cache_set( $option, $value, 'options' ); 318 } 319 } 320 } 321 } 322 323 /** Active? *******************************************************************/ 324 325 /** 326 * Checks if favorites feature is enabled. 327 * 328 * @since 2.0.0 bbPress (r2658) 329 * 330 * @param bool $default Optional.Default value true 331 * @return bool Is favorites enabled or not 332 */ 333 function bbp_is_favorites_active( $default = 1 ) { 334 335 // Filter & return 336 return (bool) apply_filters( 'bbp_is_favorites_active', (bool) get_option( '_bbp_enable_favorites', $default ) ); 337 } 338 339 /** 340 * Checks if subscription feature is enabled. 341 * 342 * @since 2.0.0 bbPress (r2658) 343 * 344 * @param bool $default Optional.Default value true 345 * @return bool Is subscription enabled or not 346 */ 347 function bbp_is_subscriptions_active( $default = 1 ) { 348 349 // Filter & return 350 return (bool) apply_filters( 'bbp_is_subscriptions_active', (bool) get_option( '_bbp_enable_subscriptions', $default ) ); 351 } 352 353 /** 354 * Checks if engagements feature is enabled. 355 * 356 * @since 2.6.0 bbPress (r6320) 357 * 358 * @param bool $default Optional.Default value true 359 * @return bool Is engagements enabled or not 360 */ 361 function bbp_is_engagements_active( $default = 1 ) { 362 363 // Filter & return 364 return (bool) apply_filters( 'bbp_is_engagements_active', (bool) get_option( '_bbp_enable_engagements', $default ) ); 365 } 366 367 /** 368 * Is content editing available when posting new topics & replies? 369 * 370 * @since 2.6.0 bbPress (r6441) 371 * 372 * @param bool $default Optional. Default value false 373 * @return bool Is content editing allowed? 374 */ 375 function bbp_allow_content_edit( $default = 1 ) { 376 377 // Filter & return 378 return (bool) apply_filters( 'bbp_allow_content_edit', (bool) get_option( '_bbp_allow_content_edit', $default ) ); 379 } 380 381 /** 382 * Is content throttling engaged when posting new topics & replies? 383 * 384 * @since 2.6.0 bbPress (r6441) 385 * 386 * @param bool $default Optional. Default value false 387 * @return bool Is content throttling allowed? 388 */ 389 function bbp_allow_content_throttle( $default = 1 ) { 390 391 // Filter & return 392 return (bool) apply_filters( 'bbp_allow_content_throttle', (bool) get_option( '_bbp_allow_content_throttle', $default ) ); 393 } 394 395 /** 396 * Are topic tags allowed 397 * 398 * @since 2.2.0 bbPress (r4097) 399 * 400 * @param bool $default Optional. Default value true 401 * @return bool Are tags allowed? 402 */ 403 function bbp_allow_topic_tags( $default = 1 ) { 404 405 // Filter & return 406 return (bool) apply_filters( 'bbp_allow_topic_tags', (bool) get_option( '_bbp_allow_topic_tags', $default ) ); 407 } 408 409 /** 410 * Are per-forum moderators allowed 411 * 412 * @since 2.6.0 bbPress (r5834) 413 * 414 * @param bool $default Optional. Default value true. 415 * 416 * @return bool Are per-forum moderators allowed? 417 */ 418 function bbp_allow_forum_mods( $default = 1 ) { 419 420 // Filter & return 421 return (bool) apply_filters( 'bbp_allow_forum_mods', (bool) get_option( '_bbp_allow_forum_mods', $default ) ); 422 } 423 424 /** 425 * Are moderators allowed to edit users 426 * 427 * @since 2.6.0 bbPress (r6562) 428 * 429 * @param bool $default Optional. Default value true. 430 * 431 * @return bool Are moderators allowed to edit users? 432 */ 433 function bbp_allow_super_mods( $default = 0 ) { 434 435 // Filter & return 436 return (bool) apply_filters( 'bbp_allow_super_mods', (bool) get_option( '_bbp_allow_super_mods', $default ) ); 437 } 438 439 /** 440 * Is forum-wide searching allowed 441 * 442 * @since 2.4.0 bbPress (r4970) 443 * 444 * @param bool $default Optional. Default value true 445 * @return bool Is forum-wide searching allowed? 446 */ 447 function bbp_allow_search( $default = 1 ) { 448 449 // Filter & return 450 return (bool) apply_filters( 'bbp_allow_search', (bool) get_option( '_bbp_allow_search', $default ) ); 451 } 452 453 /** 454 * Are threaded replies allowed 455 * 456 * @since 2.4.0 bbPress (r4964) 457 * 458 * @param bool $default Optional. Default value false 459 * @return bool Are threaded replies allowed? 460 */ 461 function bbp_allow_threaded_replies( $default = 0 ) { 462 463 // Filter & return 464 return (bool) apply_filters( '_bbp_allow_threaded_replies', (bool) get_option( '_bbp_allow_threaded_replies', $default ) ); 465 } 466 467 /** 468 * Maximum reply thread depth 469 * 470 * @since 2.4.0 bbPress (r4944) 471 * 472 * @param int $default Thread replies depth 473 * @return int Thread replies depth 474 */ 475 function bbp_thread_replies_depth( $default = 2 ) { 476 477 // Filter & return 478 return (int) apply_filters( 'bbp_thread_replies_depth', (int) get_option( '_bbp_thread_replies_depth', $default ) ); 479 } 480 481 /** 482 * Are topic and reply revisions allowed 483 * 484 * @since 2.0.0 bbPress (r3412) 485 * 486 * @param bool $default Optional. Default value true 487 * @return bool Are revisions allowed? 488 */ 489 function bbp_allow_revisions( $default = 1 ) { 490 491 // Filter & return 492 return (bool) apply_filters( 'bbp_allow_revisions', (bool) get_option( '_bbp_allow_revisions', $default ) ); 493 } 494 495 /** 496 * Is the anonymous posting allowed? 497 * 498 * @since 2.0.0 bbPress (r2659) 499 * 500 * @param bool $default Optional. Default value 501 * @return bool Is anonymous posting allowed? 502 */ 503 function bbp_allow_anonymous( $default = 0 ) { 504 505 // Filter & return 506 return apply_filters( 'bbp_allow_anonymous', (bool) get_option( '_bbp_allow_anonymous', $default ) ); 507 } 508 509 /** 510 * Is this forum available to all users on all sites in this installation? 511 * 512 * @since 2.0.0 bbPress (r3378) 513 * 514 * @param bool $default Optional. Default value false 515 * @return bool Is global access allowed? 516 */ 517 function bbp_allow_global_access( $default = 1 ) { 518 519 // Filter & return 520 return (bool) apply_filters( 'bbp_allow_global_access', (bool) get_option( '_bbp_allow_global_access', $default ) ); 521 } 522 523 /** 524 * Get the default forums role (issued to users on their first visit to the 525 * forums) by bbp_set_current_user_default_role() and repair tools 526 * 527 * @since 2.2.0 bbPress (r4294) 528 * 529 * @param string $default Optional. Default value empty 530 * @return string The default forums user role 531 */ 532 function bbp_get_default_role( $default = 'bbp_participant' ) { 533 534 // Filter & return 535 return apply_filters( 'bbp_get_default_role', get_option( '_bbp_default_role', $default ) ); 536 } 537 538 /** 539 * Use the WordPress editor if available 540 * 541 * @since 2.0.0 bbPress (r3386) 542 * 543 * @param bool $default Optional. Default value true 544 * @return bool Use WP editor? 545 */ 546 function bbp_use_wp_editor( $default = 1 ) { 547 548 // Filter & return 549 return (bool) apply_filters( 'bbp_use_wp_editor', (bool) get_option( '_bbp_use_wp_editor', $default ) ); 550 } 551 552 /** 553 * Use WordPress's oEmbed API 554 * 555 * @since 2.1.0 bbPress (r3752) 556 * 557 * @param bool $default Optional. Default value true 558 * @return bool Use oEmbed? 559 */ 560 function bbp_use_autoembed( $default = 1 ) { 561 562 // Filter & return 563 return (bool) apply_filters( 'bbp_use_autoembed', (bool) get_option( '_bbp_use_autoembed', $default ) ); 564 } 565 566 /** 567 * Get the current theme package ID 568 * 569 * @since 2.1.0 bbPress (r3829) 570 * 571 * @param string $default Optional. Default value 'default' 572 * @return string ID of the theme-package 573 */ 574 function bbp_get_theme_package_id( $default = 'default' ) { 575 576 // Filter & return 577 return apply_filters( 'bbp_get_theme_package_id', get_option( '_bbp_theme_package_id', $default ) ); 578 } 579 580 /** 581 * Output the maximum length of a title 582 * 583 * @since 2.0.0 bbPress (r3246) 584 * 585 * @param bool $default Optional. Default value 80 586 */ 587 function bbp_title_max_length( $default = 80 ) { 588 echo bbp_get_title_max_length( $default ); 589 } 590 /** 591 * Return the maximum length of a title 592 * 593 * @since 2.0.0 bbPress (r3246) 594 * 595 * @param bool $default Optional. Default value 80 596 * @return int Is anonymous posting allowed? 597 */ 598 function bbp_get_title_max_length( $default = 80 ) { 599 600 // Filter & return 601 return (int) apply_filters( 'bbp_get_title_max_length', (int) get_option( '_bbp_title_max_length', $default ) ); 602 } 603 604 /** 605 * Output the number of minutes a topic or reply can be edited after it's 606 * published. Used by `bbp_past_edit_lock()`. 607 * 608 * @since 2.6.0 bbPress (r6868) 609 * 610 * @param bool $default Optional. Default value 5 611 */ 612 function bbp_edit_lock( $default = 5 ) { 613 echo bbp_get_edit_lock( $default ); 614 } 615 /** 616 * Return the number of minutes a topic or reply can be edited after it's 617 * published. Used by `bbp_past_edit_lock()`. 618 * 619 * @since 2.6.0 bbPress (r6868) 620 * 621 * @param bool $default Optional. Default value 5 622 * @return int Is anonymous posting allowed? 623 */ 624 function bbp_get_edit_lock( $default = 5 ) { 625 626 // Filter & return 627 return (int) apply_filters( 'bbp_get_edit_lock', (int) get_option( '_bbp_edit_lock', $default ) ); 628 } 629 630 /** 631 * Output the group forums root parent forum id 632 * 633 * @since 2.1.0 bbPress (r3575) 634 * 635 * @param int $default Optional. Default value 636 */ 637 function bbp_group_forums_root_id( $default = 0 ) { 638 echo bbp_get_group_forums_root_id( $default ); 639 } 640 /** 641 * Return the group forums root parent forum id 642 * 643 * @since 2.1.0 bbPress (r3575) 644 * 645 * @param bool $default Optional. Default value 0 646 * @return int The post ID for the root forum 647 */ 648 function bbp_get_group_forums_root_id( $default = 0 ) { 649 650 // Filter & return 651 return (int) apply_filters( 'bbp_get_group_forums_root_id', (int) get_option( '_bbp_group_forums_root_id', $default ) ); 652 } 653 654 /** 655 * Checks if BuddyPress Group Forums are enabled 656 * 657 * @since 2.1.0 bbPress (r3575) 658 * 659 * @param bool $default Optional. Default value true 660 * @return bool Is group forums enabled or not 661 */ 662 function bbp_is_group_forums_active( $default = 1 ) { 663 664 // Filter & return 665 return (bool) apply_filters( 'bbp_is_group_forums_active', (bool) get_option( '_bbp_enable_group_forums', $default ) ); 666 } 667 668 /** 669 * Checks if Akismet is enabled 670 * 671 * @since 2.1.0 bbPress (r3575) 672 * 673 * @param bool $default Optional. Default value true 674 * @return bool Is Akismet enabled or not 675 */ 676 function bbp_is_akismet_active( $default = 1 ) { 677 678 // Filter & return 679 return (bool) apply_filters( 'bbp_is_akismet_active', (bool) get_option( '_bbp_enable_akismet', $default ) ); 680 } 681 682 /** 683 * Integrate settings into existing WordPress pages 684 * 685 * There are 3 possible modes: 686 * - 'basic' Traditional admin integration 687 * - 'compact' One "bbPress" top-level admin menu 688 * - 'deep' Deeply integrate with the WordPress admin interface 689 * 690 * @since 2.4.0 bbPress (r4932) 691 * 692 * @param bool $default Optional. Default value false 693 * @return string How to integrate settings 694 */ 695 function bbp_settings_integration( $default = 'basic' ) { 696 697 // Get the option value 698 $integration = get_option( '_bbp_settings_integration', $default ); 699 700 // Back-compat for deep/basic (pre-2.6) 701 if ( is_numeric( $integration ) ) { 702 $integration = ( 1 === (int) $integration ) 703 ? 'deep' 704 : 'basic'; 705 } 706 707 // Fallback to 'basic' if invalid 708 if ( ! in_array( $integration, array( 'basic', 'deep', 'compact' ), true ) ) { 709 $integration = 'basic'; 710 } 711 712 // Filter & return 713 return apply_filters( 'bbp_settings_integration', $integration, $default ); 714 } 715 716 /** 717 * How to interact with engagements 718 * 719 * There are 3 possible strategies: 720 * - 'meta' 2.6 and higher. Uses multiple postmeta keys. 721 * - 'user' Pre-2.6. Uses comma-separated string of IDs in usermeta. 722 * - 'term' Alternate. Uses taxonomy term relationships. 723 * 724 * @since 2.6.0 bbPress (r6875) 725 * 726 * @param bool $default Optional. Default value false 727 * @return string How to interact with engagements 728 */ 729 function bbp_engagements_strategy( $default = 'meta' ) { 730 731 // Get the option value 732 $integration = get_option( '_bbp_engagements_strategy', $default ); 733 734 // Check that class exists, or fallback 735 $class_name = 'BBP_User_Engagements_' . ucwords( $integration ); 736 737 // Fallback to 'meta' if invalid 738 if ( ! class_exists( $class_name ) ) { 739 $integration = 'meta'; 740 } 741 742 // Filter & return 743 return apply_filters( 'bbp_engagements_strategy', $integration, $default ); 744 } 745 746 /** Slugs *********************************************************************/ 747 748 /** 749 * Return the root slug 750 * 751 * @since 2.1.0 bbPress (r3759) 752 * 753 * @param string $default Optional. Default value 'forums' 754 * @return string 755 */ 756 function bbp_get_root_slug( $default = 'forums' ) { 757 758 // Filter & return 759 return apply_filters( 'bbp_get_root_slug', get_option( '_bbp_root_slug', $default ) ); 760 } 761 762 /** 763 * Are we including the root slug in front of forum pages? 764 * 765 * @since 2.1.0 bbPress (r3759) 766 * 767 * @param bool $default Optional. Default value true 768 * @return bool 769 */ 770 function bbp_include_root_slug( $default = 1 ) { 771 772 // Filter & return 773 return (bool) apply_filters( 'bbp_include_root_slug', (bool) get_option( '_bbp_include_root', $default ) ); 774 } 775 776 /** 777 * What to show on root, forums or topics? 778 * 779 * @since 2.4.0 bbPress (r4932) 780 * 781 * @param string $default Optional. Default value 'forums' 782 * @return string 783 */ 784 function bbp_show_on_root( $default = 'forums' ) { 785 786 // Filter & return 787 return apply_filters( 'bbp_show_on_root', get_option( '_bbp_show_on_root', $default ) ); 788 } 789 790 /** 791 * Maybe return the root slug, based on whether or not it's included in the url 792 * 793 * @since 2.1.0 bbPress (r3759) 794 * 795 * @param string $default Optional. Default value 'forums' 796 * @return string 797 */ 798 function bbp_maybe_get_root_slug() { 799 $slug = bbp_get_root_slug(); 800 $retval = ( ! empty( $slug ) && bbp_include_root_slug() ) 801 ? trailingslashit( $slug ) 802 : ''; 803 804 // Filter & return 805 return apply_filters( 'bbp_maybe_get_root_slug', $retval ); 806 } 807 808 /** 809 * Return the single forum slug 810 * 811 * @since 2.1.0 bbPress (r3759) 812 * 813 * @param string $default Optional. Default value 'forum' 814 * @return string 815 */ 816 function bbp_get_forum_slug( $default = 'forum' ) { 817 818 // Filter & return 819 return apply_filters( 'bbp_get_forum_slug', bbp_maybe_get_root_slug() . get_option( '_bbp_forum_slug', $default ) ); 820 } 821 822 /** 823 * Return the topic archive slug 824 * 825 * @since 2.1.0 bbPress (r3759) 826 * 827 * @param string $default Optional. Default value 'topics' 828 * @return string 829 */ 830 function bbp_get_topic_archive_slug( $default = 'topics' ) { 831 832 // Filter & return 833 return apply_filters( 'bbp_get_topic_archive_slug', get_option( '_bbp_topic_archive_slug', $default ) ); 834 } 835 836 /** 837 * Return the reply archive slug 838 * 839 * @since 2.4.0 bbPress (r4925) 840 * 841 * @param string $default Optional. Default value 'replies' 842 * @return string 843 */ 844 function bbp_get_reply_archive_slug( $default = 'replies' ) { 845 846 // Filter & return 847 return apply_filters( 'bbp_get_reply_archive_slug', get_option( '_bbp_reply_archive_slug', $default ) ); 848 } 849 850 /** 851 * Return the single topic slug 852 * 853 * @since 2.1.0 bbPress (r3759) 854 * 855 * @param string $default Optional. Default value 'topic' 856 * @return string 857 */ 858 function bbp_get_topic_slug( $default = 'topic' ) { 859 860 // Filter & return 861 return apply_filters( 'bbp_get_topic_slug', bbp_maybe_get_root_slug() . get_option( '_bbp_topic_slug', $default ) ); 862 } 863 864 /** 865 * Return the topic-tag taxonomy slug 866 * 867 * @since 2.1.0 bbPress (r3759) 868 * 869 * @param string $default Optional. Default value 'topic-tag' 870 * @return string 871 */ 872 function bbp_get_topic_tag_tax_slug( $default = 'topic-tag' ) { 873 874 // Filter & return 875 return apply_filters( 'bbp_get_topic_tag_tax_slug', bbp_maybe_get_root_slug() . get_option( '_bbp_topic_tag_slug', $default ) ); 876 } 877 878 /** 879 * Return the single reply slug (used mostly for editing) 880 * 881 * @since 2.1.0 bbPress (r3759) 882 * 883 * @param string $default Optional. Default value 'reply' 884 * @return string 885 */ 886 function bbp_get_reply_slug( $default = 'reply' ) { 887 888 // Filter & return 889 return apply_filters( 'bbp_get_reply_slug', bbp_maybe_get_root_slug() . get_option( '_bbp_reply_slug', $default ) ); 890 } 891 892 /** 893 * Return the single user slug 894 * 895 * @since 2.1.0 bbPress (r3759) 896 * 897 * @param string $default Optional. Default value 'users' 898 * @return string 899 */ 900 function bbp_get_user_slug( $default = 'users' ) { 901 902 // Filter & return 903 return apply_filters( 'bbp_get_user_slug', bbp_maybe_get_root_slug() . get_option( '_bbp_user_slug', $default ) ); 904 } 905 906 /** 907 * Return the single user favorites slug 908 * 909 * @since 2.2.0 bbPress (r4187) 910 * 911 * @param string $default Optional. Default value 'favorites' 912 * @return string 913 */ 914 function bbp_get_user_favorites_slug( $default = 'favorites' ) { 915 916 // Filter & return 917 return apply_filters( 'bbp_get_user_favorites_slug', get_option( '_bbp_user_favs_slug', $default ) ); 918 } 919 920 /** 921 * Return the single user subscriptions slug 922 * 923 * @since 2.2.0 bbPress (r4187) 924 * 925 * @param string $default Optional. Default value 'subscriptions' 926 * @return string 927 */ 928 function bbp_get_user_subscriptions_slug( $default = 'subscriptions' ) { 929 930 // Filter & return 931 return apply_filters( 'bbp_get_user_subscriptions_slug', get_option( '_bbp_user_subs_slug', $default ) ); 932 } 933 934 /** 935 * Return the single user engagements slug 936 * 937 * @since 2.6.0 bbPress (r6320) 938 * 939 * @param string $default Optional. Default value 'engagements' 940 * @return string 941 */ 942 function bbp_get_user_engagements_slug( $default = 'engagements' ) { 943 944 // Filter & return 945 return apply_filters( 'bbp_get_user_engagements_slug', get_option( '_bbp_user_engs_slug', $default ) ); 946 } 947 948 /** 949 * Return the topic view slug 950 * 951 * @since 2.1.0 bbPress (r3759) 952 * 953 * @param string $default Optional. Default value 'view' 954 * @return string 955 */ 956 function bbp_get_view_slug( $default = 'view' ) { 957 958 // Filter & return 959 return apply_filters( 'bbp_get_view_slug', bbp_maybe_get_root_slug() . get_option( '_bbp_view_slug', $default ) ); 960 } 961 962 /** 963 * Return the search slug 964 * 965 * @since 2.3.0 bbPress (r4579) 966 * 967 * @param string $default Optional. Default value 'search' 968 * @return string 969 */ 970 function bbp_get_search_slug( $default = 'search' ) { 971 972 // Filter & return 973 return apply_filters( 'bbp_get_search_slug', bbp_maybe_get_root_slug() . get_option( '_bbp_search_slug', $default ) ); 974 } 975 976 /** 977 * Return the edit slug 978 * 979 * @since 2.6.2 bbPress (r6965) 980 * 981 * @param string $default Optional. Default value 'edit' 982 * @return string 983 */ 984 function bbp_get_edit_slug( $default = 'edit' ) { 985 986 // Filter & return 987 return apply_filters( 'bbp_get_edit_slug', get_option( '_bbp_edit_slug', $default ) ); 988 } 989 990 /** Legacy ********************************************************************/ 991 992 /** 993 * Checks if there is a previous BuddyPress Forum configuration 994 * 995 * @since 2.1.0 bbPress (r3790) 996 * 997 * @param string $default Optional. Default empty string 998 * @return string The location of the bb-config.php file, if any 999 */ 1000 function bbp_get_config_location( $default = '' ) { 1001 1002 // Filter & return 1003 return apply_filters( 'bbp_get_config_location', get_option( 'bb-config-location', $default ) ); 1004 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Oct 4 01:00:52 2024 | Cross-referenced by PHPXref 0.7.1 |