Поиск по идентификатору приложения

Я создаю страницу с фотографиями для своей компании, где мы загружаем все фотографии, созданные нашим персоналом, чтобы их можно было использовать позже. Он показывает идентификатор изображения с помощью post-> ID, чтобы пользователи могли его видеть, отметить его и быть полезным позже – точно так же, как и любой другой веб-сайт для акций.

Однако, когда я пытаюсь использовать идентификатор и искать его в поле поиска, ничего не выходит. Я использую плагин Search Everything, но он ничего не делает. Все остальные плагины для поиска по ID работают только на сообщениях, а не вложениях (изображениях).

Так есть ли какие-либо плагины там, которые я могу использовать или мне нужно добавить скрипт в мои функции. Php?

Solutions Collecting From Web of "Поиск по идентификатору приложения"

Класс WP_Query может соответствовать идентификаторам, а также условиям поиска. Идея заключалась бы в использовании действия pre_get_posts чтобы определить, является ли поисковый термин числовым, и если это так, задайте запрос для работы с вложениями при прохождении поиска в качестве идентификатора.

 function wpse223307_allow_search_by_attachment_id( $query ) { //Only alter the query if we are in a search screen,... if( ! is_search() ) : return; endif; //...the search term has been set... if( ! isset( $query->query_vars['s'] ) ) : return; endif; $search_term = $query->query_vars['s']; //...and the search term is a number if( ! is_numeric( $search_term ) ) : return; endif; //Set the post type and post status to work with attachments (assuming you want to exclude other post types in numeric searches) $query->set( 'post_type', array( 'attachment' ) ); $query->set( 'post_status', array( 'inherit' ) ); //Match the search term with the attachment's ID and remove it from the query $query->set( 'p', $search_term ); $query->set( 's', '' ); } add_action( 'pre_get_posts', 'wpse223307_allow_search_by_attachment_id');