Я шукаю спосіб пошуку публікацій за ідентифікатором, бажано з підтримкою користувацьких типів публікацій. Я сподівався, що буде плагін, що дозволяє цю функціональність, але мені нічого не вдалося знайти. Будь-які ідеї будуть дуже вдячні, дякую.
Я шукаю спосіб пошуку публікацій за ідентифікатором, бажано з підтримкою користувацьких типів публікацій. Я сподівався, що буде плагін, що дозволяє цю функціональність, але мені нічого не вдалося знайти. Будь-які ідеї будуть дуже вдячні, дякую.
Відповіді:
Не впевнений, я розумію, чому ви хочете робити запит за ідентифікатором, але це сказав, що це можливо хитрим способом (мені подобається цей метод, тому що він простий).
add_action( 'parse_request', 'idsearch' );
function idsearch( $wp ) {
global $pagenow;
// If it's not the post listing return
if( 'edit.php' != $pagenow )
return;
// If it's not a search return
if( !isset( $wp->query_vars['s'] ) )
return;
// If it's a search but there's no prefix, return
if( '#' != substr( $wp->query_vars['s'], 0, 1 ) )
return;
// Validate the numeric value
$id = absint( substr( $wp->query_vars['s'], 1 ) );
if( !$id )
return; // Return if no ID, absint returns 0 for invalid values
// If we reach here, all criteria is fulfilled, unset search and select by ID instead
unset( $wp->query_vars['s'] );
$wp->query_vars['p'] = $id;
}
Все, що ви робите, це пошук за допомогою звичайного поля пошуку, використовуючи #
(хеш) префікс перед числовим ідентифікатором.
#123
..повернув би повідомлення з ідентифікатором 123.
Я впевнений, що для цього можна скористатися більш складними маршрутами, але я не бачу жодних проблем із таким підходом, якщо у вас є безліч публікацій із заголовками, які починаються з хешу (але ви завжди можете поміняти хеш на інший персонаж).
Сподіваюся, що це допомагає. :)
unset()
дзвінок на наступне .. unset( $wp->query_vars['s'], $_GET['s'] );
та пошук Текст терміна зникне під час пошуку ідентифікатора .. ps із задоволенням допоможе .. :)
get_search_query
фільтр. add_filter( 'get_search_query', function() { return $_GET['s']; } );