Benutzerdefinierte Anzahl von Beiträgen in category.php

Lesezeit: 3 Minuten

Benutzer-Avatar
hassan

Ich möchte eine andere Anzahl von Beiträgen in meiner category.php festlegen. Ich möchte 15 Artikel pro Seite mit Paginierung anzeigen.

Ich verwende das Thema 24. Wie kann ich das erreichen?

Mein Code ist:

 
<?php
 
get_header(); ?>

	<section id="primary" class="content-area">
		<div id="content" class="site-content" role="main">
  
 <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); 
  

 ?>
  
 		<div class="post-cat">
 	  
<?php 
if ( has_post_thumbnail() ) { 
	the_post_thumbnail();
} 
?>
 	<h2><a href="https://stackoverflow.com/questions/30662593/<?php the_permalink(); ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2> 
<p><?php the_category( ', ' ); ?></p>
 <?php endwhile; else : ?> 
 	<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>

 
 <?php endif; ?>
		</div><!-- #content -->
	</section><!-- #primary -->

<?php
get_sidebar( 'content' );
get_sidebar();
get_footer();

In Twentyfourteen ist bereits alles gut eingerichtet, sodass Sie nichts mit benutzerdefinierten Abfragen ändern müssen.

Folgendes sollten Sie tun:

  • Ein … kreieren Kinderthema damit Sie Änderungen vornehmen können, damit Sie bei Updates nichts von Ihrer Arbeit verlieren

  • Verwenden pre_get_posts um die Hauptabfrage auf Ihrer Kategorieseite so anzupassen, dass 15 Beiträge pro Seite angezeigt werden.

Fügen Sie Ihrem Child-Theme functions.php oder einem benutzerdefinierten Plugin Folgendes hinzu (Bitte beachten Sie, dass Sie PHP 5.3+ installiert haben müssen, damit dies funktioniert, da Closures verwendet werden)

add_action( 'pre_get_posts', function ( $query )
{
    if ( !is_admin() && $query->is_main_query() && $query->is_category() ) {
        $query->set( 'posts_per_page', 15 );
    }
});

  • Tolle Antwort, +1 für die Verwendung pre_get_posts

    – Pieter Goosen

    5. Juni 2015 um 12:30 Uhr

  • Danke für Ihre Hilfe . Daumen hoch! 🙂

    – hasan

    5. Juni 2015 um 16:28 Uhr

Versuchen Sie diesen Code.

<?php

get_header(); ?>

    <section id="primary" class="content-area">
        <div id="content" class="site-content" role="main">

 <?php 

$query = new WP_Query(array(
    'posts_per_page'   => 15
));


 if ( have_posts() ) : while ($query->have_posts()): $query->the_post(); 


 ?>

        <div class="post-cat">

<?php 
if ( has_post_thumbnail() ) { 
    the_post_thumbnail();
} 
?>
    <h2><a href="https://stackoverflow.com/questions/30662593/<?php the_permalink(); ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2> 
<p><?php the_category( ', ' ); ?></p>
 <?php endwhile; else : ?> 
    <p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>


 <?php endif; ?>
        </div><!-- #content -->
    </section><!-- #primary -->

<?php
get_sidebar( 'content' );
get_sidebar();
get_footer();


 ?>

  • Wie @ user4717687 sagte, wird Ihre Lösung nicht funktionieren, Ihr Code gibt die letzten 15 Beiträge unabhängig von der Kategorie zurück, sodass Sie die Funktionalität der Kategorieseite tatsächlich unterbrochen haben

    – Pieter Goosen

    5. Juni 2015 um 12:32 Uhr

1256560cookie-checkBenutzerdefinierte Anzahl von Beiträgen in category.php

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy