Avatar billede Morten Professor
29. november 2021 - 11:04 Der er 4 kommentarer og
1 løsning

Wordpress exclude en kategori i woocommerce

Hej håber der nogle der kan hjælpe mig lidt.

Jeg er igang med at lave et feed, og det virker som det skal, men skal have mulighed for at udelukke en kategori i kaldet fra websiden i wordpress.

Jeg har lavet rekommanderinger igennem et feed for at ikke skulle hente så mange oplysninger i databasen.
Så spare lidt på serveren.
De kald der foregår er i de single produkter hvor der i forvejen bliver kaldt data.

Har brug for at den kan udelukke en kategori så den ikke bare tager alt med. Da det den gør lige nu er at se på den sidste kategori i linjen.

Men til tider skrifter det stillinger så jeg f.eks for pige i stedet, for bare toppe. og så bliver der vist alt pigetøj. og havde endelig bare brug for den tager tøjes kategori som den tager fra sidst array. og hvis jeg bare kunne vende den når der kommer dreng sidst.
Men det skal gøres dynamisk som muligt.

Har fast slug eller name som er dreng og pige.
Så kan prøve at filtererer der eller få den til at skifte retning.
Håber det giver mening viser lige her hvad jeg mener.:



Kategorier: Dreng, Hættesweat, Sweatshirts

Men til tider så der andet en en anden række følge.
Som sådan:
Kategorier: Sweatshirts, Hættesweat, Dreng

Men Dreng skal stå først i arrayen .
Så den tager den sidste value.

Jeg har lidt kode at vise så det giver lige mening:
function FeedToRecom() {

    $xml = simplexml_load_file('ER LIGE SJULT.xml');

    global $product;
    $product_id = $product->get_id();
    $terms = get_the_terms( get_the_ID(), 'product_tag' );
    $getCategori = array_reverse(get_the_terms( get_the_ID(), 'product_cat' ));

Bruger array_reverse da i de fleste tilfælde at den står rigtigt i forhold til kald af tøjet.

    $koen = $product->get_attribute( 'pa_koen' );
    $categori = $product->get_categories();


    $product = wc_get_product( $product_id );

    $newArray = array();   
    foreach($getCategori as $getCategoriData) {
        foreach($terms as $data) {

            foreach ($xml->children() as $children) {
                if( $data->slug == $children->tags->slug && $koen == $children->kon && $getCategoriData->name == $children->category_list) {
                   
                    $newArray[] = array(

                        'image' => $children->additional_image_link,
                        'brands' => $children->brands->name,
                        'kategorier' => $children->categories,
                        'kategori' => $children->category_list,
                        'farve' => $children->farve,
                        'ny' => $children->featured,
                        'hoejde' => $children->hojde,
                        'lager_status' => $children->in_stock,
                        'koen' => $children->kon,
                        'link' => $children->link,
                        'permalink' => $children->permalink,
                        'pris' => $children->price_html,
                        'regular_price' => $children->regular_price,
                        'sale_price' => $children->sale_price,
                        'gruppe' => $children->tags->slug,
                        'title' => $children->title,
                        'type' => $children->type,
                        'ID' => $children->item_group_id,


                    );
                }
            }
        }
    }
    $count = 0;

    echo '
<div class="recom-container-">
<div id="right-button"></div>
<div id="slider" class="slider">
<ul class="ul_style">';

    foreach($newArray as $key => $data) {
        $count++;
        ?>
        <li class="product_recom image<?php echo $count; ?>">
            <a href="<?php echo $data['permalink']; ?>">
                <div>
                    <img class="image_action" style="height: auto; width: 160px;" src="<?php echo $data['image']; ?>"/>
                    <div class="text_price_action">
                        <?php echo $data['title']; ?>
                        <div class="price">
                            <?php if($data['sale_price'] == "") {
                                echo $data['regular_price']." DKK";
                            } else {
                                echo $data['sale_price']." DKK";
                            }  ?>
                        </div>
                    </div>
                </div>
            </a>
        </li>

        <?php

        if($count == 12) {
            break;
        }
    }
    echo '</ul>
</div>
<div id="left-button"></div>
</div>
';
}

Med venlig hilsen
Morten
Avatar billede a3-seo.dk Ekspert
29. november 2021 - 13:45 #1
Hvorfor kaster du dig over koden, ved dette problem??
__________________________________________
Kategorier: Dreng, Hættesweat, Sweatshirts

Men til tider så der andet en en anden række følge.
Som sådan:
Kategorier: Sweatshirts, Hættesweat, Dreng

Men Dreng skal stå først i arrayen .
Så den tager den sidste value.
__________________________________________

Blot lav "Dreng" som katagori og de andre som under katagorier til denne.
Så får du din rækkefølge som ønsket!

keine hexerei nur behändigkeit
Avatar billede Morten Professor
29. november 2021 - 14:47 #2
Ikke en mulighed for den shop længere vil der være for meget arbejde med i forhold til opsætning. Men har løst problemet.
Med lave ny array med de underkategorier.

Med venlig hilsen
Morten
Avatar billede a3-seo.dk Ekspert
29. november 2021 - 15:17 #3
I det lange løb, holder din løsning ikke.
Men fint at det virker for dig nu ...
Avatar billede Morten Professor
29. november 2021 - 18:13 #4
Lige det med din hekseri der og dygtighed, ja kan godt se hvad du mener, men hvis det nu ikke er muligt, når det nu er sat sådan op i sin tid. Så er det jo man må ty til ting som kan hjælp på det. og kan ret mange ting med kode og kan få det til at køre.
Og kan man kun se en løsning som at gøre det hele om i opsætningen, ved godt wordpress kan meget, men seo og omskifter i links gang på gang.
Men hvis du kan trylle så alt bliver som du siger, må du meget gerne gøre seo arbejdet med dygtighed :-)
Avatar billede a3-seo.dk Ekspert
30. november 2021 - 02:13 #5
Oversættelsen er "Hekseri og behændighed" ;-)

Send mig en PM med en URL og din e-mail!

SEO har jeg lavet i mere end 20 år nu, så tager gerne et kig på det du har nu, og kommer med et udspil ...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester