Wordpress nowa wersja

Zmiana sposobu szukania w Woocommerce

Na skróty

Domyślne wyszukiwanie produktów w interfejsie WooCommerce zwraca wyniki na podstawie tego, czy wyszukiwane hasło znajduje się w tytule, krótkim i długim opisie produktu.

Aby zmienić wyszukiwarkę WooCommerce, aby korzystała tylko z tytułu, będziesz musiał zmodyfikować zapytanie SQL, które WooCommerce generuje, gdy użytkownik wprowadza frazę w wyszukiwarce. Możesz to zrobić, dodając filtr do twojego pliku funkcji motywu.

function search_by_title_only( $search, $wp_query ) {
    if ( ! empty( $search ) && ! empty( $wp_query->query_vars['s'] ) ) {
        global $wpdb;

        $q = $wp_query->query_vars;
        $n = ! empty( $q['exact'] ) ? '' : '%';

        $search = '';
        $searchand = '';

        foreach ( (array) $q['search_terms'] as $term ) {
            $term = $wpdb->esc_like( $term );
            $search .= "{$searchand}($wpdb->posts.post_title LIKE '{$n}{$term}{$n}')";
            $searchand = ' AND ';
        }

        if ( ! empty( $search ) ) {
            $search = " AND ({$search}) ";
            if ( ! is_user_logged_in() )
                $search .= " AND ($wpdb->posts.post_password = '') ";
        }
    }

    return $search;
}
add_filter( 'posts_search', 'search_by_title_only', 10, 2 );

Ten kod zmodyfikuje zapytanie SQL generowane przez WooCommerce, tak aby wyszukiwanie odbywało się tylko na podstawie tytułów produktów. Pamiętaj, że ten kod powinien być dodany do pliku functions.php w twoim motywie dziecka, aby uniknąć utraty zmian podczas aktualizacji motywu.

Jeśli chcesz modyfikować zapytanie tylko dla produktów WooCommerce a zostawiając normalne wyszukiwanie np w postach, możesz to zrobić dodając dodatkowe warunki do funkcji filtrującej. Poniżej znajduje się zmodyfikowany kod:

function search_by_title_only( $search, $wp_query ) {
    if ( ! empty( $search ) && ! empty( $wp_query->query_vars['s'] ) ) {
        global $wpdb;

        // Dodajemy warunek, który sprawdza, czy zapytanie dotyczy produktów
        if ($wp_query->query_vars['post_type'] != 'product') {
            return $search; // Jeśli to nie jest produkt, zwracamy oryginalne zapytanie
        }

        $q = $wp_query->query_vars;
        $n = ! empty( $q['exact'] ) ? '' : '%';

        $search = '';
        $searchand = '';

        foreach ( (array) $q['search_terms'] as $term ) {
            $term = $wpdb->esc_like( $term );
            $search .= "{$searchand}($wpdb->posts.post_title LIKE '{$n}{$term}{$n}')";
            $searchand = ' AND ';
        }

        if ( ! empty( $search ) ) {
            $search = " AND ({$search}) ";
            if ( ! is_user_logged_in() )
                $search .= " AND ($wpdb->posts.post_password = '') ";
        }
    }

    return $search;
}
add_filter( 'posts_search', 'search_by_title_only', 10, 2 );

Ten kod sprawdzi, czy zapytanie dotyczy produktów, a jeśli nie, zwróci oryginalne zapytanie. Jeśli zapytanie dotyczy produktu, zostanie zmodyfikowane tak, aby wyszukiwanie odbywało się tylko na podstawie tytułu.

Podobnie jak poprzednio, ten kod powinien być dodany do pliku functions.php w twoim motywie potomnym, aby uniknąć utraty zmian podczas aktualizacji motywu. I zawsze warto zrobić kopię zapasową plików i bazy danych przed wprowadzaniem takich zmian, a także przetestować zmiany na stronie testowej lub w środowisku rozwojowym, zanim wprowadzisz je na stronę na żywo.

Podobne

  • Motyw czy szablon

    Na skróty Motyw i szablon to dwa terminy, które często są używane zamiennie, ale w rzeczywistości mają nieco różne znaczenia. Szablon, zwany także szablonem strony, to podstawowa konstrukcja, która definiuje układ i styl strony internetowej. Określa ona, jakie elementy będą wyświetlane na stronie, takie jak nagłówki, stopki, menu i zawartość główna. Szablony mogą być tworzone…

  • WordPress 4.8.3 – poprawka bezpieczeństwa

    Na skróty WordPress 4.8.3 jest już dostępny. To aktualizacja poprawiająca bezpieczeństwo dla wszystkich poprzednich wersji i zdecydowanie zachęcamy do natychmiastowej aktualizacji witryn. Wersje WordPress 4.8.2 i starsze mają podatnośc w funkcji $wpdb->prepare()  która może tworzyć nieoczekiwane i niebezpieczne zapytania do bazy danych, co prowadzi do potencjalnego SQL injection (SQLi). Sam WordPress nie jest zagrożony, ale aktualizacja…

  • WordPress 6.0

    Na skróty Ulepszone możliwości pisania Przełącznik stylów Więcej możliwości wyboru szablonu Zintegrowane wzorce Ulepszona lista widoków Kontrola blokady bloków WordPress 6.0 zawiera ponad 500 ulepszeń i 400 poprawek. Strona przedstawia kilka kluczowych ulepszeń, które mają sprawić, że tworzenie treści WordPress i tworzenie witryn będzie bardziej bogate w funkcje i intuicyjne. Ulepszone możliwości pisania Istnieje wiele…

  • WordPress 6.3 wydany

    Na skróty 8 sierpnia 2023 roku została wydana publicznie wersja WordPress 6.3 "Lionel". Zwiększona wydajność Głównym celem jest dostępność 8 sierpnia 2023 roku została wydana publicznie wersja WordPress 6.3 “Lionel”. Główne cechy wersji 6.3: 1. Edytor Strony: WordPress 6.3 łączy treści, szablony i wzory w Edytorze Strony. Umożliwia dodawanie stron, przeglądanie wariantów stylów, tworzenie zsynchronizowanych…

  • Jak w woocommerce wyswietlić 10 najnowszych produktów

    Na skróty Aby wyświetlić 10 najnowszych produktów w WooCommerce, możesz użyć poniższego kodu shortcode, który można dodać na stronie lub w poście na swojej witrynie WordPress:   [products limit=”10″ columns=”5″ orderby=”date” order=”DESC”]   Kod ten wyświetli 10 najnowszych produktów, posortowanych według daty dodania (najnowsze na początku) i w kolumnach. Jeśli chcesz dodać ten shortcode do…

  • WordPress i GPL

    Na skróty WordPress to system zarządzania treścią (CMS), który jest dostępny na licencji GNU General Public License (GPL). Ta licencja jest jednym z najpopularniejszych przykładów licencji open source. Daje ona użytkownikom prawo do kopiowania, modyfikowania i dystrybuowania oprogramowania. W praktyce oznacza to, że każdy może pobierać, instalować i modyfikować WordPressa zgodnie ze swoimi potrzebami. Model…