Wp Query – Как Искать Сообщения По Названию Со Специальными Символами В Wp_Query?

  • Автор темы Maxim_kuk
  • Обновлено
  • 21, Oct 2024
  • #1

Я создал собственный запрос для веб-сайта, на котором у меня есть собственный тип сообщения с именем «Программа» (т.е.).

Предположим, у меня есть таксономия «Уровень», в которой у меня есть несколько вариантов выбора. То, как я построил код, позволяет создать столько страниц с одним и тем же заголовком, но с разной таксономией. Во внешнем интерфейсе я использую собственный WP_Query для получения всех сообщений с одинаковым заголовком и отображения меню, чтобы связать их все на основе «Уровней».

Но проблема в том, что клиент может ввести заголовок со специальными символами, например

 
  
like str_replace .

Моя просьба выглядит так.

SELECT SQL_CALC_FOUND_ROWS ri_posts.* FROM ri_posts LEFT JOIN ri_term_relationships ON (ri_posts.ID = ri_term_relationships.object_id) WHERE 1=1 AND ri_posts.post_title = "Социальная сеть Domaine de l'univers" AND ( ri_term_relationships.term_taxonomy_id IN (5,6,7) ) AND ri_posts.post_type = 'discipline' AND (ri_posts.post_status = 'publish' OR ri_posts.post_status = 'acf-disabled' OR ri_posts.post_status = 'private') GROUP BY ri_posts.ID ORDER BY ri_posts.ID ASC LIMIT 0, 999

Все нормально, когда запрос ищет по названию без . It breaks when I try to search by a title with ' .

Похоже, это нарушает SQL-запрос, в результате которого количество сообщений равно 0.


Есть ли способ создать своего рода фильтр, который может сказать %LIKE%, где я мог бы просто взять часть заголовка или просто что-то еще, что может обойти SELECT SQL_CALC_FOUND_ROWS ri_posts.* FROM ri_posts LEFT JOIN ri_term_relationships ON (ri_posts.ID = ri_term_relationships.object_id) WHERE 1=1 AND ri_posts.post_title = 'Domaine de l’univers социальный' AND ( ri_term_relationships.term_taxonomy_id IN (5,6,7) ) AND ri_posts.post_type = 'discipline' AND (ri_posts.post_status = 'publish' OR ri_posts.post_status = 'acf-disabled' OR ri_posts.post_status = 'private') GROUP BY ri_posts.ID ORDER BY ri_posts.ID ASC LIMIT 0, 999 ?

Примечание: я не могу использовать my-program-post my-program-post-2 my-program-post-3 parameter (https://codex.wordpress.org/Class_Reference/WP_Query#Search_Parameter), потому что, как вы можете видеть, у меня один и тот же заголовок для многих сообщений, поэтому фрагмент выглядит вот так

name

Пуля меня не ограничивает, т.к. предназначена для внутреннего использования.

Заранее спасибо. А пока буду продолжать искать работу.

РЕДАКТИРОВАТЬ 1: Дополнительные детали Если присмотреться к сгенерированному запросу, то у меня есть вот это.

'

Как видите, похоже, WordPress изменил мою ' to ' поэтому я получаю 0 сообщений по моему запросу.

Если я вручную изменю его на: wp_reset_postdata(); // WP_Query arguments $args = array( 'post_type' => 'program', 'title' => esc_sql(get_the_title()), 'orderby' => 'ID', 'order' => 'ASC', 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'level', 'field' => 'slug', 'terms' => array('level-one', 'level-two', 'level-three'), ) ) ); // The Query $breadcrumb = new WP_Query( $args ); it works.

Я также пытался создать фильтры %LIKE% или Custom's title function but nothing works. It always returns this ' персонаж.

#wp-query #получить заголовок

Maxim_kuk


Рег
22 Jun, 2006

Тем
69

Постов
156

Баллов
531
  • 25, Oct 2024
  • #2

Это не проблема, чтобы это исправить. После некоторых исследований и тестов я понял, что то, как человек копировал или писал заголовки, было неправильным. Ciel d<del>'</del>Afrique et pattes de gazelle

Ciel d<del>’</del>Afrique et pattes de gazelle

Против хорошего пути

'

Закрываем эту тему.

 

Ello


Рег
11 Jan, 2022

Тем
79

Постов
194

Баллов
599
Похожие темы Дата
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно