Search Regex — улучшенный поиск в админке WordPress для страниц
Поиск информации в вордпресс (будь то админка или фронтенд) — явно не самая проработанная функция в системе. Несколько раз в блоге я публиковал решение задач, связанных с этим вопросом — было и про поиск пользователей, и про использование категорий в поиске. Сегодня рассмотрим проблему, когда WordPress не находит страницу по заданному запросу. Это достаточно старый глюк, и мне лично непонятно почему до сих пор он так и не был исправлен. Ситуация больше актуальна для WP сайтов, где пользователи создают достаточно много страниц, в блогах их обычно не более 10-20 штук.
Суть проблемы заключается в следующем. Вы заходите в раздел «Страницы», вводите слово, по которому хотите найти информацию и кликаете по кнопке поиска.
Результаты показываются, только все это посты (записи), а не страницы (Page). Не смотря на то, что внешний вид «окружения» вроде как соответствует страницам (подсвечивается активный раздел, есть число опубликованных элементов), в области контента показаны именно заметки блога.
Если честно, не совсем ясно почему так происходит. Если смотреть URL`ы страниц в админке, то там, как и в постах, используется линк по типу post.php?post=xxxxx. Поэтому можно было понять, если бы в результатах поиска показывались обе сущности, но там происходит какая-то «подмена понятий»:)
Поиск решения проблемы как в админке вордпресс найти страницу занял чуть больше времени, чем я рассчитывал. Сложно было выбрать подходящий плагин, некоторые протестированные модули не работали, многие устарели на года 2-3. Чаще всего рекомендовали использовать Relevanssi, который ищет не только по сайту, но и админке (во фронтенде и бэкенде). Однако плагин оказался черезчур мощным, в нем даже есть построение своего индекса, как у поисковых систем. Я подумал, что для нахождения 2-3 страниц в системе это чрезмерная функциональность. В итоге остановился на Search Regex.
Данный плагин добавляет в систему более мощную функцию поиска и замены, которая поддерживает регулярные выражения. Скачать можете здесь. Он позволяет искать практически любую информацию на сайте. Особенно это будет полезно, если проект существует не один год, и данных накопилось достаточно много. Например, вдруг вы захотите поменять структуру URL’ов некоторых записей или изображений и т.п.
Фактически, плагин Search Regex можно отнести к модулям wordpress админки работающим с базой данных. К счастью, он также позволяет в вордпресс найти страницу при поиске в админке системы. После установки заходите в раздел «Инструменты» — пункт меню «Search Regex». Там имеется следующая форма поиска.
В поле Search pattern вводите нужный запрос и кликаете по кнопке Search. Все предельно просто. Итого в примере выше получилось 32 результата, что гораздо больше 24-х постов, найденных с помощью классического поиска по сайту. В этой всей ситуации есть только один недостаток — плагин учитывает регистр, то есть мне пришлось бы проводить 2 разных поиска сначала для «Chrome», а затем для «chrome». Хотя, это скорее особенность, которую нужно учитывать.
Плюсов у Search pattern хватает:
- В качестве источника можете выбрать не только посты, но и отдельно заголовки, URL’ы, комментарии. Удобно, когда требуется найти данные в определенной сущности и не хочется просматривать лишнюю информацию.
- Есть возможность не только поиска, но и замены.
- Поддерживаются регулярные выражения.
Чтобы запись была изменена в БД нужно кликать по кнопке «Replace & Save», иначе она будет просто отображаться в результатах. Кроме того, учитывая то, что модуль работает непосредственно с базой данных, при внесении значительных изменений советую изначально делать бекапы. В целом, радует, что модуль достаточно прост и позволяет справиться с проблемой когда WordPress не находит страницу в поиске.
Ребята, помогите – как найти документ в админке WP зная только его url?
Проблема: хотел присвоить странице слаг Постоянной ссылки, а он кем-то занят. Как можно найти этот документ? Плагины тоже подойдут как ответ. Все слаги страниц пересмотрел – такого слага нет.
-
Вопрос заданболее года назад
-
101 просмотр
Расскажу как я ее решил. Установил плагин – Search Regex и указал в поисовом запросе мой слаг (концовка url’a). Плагин нашел мне с таким именем одно точное совпадение в медиафайле (картинка). Ссылка картинки была точная копия моего слага для страницы. Я его удалил (файл-картинку). Затем в нужной странице спокойно исправил url на нужное мне значение. Вот такая незатейливая история получилось. Не знаю даже как и комментировать, возможно специалисты прокомментируют мои кривые руки)), но возможно этот ответ кому-то сэкономит время.
Пригласить эксперта
URL — это адрес документа на хостинге. Заходите на свой хостинг, далее папка www или public html, после открываете такие же папки как в url. Или можете с помощью поиска в файловой системе (ctrl+f) ввести название своего документа
например: домен.ру/папка-1/папка-2/ваш-документ
-
Показать ещё
Загружается…
21 мая 2023, в 19:09
30000 руб./за проект
21 мая 2023, в 17:53
150000 руб./за проект
21 мая 2023, в 17:17
10000 руб./за проект
Минуточку внимания
Как найти страницу?
-
Где в админке искать редактор главной и единственной страницы сайта? в разделе страницы есть какие-то черновики и отдельные блоки. В разделе записи то же самое. в разделе перейти на сайт я перехожу на главную страницу, но без возможности редактирования. Как мне её отредактировать?
Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]
Просмотр 4 ответов — с 1 по 4 (всего 4)
-
Так же как и создавали. Если это делали не вы, спросите у того, кто это натворил.
Возможно в настройках темы, но не обязательно.
кто натворил — неизвестно. можно ли как-то найти концы?
Можно практически все.
один путь я вам уже сказал.
второй — непосредственно в пхп- файле.В админ панель wp. Есть записи, страниц, изображения, инструменты,настройки. Вот вам нужны Настройки там пункт; Чтение там два пункта главная и записи. Вот посмотрите какая выбрана главной там будет путь к ней.
- Ответ изменён 2 года, 1 месяц назад пользователем llfoto2545.
- Ответ изменён 2 года, 1 месяц назад пользователем llfoto2545.
Просмотр 4 ответов — с 1 по 4 (всего 4)
- Тема «Как найти страницу?» закрыта для новых ответов.
Как говорит моя практика, время от времени возникает необходимость найти запись по ID (идентификатору) в административной панели управления сайтом: в wp-admin в разделе «Все записи»?
Примеров, когда может возникнуть подобная необходимость — масса, так что перечислять их не стану, однако, если и вы задаетесь решением задачи — как найти запись по ее ID, то — вот, по тексту ниже будет ответ!
Я уже когда-то выполнят подобную работу одному из клиентов, и вот сегодня ко мне обратились с похожей просьбой, я помог написать плагин… и решил написать сюда в блог небольшую заметку по решению… возможно, кому-то пригодится:
-
Как найти запись по ID в админке (идентификатору): в wp-admin — все записи
-
создаем плагин поиска записи по идентификатору — по id
Данное решение (примеры) я встретил где-то на просторах WordPress.org, уже не помню где и когда… однако, данный код использовал помимо пользовательских и на своих сайтах, так что функции сохранились…
Как найти запись по ID в админке (идентификатору): в wp-admin — все записи
На моем примерном сайте уже есть функционал, который выводит данные о ID записи / странице / произвольного типа… (как эта фича — колонка с ID записи/страницы делается, описано здесь: Добавим в административную панель управления сайтом в раздел «Все записи» информационные колонки с id постов, страниц, меток, рубрик…
…хотя идентификатор и указан, однако, проматывать всю ленту и искать требуемую запись по ее ID и в этом случае достаточно хлопотно. Гораздо проще вписать ID запись в окно Поиск, нажать «Поиск записей» и — готово, получаем результат…
По умолчанию в WordPress функционала определения поста по id нет, так что, если нам требуется, нужно штатный функционал дорабатывать и расширять. Благо — cms WP это замечательно позволяет реализовывать!
К тому же ID — идентификатор поста возможно добавить для удобства туда, куда нужно. К примеру:
На примере картинки выше, данные о посте видит только администратор сайта — как работать с условиями php WordPress подробно расписано в этом посте, есть четкое видео (а это условные теги Woocommerce) !..
к оглавлению
создаем плагин поиска записи по идентификатору — по id
Создавайте плагин либо на компьютере, а затем переносите архив на сервер (путем «Добавить плагин» …и «загрузить»…)… либо же прямо на хостинге… Кому как удобнее. Главное, соблюдайте осторожность!..
Создаем папку с именем, скажем, ats-admin-post-id-search (можете создать папку со своим произвольным именем) я, к примеру, добавил ats- в таком случае плагин особо искать не придется, потому как он будет близко к началу (сверху) — по начальной литере а.
Внутри этой папки создаем файл с именем ats-admin-post-id-search.php (в эту же папку можно добавить индексный файл / index.php / и файл-справку readme.txt).
В файл ats-admin-post-id-search.php прописываем на постоянное местожительства такой код:
<?php
/*
Plugin Name: ATS Admin Search Post ID
Plugin URI: https://домен.ru/
Description: Allows posts to searched using IDs in the admin area = Позволяет выполнять поиск ЗАПИСЕЙ СТРАНИЦ по идентификатору, в админке в ПОИСКЕ
Version: 0.0.1
Author: Ваше имя
Author URI: https://mihalica.ru/
License: GPL22
License URI: https://домен.ru/
Text Domain: your_text_domain
Domain Path: /languages
*/
/**
* Allows posts to searched ID in the admin area.
*
* @param WP_Query $query The WP_Query instance (passed by reference).
*
* решение, которое использует pre_get_posts
* Позволяет выполнять поиск ЗАПИСЕЙ СТРАНИЦ по идентификатору, в админке в ПОИСКЕ
*/
add_action( 'pre_get_posts','wpse_admin_search_include_ids' );
function wpse_admin_search_include_ids( $query ) {
// Bail if we are not in the admin area
if ( ! is_admin() ) {
return;
}
// Bail if this is not the search query.
if ( ! $query->is_main_query() && ! $query->is_search() ) {
return;
}
// Get the value that is being searched.
$search_string = get_query_var( 's' );
// Bail if the search string is not an integer.
if ( ! filter_var( $search_string, FILTER_VALIDATE_INT ) ) {
return;
}
// Set WP Query's p value to the searched post ID.
$query->set( 'p', intval( $search_string ) );
// Reset the search value to prevent standard search from being used.
$query->set( 's', '' );
}
/*решение, которое использует pre_get_posts*/
/**************************************** НИЖЕ ДРУГОЙ ВАРИАНТ ***********************************/
/**
* Modify search SQL enabling searching by post ID.
*
* @param string $search Search SQL for WHERE clause.
* @param WP_Query $wp_query The current WP_Query object.
*
* альтернативное решение, которое использует posts_search
* фильтр для изменения SQL напрямую при выполнении поиска в области администрирования с использованием числового значения
*/
add_filter( 'posts_search', 'wpse_posts_search_post_id', 10, 2 );
function wpse_posts_search_post_id( $search, $wp_query ) {
// Bail if we are not in the admin area
if ( ! is_admin() ) {
return $search;
}
// Bail if this is not the search query.
if ( ! $wp_query->is_main_query() && ! $wp_query->is_search() ) {
return $search;
}
// Get the value that is being searched.
$search_string = get_query_var( 's' );
// Bail if the search string is not an integer.
if ( ! filter_var( $search_string, FILTER_VALIDATE_INT ) ) {
return $search;
}
// This appears to be a search using a post ID.
// Return modified posts_search clause.
return "AND wp_posts.ID = '" . intval( $search_string ) . "'";
}
/*альтернативное решение, которое использует posts_search*/
Выбираете один из понравившихся вариантов, и работаете…
Как только все шаги по созданию плагина проделали, проходим в админпанель в раздел «Плагины», отыскиваем наш ats-admin-post-id-search… активируем и пробуем найти какую-то запись… по примеру шкриншота выше.
Создание… продвижение сайтов: студия ATs media запросто с WordPress
…вопросы в комментариях – помогу, в чём дюжу…
mihalica.ru !
Михаил ATs – владелец блога запросто с Вордпресс – в сети нтернет давным-давно…
…веб разработчик студии ATs media: помогу в создании, раскрутке, развитии и целенаправленном сопровождении твоего ресурса в сети… – заказы, вопросы… разработка…
Подробные видеоинструкции WordPress на тему: “Как найти нужную страницу в wordpress”:
Как найти нужный файл для редактирования WordPress?
Как найти нужный файл для редактирования WordPress?
Крутой поиск с подсказками на WordPress
Крутой поиск с подсказками на WordPress
Как настроить главную страницу в WordPress? Повторяй за мной!
Как настроить главную страницу в WordPress? Повторяй за мной!
Основы WordPress. Серия третья. Записи и страницы
Основы WordPress. Серия третья. Записи и страницы
Главная страница WordPress из любой страницы