it-swarm.com.de

Glossar mit benutzerdefiniertem Beitragstyp

Ich möchte ein Glossar machen. Es sollte so aussehen:

Index-Nav
0-9 | A B C ... M ... XYZ

B BMW

M
Mercedes
...

ALLE Einträge aus index-nav (AZ, O-9) sollten in einem <ul> sichtbar sein und mit dem Inhaltsanker verknüpft sein (nur wenn Inhalt vorhanden) ist nicht leer). Eintrag ohne Inhalt sollte eine zusätzliche CSS-Klasse erhalten.

Mein Code (danke an @Mridul Aggarwal) zeigt nur Einträge in index-nav, wenn es auch Inhalt gibt.

Entschuldigung, ich bin kein englischer Muttersprachler.

page-my-custom-post-type.php

<?php

$index = 0;
$terms = get_terms('marke');
$range = array_merge(range(0, 9), range('A', 'Z'));

echo '<ul>';
foreach ($terms as $term) {

    if(ord($range[$index]) <= ord(strtoupper(substr($term->name, 0, 1)))) {
        while($range[$index] != strtoupper(substr($term->name, 0, 1))) {
            echo '<li>'. $range[$index] . '</li>';
            $index++;
        }
        $index = strtoupper(substr($term->name, 0, 1));
        echo "<li><a href='" . "#" . glossar_ . $index . "' />$index</a></li>";
        $index++;
    }

}
echo '</ul>';
?>

    <h2><?php echo $term->name; ?></h2>
    <?php $args = array( 'post_type' => 'cpt_auto', 'posts_per_page' => -1, 'orderby' => 'title', 'order' => 'ASC', 
        'tax_query' => array(
            array(
                'taxonomy' => 'marke',
                'field' => 'slug',
                'terms' => array($term->slug)
            )
        )
    );

    // ============================= OUTPUT ==============================
    $loop = new WP_Query( $args ); while ( $loop->have_posts() ) : $loop->the_post();
        the_title('<h3>', '</h3>');
        the_content();

    endwhile;

 echo "<a href='" . "#" . "' />topFooter</a>";
?>
3
ogni
$index = 0;
$terms = get_terms('marke');
$range = array_merge(range(0, 9), range('A', 'Z'));

echo '<ul>';
foreach ($terms as $term) {

    if(ord($range[$index]) <= ord(strtoupper(substr($term->name, 0, 1)))) {
        while($range[$index] != strtoupper(substr($term->name, 0, 1))) {
            echo '<li>'. $range[$index] . '</li>';
            $index++;
        }
        $index = strtoupper(substr($term->name, 0, 1));
        echo "<li><a href='".get_term_link($term)."' />{$range[$index]}</a></li>";
        $index++;
    }

}
1
Mridul Aggarwal