мой код здесь
function title_filter( $where, $wp_query ){
global $wpdb;
if( $search_term = $wp_query->get( 'title_filter' ) ) :
$search_term = $wpdb->esc_like( $search_term );
$search_term = ' \'%' . $search_term . '%\'';
$title_filter_relation = ( strtoupper( $wp_query->get( 'title_filter_relation' ) ) == 'OR' ? 'OR' : 'AND' );
$where .= ' '.$title_filter_relation.' ' . $wpdb->posts . '.post_title LIKE ' . $search_term;
$where .= ' '.$title_filter_relation.' ' . $wpdb->posts . '.post_content LIKE ' . $search_term;
endif;
return $where;
}
и wp запрос здесь
add_filter( 'posts_where', 'title_filter', 10, 2 );
$loop = new WP_Query(array(
'post_type' => 'my-post-type',
'post_status' => 'publish'
'title_filter' => $keyword,
'title_filter_relation' => 'OR',
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'my-meta-field',
'value' => $keyword,
'compare' => 'LIKE'
)
)
));
remove_filter( 'posts_where', 'title_filter', 10, 2 );
Этот код не только дает тип записи "my-post-type", но даже возвращает тип вложения.
Я указал тип сообщения, почему это будет?
Если не использовать title_filter, то тип вложения не возвращается.