• Решено Misha1990

    (@misha1990)


    Не ищет по имени категории. Т.е. если у Вас есть категория «Молоко», но в посте этой категории нет слова «молоко», то поиск Вам не выдаст ничего. Хотя категорию он ищет, но только если Вы будете искать адрес категории на латинице — «moloko».

    Вся проблема в том, что стоит плагин RusToLat, который из «молоко» делает «moloko». А Search Everything к этому не готов.

Просмотр 15 ответов — с 1 по 15 (всего 23)
  • Интересно. А вы не пытаетесь искать чёрную кошку в тёмной комнате без обид. А что по вашему должен выдать поиск?

    Конечно без обид) Просто почему никто не решает эту проблему?
    Даже на хороших блогах смотрел — это не сделано.

    Надо переделать код Search Everything, а у меня не такой уровень знаний, чтоб вот так взять, да и переделать.
    Я уже на поиске в инете часа два потратил… ничего. Всё пусто. Все молчат. А проблема то актуальная!(

    Может если я выложу код плагина Search Everything и укажу место, которое надо изменить, чтоб всё заработало как полагается, то мне кто-нибудь поможет внести эти изменения?

    Мене везде игонрят(( Я уже даже сам нашёл причину проблемы.

    Ну может кто-нибудь поможет?((

    поищи здесь в форуме — эту проблему уже «мусолили» в районе 2-3 недель назад

    А если в описание категории добавить слово Молоко, может быть Search Everything подхватит ?

    поищи здесь в форуме — эту проблему уже «мусолили» в районе 2-3 недель назад

    Это я её и мусолил) Только я тогда меньше продвинулся чем сейчас. Сейчас то я хотя бы знаю «Где» и «Что».

    А если в описание категории добавить слово Молоко, может быть Search Everything подхватит ?

    Да, я так делал. Этот способ работает. Но это плохой способ. Неужели каждый раз писать описание категории… Это не сложно, но не красиво)

    Но если нет других вариантов? Остается залезть в код плагина и там чего то лепить это тоже не очень красиво.

    глянул я код Search Everything, действительно непонятно, по категориям поиск идет только по полю slug и description чем это вызвано? .. но думаю дело не в забывчивости.
    Если у вас очень много категорий напишите SQL запрос, чтобы он автоматом имя категории прописывал в description , или вариант написать action при редактировании категории, чтобы тоже самое делал.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Если в настройках плагина выбрать «Искать каждый тег», то поиск производится и по имени категории (т.е. по полю wp_terms.name).

    Спасибо всем!)
    А ты, Sergey Biryukov просто красавчик!) Спасибо огромное!) Я бы сам не за что в жизни не догадался) Успехов тебе во всех твоих делах!)

    Категории имена которых состоят из 2-х слов не ищет даже так)
    Но большая часть проблема конечно решена)
    — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
    Я на днях попробую разобраться. Скоро отпишу)

    Категории имена которых состоят из 2-х и более слова — не ищет((
    Я
    ввёл в поиск слова «Хорошие авто» и в результате — НИЧЕГО НЕ НАЙДЕНО. Хотя у меня есть такая категория. А если вводить слова по отдельности «Хорошие» и «авто», то поиск сработает как надо.

    Автор Misha1990

    (@misha1990)

    Если в настройках плагина выбрать «Искать каждый тег», то поиск производится и по имени категории (т.е. по полю wp_terms.name).

    // create the search tag query
    	function se_build_search_tag()
    	{
    		global $wp_query, $wpdb;
    		$s = $wp_query->query_vars['s'];
    		$search_terms = $this->se_get_search_terms();
    		$exact = $wp_query->query_vars['exact'];
    		$search = '';
    
    		if ( !empty($search_terms) )
    		{
    			// Building search query
    			$n = ($exact) ? '' : '%';
    			$searchand = '';
    			foreach($search_terms as $term)
    			{
    				$term = addslashes_gpc($term);
    				if ($this->wp_ver23)
    				{
    					$search .= "{$searchand}(tter.name LIKE '{$n}{$term}{$n}')";
    				}
    				$searchand = ' AND ';
    			}
    			$sentence_term = $wpdb->escape($s);
    			if (!$sentence && count($search_terms) > 1 && $search_terms[0] != $sentence_term )
    			{
    				if ($this->wp_ver23)
    				{
    					$search = "($search) OR (tter.name LIKE '{$n}{$sentence_term}{$n}')";
    				}
    			}
    			if ( !empty($search) )
    			$search = " OR ({$search}) ";
    		}
    		$this->se_log("tag where: ".$search);
    		return $search;

    Эта та самая часть кода, которая связана с «Искать каждый тэг».
    Я посмотрел поле wp_terms.name, взял оттуда название категории из 2-х слов; ввёл это в поиск; результат — ничего не найдено.

    Почему этот код не ищет название категорий состоящих более чем из одного слова?(

    Есть какие-нибудь предложения по изменению кода?

    ну непонятна ситуация с {$n}, какое значение получает переменная $n не ясно поставьте вместо {$n} символ %
    ну еще предполжение на счет кодировки сравнения установленой для этой БД, а вообще какая у вас кодирвка БД?

    Автор Misha1990

    (@misha1990)

    а вообще какая у вас кодирвка БД?

    utf8_general_ci

Просмотр 15 ответов — с 1 по 15 (всего 23)
  • Тема «Search Everything» закрыта для новых ответов.