it-swarm.com.de

Benutzerdefiniertes Taxonomie-Archiv zeigt keine Einträge an

Ich habe CPT "Film" mit den folgenden Taxonomien: Genre, Regisseur und Schauspieler.

Der Code, mit dem diese registriert werden, lautet: http://Pastebin.com/yJ9XHCDk

Ich habe eine Archivseite mit dem folgenden Code in archie-movie.php:

<?php get_header(); ?>

    <div id="middle" class="clearfix">          
    <div id="inner">                     
    <div id="content" class="<?php echo $bw; ?>">

        <?php get_template_part( 'part-genrenav'); ?>

        <div id="pageHead">
            <?php global $post; if(is_archive() && have_posts()) :
                    if ( is_post_type_archive() ) { ?>
                        <h1><?php post_type_archive_title(); ?></h1>
                        <?php } ?>
            <?php endif; ?>
        </div>

        <div class="posts clearfix">
            <?php get_template_part( 'part-pagination'); ?>
        <?php while (have_posts()) : the_post(); ?>             
            <?php get_template_part( 'part-movie'); ?>              
        <?php endwhile; ?>          
        <?php get_template_part( 'part-pagination'); ?>
        </div>                  
    </div>      
    </div>          
    </div>

<?php get_footer(); ?>

Taxonomy.php

Ich habe eine taxonomy.php erstellt (und eine taxonomy-genre.php und so weiter). Taxonomy.php wird hier korrekt aufgerufen , aber die Schleife in dieser Vorlage gibt nichts zurück. Ich habe Dutzende von Artikeln durchgesehen, kann es aber nicht herausfinden.

Derzeit besteht meine taxonomy.php-Datei aus dieser Datei, wie Sie sehen können, unterscheidet sie sich kaum von der obigen Datei archive-movie.php. Ich kann nur nicht herausfinden, warum es nicht funktioniert:

<?php get_header(); ?>

    <div id="middle" class="clearfix">          
    <div id="inner">                     
    <div id="content">

        <div id="pageHead"><h1>Taxonomy Archive</h1></div>

        <div class="posts clearfix">
            <?php get_template_part( 'part-pagination'); ?>
        <?php while (have_posts()) : the_post(); ?>             
            <?php get_template_part( 'part-movie'); ?>              
        <?php endwhile; ?>          
        <?php get_template_part( 'part-pagination'); ?>
        </div>  

    </div>      
    </div>          
    </div>

<?php get_footer(); ?>
1
Prometheus Fire

Möglicherweise müssen Sie die Abfrage für diese Taxonomie filtern, damit der benutzerdefinierte Beitragstyp Ihres Films angezeigt wird.

Versuchen Sie, dies zur functions.php-Datei Ihres Themas hinzuzufügen:

function custom_post_archive($query) {
    if (!is_admin() && is_tax('genre') && $query->is_tax)
        $query->set( 'post_type', array('movie', 'nav_menu_item', 'post') );
    remove_action( 'pre_get_posts', 'custom_post_archive' );
}
add_action('pre_get_posts', 'custom_post_archive');

Sie müssen diese Funktion für all Ihre verschiedenen Taxonomien erweitern, aber dies ist eine gute Möglichkeit, zuerst das Problem bzw. die Lösung zu testen.

In diesem Beitrag - und in allen Kommentaren - finden Sie eine Reihe weiterer Möglichkeiten, die Abfrage zu filtern und Bedingungen hinzuzufügen.

4
Michelle

Ich beginne damit, die Schleife zu wechseln, um zu überprüfen, ob Beiträge vorhanden sind und eine Meldung zurückzugeben, dass nichts gefunden wurde. Zumindest hilft das, das Problem einzugrenzen ... und keine leere Seite zurückzugeben.

<?php get_header(); ?>

    <div id="middle" class="clearfix">          
    <div id="inner">                     
    <div id="content">

        <div id="pageHead"><h1>Taxonomy Archive</h1></div>

        <div class="posts clearfix">
            <?php get_template_part( 'part-pagination'); ?>

            <?php if( have_posts() ) : ?>

            <?php while (have_posts()) : the_post(); ?>             
                <?php get_template_part( 'part-movie'); ?>              
            <?php endwhile; ?>    

            <?php else: ?>

                <?php _e ( "Sorry, no movies were found", "your-theme" ); ?>

            <?php endif; ?>

            <?php get_template_part( 'part-pagination'); ?>
        </div>  

    </div>      
    </div>          
    </div>

<?php get_footer(); ?>
0
helgatheviking