wpseek.com
A WordPress-centric search engine for devs and theme authors
wp_post_mime_type_where › WordPress Function
Since2.5.0
Deprecatedn/a
› wp_post_mime_type_where ( $post_mime_types, $table_alias = '' )
| Parameters: (2) |
|
| Returns: |
|
| Defined at: |
|
| Codex: |
Converts MIME types into SQL.
Related Functions: get_post_mime_type, get_post_mime_types, wp_get_mime_types, wp_match_mime_types, wp_mime_type_icon
Source
function wp_post_mime_type_where( $post_mime_types, $table_alias = '' ) {
$where = '';
$wildcards = array( '', '%', '%/%' );
if ( is_string( $post_mime_types ) ) {
$post_mime_types = array_map( 'trim', explode( ',', $post_mime_types ) );
}
$where_clauses = array();
foreach ( (array) $post_mime_types as $mime_type ) {
$mime_type = preg_replace( '/\s/', '', $mime_type );
$slashpos = strpos( $mime_type, '/' );
if ( false !== $slashpos ) {
$mime_group = preg_replace( '/[^-*.a-zA-Z0-9]/', '', substr( $mime_type, 0, $slashpos ) );
$mime_subgroup = preg_replace( '/[^-*.+a-zA-Z0-9]/', '', substr( $mime_type, $slashpos + 1 ) );
if ( empty( $mime_subgroup ) ) {
$mime_subgroup = '*';
} else {
$mime_subgroup = str_replace( '/', '', $mime_subgroup );
}
$mime_pattern = "$mime_group/$mime_subgroup";
} else {
$mime_pattern = preg_replace( '/[^-*.a-zA-Z0-9]/', '', $mime_type );
if ( ! str_contains( $mime_pattern, '*' ) ) {
$mime_pattern .= '/*';
}
}
$mime_pattern = preg_replace( '/\*+/', '%', $mime_pattern );
if ( in_array( $mime_type, $wildcards, true ) ) {
return '';
}
if ( str_contains( $mime_pattern, '%' ) ) {
$where_clauses[] = empty( $table_alias ) ? "post_mime_type LIKE '$mime_pattern'" : "$table_alias.post_mime_type LIKE '$mime_pattern'";
} else {
$where_clauses[] = empty( $table_alias ) ? "post_mime_type = '$mime_pattern'" : "$table_alias.post_mime_type = '$mime_pattern'";
}
}
if ( ! empty( $where_clauses ) ) {
$where = ' AND (' . implode( ' OR ', $where_clauses ) . ') ';
}
return $where;
}