it-swarm.com.de

Wie kann ich festlegen, dass in der Kategorieschablone vollständige Beiträge anstelle von Teilbeiträgen angezeigt werden?

Ich benutze Wordpress 3.0.1 mit dem Twenty Ten Theme. Ich versuche, die Art und Weise zu ändern, in der die Beiträge in der Kategorieansicht angezeigt werden (z. B. durch Aufrufen einer URL wie mywebsite.com/category/mycategory). Momentan zeigen die Posts in der Kategorieansicht nur den ersten Teil eines Posts, aber ich würde das gerne ändern, damit das Ganze angezeigt wird.

In der Category Template (category.php) -Datei befinden sich einige Codezeilen, die so aussehen, als wären sie für die Generierung der Kategoriedaten verantwortlich:

/* Run the loop for the category page to output the posts.
 * If you want to overload this in a child theme then include a file
 * called loop-category.php and that will be used instead.
 */
get_template_part( 'loop', 'category' );
?>

Da in den Kommentaren die Einrichtung eines untergeordneten Themas erwähnt wird, habe ich diese Anweisungen (über diese Antwort ) befolgt, um ein untergeordnetes Thema einzurichten, damit ich meine benutzerdefinierten Funktionen hinzufügen kann.

Aus den Kommentaren geht hervor, dass ich mit meiner benutzerdefinierten Implementierung eine Datei namens loop-category.php erstellen soll, aber ich weiß nicht, welchen Code ich in diese Datei einfügen muss. Was muss ich zu loop-category.php hinzufügen, damit Kategorieansichten mit vollständigen Blogposts angezeigt werden?

HINWEIS: Während ich Wordpress schon eine ganze Weile benutze, ist dies mein erster Einstieg in die Anpassung von Themes. Jede Hilfe wäre sehr dankbar.

1
Ben McCormack

@Ben,

Wenn Sie sich Zeile 132 von loop.php in Twentyten ansehen, werden Sie die bedingte Anweisung finden, die WordPress anweist, nur den Auszug in Kategoriearchiven anzuzeigen. Direkt darunter nach <?php else : ?> werden alle Posts angezeigt, die sich nicht auf einer Archivseite, in der Kategorie asides oder in der Kategorie gallery befinden. (Die Kategorien asides und gallery befinden sich am Anfang von loop.php)

<?php if ( is_archive() || is_search() ) : // Only display excerpts for archives and search. ?>
            <div class="entry-summary">
                <?php the_excerpt(); ?>
            </div><!-- .entry-summary -->
    <?php else : ?>
            <div class="entry-content">
                <?php the_content( __( 'Continue reading <span class="meta-nav">&rarr;</span>', 'twentyten' ) ); ?>
                <?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'twentyten' ), 'after' => '</div>' ) ); ?>
            </div><!-- .entry-content -->
    <?php endif; ?>

In Ihrer loop-category.php-Datei ist es am einfachsten, die gesamte loop.php-Datei zu kopieren und einzufügen und den obigen Codeabschnitt wie folgt zu ändern:

<?php if ( is_search() ) : // Only display excerpts for archives and search. ?>
            <div class="entry-summary">
                <?php the_excerpt(); ?>
            </div><!-- .entry-summary -->
    <?php else : ?>
            <div class="entry-content">
                <?php the_content( __( 'Continue reading <span class="meta-nav">&rarr;</span>', 'twentyten' ) ); ?>
                <?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'twentyten' ), 'after' => '</div>' ) ); ?>
            </div><!-- .entry-content -->
    <?php endif; ?>

Sie werden feststellen, dass wir nur is_archive aus der bedingten Anweisung entfernt haben. Daher werden jetzt Kategoriearchive mit dem Code nach der else-Anweisung angezeigt, die the_content und nicht the_excerpt enthält.

7
Chris_O

Ich habe gerade die zweite Instanz von "is_archive () ||" aus loop.php entfernt und jeden vollständigen Beitrag auf der Kategorie-/Katzenslug-Seite angezeigt. Ich musste keine loop-category.php-Datei erstellen. Ohne die Anweisungen von Chris_O hätte ich es nicht geschafft. Danke, Chris !!

1
thepete