WebHU - Programozási kérdések és válaszok

get_template_part, ha az oldal egyéni taxonómiával rendelkezik

Megpróbálok egy másik fejléc menüt megjeleníteni attól függően, hogy az oldal vagy a bejegyzés milyen kategóriába került. Létrehoztam két eszközkészlet taxonómiát, kategóriákat és szállodákat.

Azt akarom, hogy minden szállodának legyen saját menüje, logója és foglalási menüje, de nem tudom működésre bírni a php-t és megcélozni a kategóriákat.

Több kódrészletet kipróbáltam, például ezt:

*< ?php if( has_term('skaga', 'hoteller') {

get_template_part( 'includes/partials/header/header-menu-skaga' ); }?>*

Kipróbáltam egy másikat is, amely egy másik webhelyen működött, de két taxonómiát céloz meg, és csak az egyik megcélzásához van szükségem rá.

*< ?php if( has_term('puder', 'produkttype') || has_term('senge', 'produkttype')) {

get_template_part( 'partials/sections/section', 'trustpilot' ); } ?>*

Remélem valaki rávilágít, hogy mit csinálok rosszul. Minden segítséget nagyra értékelünk!

Köszönöm


Válaszok:


1

Nem tudom, hogy ebben az esetben miért nem működik a WP core has_term() függvény, de valami ilyesmit tehetsz a következőhöz hasonló módon, a get_the_terms() használatával és egy array_search() parancsot az eredményre.

function has_custom_taxonomy_term($termSlug, $taxonomy, $postId = null) {
    $terms = get_the_terms($postId, $taxonomy);
    if (isset($terms->errors)) {
        // taxonomy doesn't exist
        return false;
    }

    return array_search($termSlug, array_column($terms, 'slug')) !== false;
}


if (has_custom_taxonomy_term('skaga', 'hoteller')) {
    get_template_part( 'includes/partials/header/header-menu-skaga' );
}
09.01.2020

2

@Benj

Üdv Ben,

Köszönjük a válaszát.

Kipróbáltam, és megpróbáltam, és és mást is a többi taxonómiához, így kapnak_ egy másik sablonrészt, de nem szerencsésen.

Így próbáltam használni, észreveszed a rossz részt?

function has_custom_taxonomy_term($termSlug, $taxonomy, $postId = null) {
$terms = get_the_terms($postId, $taxonomy);
if (isset($terms->errors)) {
    // taxonomy doesn't exist
    return false;
}

return array_search($termSlug, array_column($terms, 'slug')) !== false;
 }
if (has_custom_taxonomy_term('sabrokro', 'hoteller')) {
get_template_part( 'includes/partials/header/header-menu-sabrokro' ); 
}
elseif (has_custom_taxonomy_term('odder-parkhotel', 'hoteller')) {
get_template_part( 'includes/partials/header/header-menu-odder' ); 
}
elseif (has_custom_taxonomy_term('skaga', 'hoteller')) {
get_template_part( 'includes/partials/header/header-menu-skaga' ); 
}
elseif (has_custom_taxonomy_term('hotel-hanstholm', 'hoteller')) {
get_template_part( 'includes/partials/header/header-menu-hanstholm' );
}

Köszönöm mégegyszer!

13.01.2020
  • A kód a have_posts() cikluson belül van? Ellenkező esetben előfordulhat, hogy hozzá kell adnia a $postId értéket 13.01.2020
  • Nem, pontosan úgy van, ahogy fentebb látható. Nem vagyok php varázsló, így nem tudom pontosan, hogy $postId-vel kell írni. 13.01.2020
  • Úgy tűnik, hogy a négyből kettőt nem tudok működni. Nem skaga és sabro.. 13.01.2020
  • Működik, csak nem néztem meg az utolsó két taxonómia két címlapját. Hülye hiba, de legalább működik. Köszönöm a segítséget Ben! 14.01.2020
  • Új anyagok

    A rádiógomb ellenőrzött eseményének használata a jQueryben
    Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

    Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
    Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

    Miért érdemes elkezdeni a kódolást 2023-ban?
    01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

    🎙 Random Noise #2  – Örökbefogadás és hit
    az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

    A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
    A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

    5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
    Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

    Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
    A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..