Intereting Posts
Помощник по WordPress HTML Можно ли сохранить более одного изображения для опции? Как зарегистрировать тип сообщения, чтобы у меня была страница архива, но у меня нет одиночных страниц? Создание нескольких URL-адресов страниц без создания страниц в WordPress Код Bootstrap, действующий странно на wordpress Исключить корзину из save_post Способы обработки SVG-рендеринга в wordpress? Не разрешать доступ к wp-admin, но разрешить выполнение админовских запросов на интерфейсе? Изменить шаблон single.php на основе родительской категории Большой номенклатурный конкурс плагинов 2011 года Как массовое обновление настраиваемых полей для сообщений более 20 тыс. Оберните все изображения для записей внутри элемента div Как проверить уникальность префикса плагина? setup_postdata в php-файле «loop-handling», называемом $ .ajax Автоматически импортировать блог WordPress на страницу Facebook

Бэкэнд-поиск; включить CPT meta?

У меня в настоящее время есть CPT с 2 названиями частей; У меня все отлично работает на интерфейсе. Но когда дело доходит до поиска сообщения, сообщение, которое вы ищете, не всегда появляется, потому что часть названия находится в мета для этой записи. Есть ли способ включить мета в бэкэнд-поиск для CPT?

Непроверено, но следующее должно работать:

add_action( 'posts_clauses', 'wpse110779_filter_admin_search', 10, 2 ); function wpse110779_filter_admin_search( $pieces, $query ){ global $wpdb; //Check if this is the main query,and is a search on the admin screen if( $query->is_search() & $query->is_admin() && $query->is_main_query() ){ //Collect post types & search term $post_types = $query->get('post_type'); $search = $query->get('s'); //Check if query is for 'my-cpt' post type if( 'my-cpt' == $post_types || ( is_array( $post_types ) && in_array( 'my-cpt', $post_types ) ) ){ //Set up meta query $meta_query = array( array( 'key' => 'my_key', 'value' => $search, 'compare' => 'LIKE' )); //Generate sql $meta_sql = get_meta_sql( $meta_query, 'post', $wpdb->posts, 'ID', $query ); $pieces['join'] . = " ". $meta_sql['join']; $pieces['where'] . = " OR (" . $meta_sql['where'] .")"; } } return $pieces; } 

Обратите внимание, что это совершенно непроверено, но должно работать в принципе и, по крайней мере, вы начнете .