Oxygen: Jak vygenerovat taxonomii u CPT a jak je custom seřadit

Zrovna při tvorbě webu pro jednu větší advokátní kancelář jsem řešil reference, které se dávají na web. Pro tyto účely jsem v ACF založil vlastní CPT, který má vlastní taxonomii – různé kategorie referencí. Jak tyto kategorie vypsat do frontendu a jak je seřadit?

Kategorie referencí by hádám mělo jít vypsat pomocí přímo Oxygenu, ale osobně se mi to nepodařilo zprovoznit, tak jsem si vytvořil vlastní kód – bylo to pro mě rychlejší. Pro custom seřazení pak už jen stačí vytvořit vlastní pole (textové) – já vytvořil „poradi-v-referencich“ a navázat ho na taxonomie, kde se vybere právě ta daná taxonomie, kterou jsme vytvářeli v návaznosti na CPT.

Na web pak stačí přidat tento php kód a jen pomocí CSS si upravit design, class jsou v HTML na to již vytvořené. Na úplný závěr v každé kategorii pak stačí vyplnit číslo a už se to bude řadit. Já to řadím dle nejvyšší hodnoty, pokud to chcete opačně, tak stačí v kodu přepsat u order „DESC“ na „ASC“.

<?php
global $wp_query;

// Získání aktuální kategorie
$current_term = $wp_query->get_queried_object();

// Získání hlavních kategorií (termínů bez nadřazené kategorie)
$args = array(
    'taxonomy'     => 'kategorie-reference',
    'meta_key'     => 'poradi-v-referencich', // Vlastní pole pro řazení
    'orderby'      => 'meta_value_num', // Řazení podle číselné hodnoty
    'order'        => 'DESC',
    'parent'       => 0, // Získání pouze hlavních kategorií
    'hide_empty'   => false // Zobrazit i prázdné kategorie
);

$categories = get_terms( $args ); // Použijte get_terms místo get_categories

if ( ! empty( $categories ) && ! is_wp_error( $categories ) ) {
    echo '<div class="ap-podkategorie">';
    foreach ( $categories as $category ) {
        // Kontrola, jestli kategorie není "nezařazené"
        if ( strtolower($category->name) != 'nezařazené' ) {
            echo '<a class="ap-jedna-podkategorie" href="' . get_term_link( $category ) . '">'; // Začátek odkazu na kategorii
            echo '<span>' . $category->name . '</span>'; // Název kategorie v span elementu
            echo '</a>'; // Konec odkazu na kategorii
        }
    }
    echo '</div>'; // Konec divu všech kategorií
} else {
    echo 'Žádné kategorie nebyly nalezeny.';
}
?>
150 150 Adam Pražan

Adam Pražan

Tvořím weby, reklamy a dělám komplexní marketing. Specializuji se na menší lokální projekty, kterým pomáhám od A do Z. Podniká se semnou dobře. Jsem přátelský, zodpovědný, samostatný a držím dohodnutou cenu.

All stories by : Adam Pražan

Leave a Reply