BP_Document::get_document_folder_meta_query_sql( array $meta_query = array() )
Get the SQL for the ‘meta_query’ param in BP_Document::get().
Description
We use WP_Meta_Query to do the heavy lifting of parsing the meta_query array and creating the necessary SQL clauses. However, since BP_Document::get() builds its SQL differently than WP_Query, we have to alter the return value (stripping the leading AND keyword from the ‘where’ clause).
Parameters
- $meta_query
-
(Optional) An array of meta_query filters. See the documentation for WP_Meta_Query for details.
Default value: array()
Return
(array) $sql_array 'join' and 'where' clauses.
Source
File: bp-document/classes/class-bp-document.php
public static function get_document_folder_meta_query_sql( $meta_query = array() ) {
global $wpdb;
$sql_array = array(
'join' => '',
'where' => '',
);
if ( ! empty( $meta_query ) ) {
$document_meta_query = new WP_Meta_Query( $meta_query );
// WP_Meta_Query expects the table name at
// $wpdb->document_meta.
$wpdb->documentmeta = buddypress()->document->table_name_folder_meta;
$meta_sql = $document_meta_query->get_sql( 'document_folder', 'f', 'id' );
// Strip the leading AND - BP handles it in get().
$sql_array['where'] = preg_replace( '/^\sAND/', '', $meta_sql['where'] );
$sql_array['join'] = $meta_sql['join'];
}
return $sql_array;
}
Changelog
| Version | Description |
|---|---|
| BuddyPress 1.8.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.