_acf_query_remove_post_type()
_acf_query_remove_post_type
This function will remove the 'wp_posts.post_type' WHERE clause completely When using 'post__in', this clause is unneccessary and slow.
Внутренняя функция — эта функция рассчитана на использование самим ядром. Не рекомендуется использовать эту функцию в своем коде.
Хуков нет.
Возвращает
$sql.
Использование
_acf_query_remove_post_type( $sql );
- $sql(обязательный)
- .
Список изменений
| С версии 5.1.5 | Введена. |
Код _acf_query_remove_post_type() acf query remove post type ACF 6.4.2
function _acf_query_remove_post_type( $sql ) {
// global
global $wpdb;
// bail early if no 'wp_posts.ID IN'
if ( strpos( $sql, "$wpdb->posts.ID IN" ) === false ) {
return $sql;
}
// get bits
$glue = 'AND';
$bits = explode( $glue, $sql );
// loop through $where and remove any post_type queries
foreach ( $bits as $i => $bit ) {
if ( strpos( $bit, "$wpdb->posts.post_type" ) !== false ) {
unset( $bits[ $i ] );
}
}
// join $where back together
$sql = implode( $glue, $bits );
// return
return $sql;
}