[ Index ] |
PHP Cross Reference of BBPress |
[Summary view] [Print] [Text view]
1 <?php 2 3 /** 4 * bbPress Search Functions 5 * 6 * @package bbPress 7 * @subpackage Functions 8 */ 9 10 // Exit if accessed directly 11 defined( 'ABSPATH' ) || exit; 12 13 /** Query *********************************************************************/ 14 15 /** 16 * Run the search query 17 * 18 * @since 2.3.0 bbPress (r4579) 19 * 20 * @param mixed $new_args New arguments 21 * @return bool False if no results, otherwise if search results are there 22 */ 23 function bbp_search_query( $new_args = array() ) { 24 25 // Existing arguments 26 $query_args = bbp_get_search_query_args(); 27 28 // Merge arguments 29 if ( ! empty( $new_args ) ) { 30 $new_args = bbp_parse_args( $new_args, array(), 'search_query' ); 31 $query_args = array_merge( $query_args, $new_args ); 32 } 33 34 return bbp_has_search_results( $query_args ); 35 } 36 37 /** 38 * Return the search query args 39 * 40 * @since 2.3.0 bbPress (r4579) 41 * 42 * @return array Query arguments 43 */ 44 function bbp_get_search_query_args() { 45 46 // Get search terms 47 $search_terms = bbp_get_search_terms(); 48 $retval = ! empty( $search_terms ) 49 ? array( 's' => $search_terms ) 50 : array(); 51 52 // Filter & return 53 return apply_filters( 'bbp_get_search_query_args', $retval ); 54 } 55 56 /** 57 * Redirect to search results page if needed 58 * 59 * @since 2.4.0 bbPress (r4928) 60 * 61 * @return If a redirect is not needed 62 */ 63 function bbp_search_results_redirect() { 64 65 // Bail if not a search request action 66 if ( empty( $_GET['action'] ) || ( 'bbp-search-request' !== $_GET['action'] ) ) { 67 return; 68 } 69 70 // Bail if not using pretty permalinks 71 if ( ! bbp_use_pretty_urls() ) { 72 return; 73 } 74 75 // Get the redirect URL 76 $redirect_to = bbp_get_search_results_url(); 77 if ( empty( $redirect_to ) ) { 78 return; 79 } 80 81 // Redirect and bail 82 bbp_redirect( $redirect_to ); 83 } 84 85 /** 86 * Return an array of search types 87 * 88 * @since 2.6.0 bbPress (r6903) 89 * 90 * @return array 91 */ 92 function bbp_get_search_type_ids() { 93 return apply_filters( 'bbp_get_search_types', array( 's', 'fs', 'ts', 'rs' ) ); 94 } 95 96 /** 97 * Sanitize a query argument used to pass some search terms. 98 * 99 * Accepts a single parameter to be used for forums, topics, or replies. 100 * 101 * @since 2.6.0 bbPress (r6903) 102 * 103 * @param string $query_arg s|fs|ts|rs 104 * 105 * @return mixed 106 */ 107 function bbp_sanitize_search_request( $query_arg = 's' ) { 108 109 // Define allowed keys 110 $allowed = bbp_get_search_type_ids(); 111 112 // Bail if not an allowed query string key 113 if ( ! in_array( $query_arg, $allowed, true ) ) { 114 return false; 115 } 116 117 // Get search terms if requested 118 $terms = ! empty( $_REQUEST[ $query_arg ] ) 119 ? $_REQUEST[ $query_arg ] 120 : false; 121 122 // Bail if query argument does not exist 123 if ( empty( $terms ) ) { 124 return false; 125 } 126 127 // Maybe implode if an array 128 if ( is_array( $terms ) ) { 129 $terms = implode( ' ', $terms ); 130 } 131 132 // Sanitize 133 $retval = sanitize_title( trim( $terms ) ); 134 135 // Filter & return 136 return apply_filters( 'bbp_sanitize_search_request', $retval, $query_arg ); 137 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sat Dec 21 01:00:52 2024 | Cross-referenced by PHPXref 0.7.1 |