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.';
}
?>
Leave a Reply