it-swarm.com.de

Benutzerdefinierte Schleife für benutzerdefinierten Post-Typ

Ich verwende WP 4.0 und Headway als mein Thema. Ich habe einen benutzerdefinierten Beitragstyp mit dem Namen "property" erstellt und möchte die Schleife in zwei Spalten erstellen. Ich bin mir jedoch nicht sicher, was ich dem folgenden Code hinzufügen soll, damit dies geschieht. Ich möchte auch die Paginierung hinzufügen.

Ich habe auch andere Informationen in der Schleife zu platzieren. Ich arbeite nur daran, es richtig zum Laufen zu bringen.

Hier ist der Code, der derzeit für mich funktioniert ... ohne Spalten.

<?php $loop = new WP_Query( array( 'post_type' => 'property', 'posts_per_page' => -1, 'category' => 'current' ) ); ?>
<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
<div class="pindex">
    <div class="pimage">
        <a href="<?php the_permalink(); ?>"><?php if ( has_post_thumbnail() ) {the_post_thumbnail();} ?></a>
    </div>
    <div class="ptitle">
        <h2><?php echo get_the_title(); ?></h2>
    </div>
</div>
<?php endwhile; wp_reset_query(); ?>
6
user3331701

Ihre Abfrage weist einige Probleme auf.

  1. Es gibt keinen Parameter namens category. Sie können diese folgenden verwenden.

    cat (int) - use category id.
    category_name (string) - use category slug (NOT name).
    category__and (array) - use category id.
    category__in (array) - use category id.
    category__not_in (array) - use category id.
    
  2. Wenn Sie Ihre Abfrage zur Paginierung benötigen, sollten Sie posts_per_page' => -1 nicht verwenden. Dies überschreibt die Paginierung und gibt alle Beiträge zurück.

  3. Außerdem suchen Sie an der falschen Stelle nach Post-Thumbnails. Sie sollten es vor dem Bildcontainer überprüfen.

Ich habe also Ihre Anfrage geändert und so wird es sein. Ich gehe davon aus, dass Ihre Kategorie-Slug current ist, wie Sie es in Ihrer Abfrage verwendet haben.

<?php
    $loop = new WP_Query( array( 'post_type' => 'property', 'category_name' => 'current', 'ignore_sticky_posts' => 1, 'paged' => $paged ) );
    if ( $loop->have_posts() ) :
        while ( $loop->have_posts() ) : $loop->the_post(); ?>
            <div class="pindex">
                <?php if ( has_post_thumbnail() ) { ?>
                    <div class="pimage">
                        <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(); ?></a>
                    </div>
                <?php } ?>
                <div class="ptitle">
                    <h2><?php echo get_the_title(); ?></h2>
                </div>
            </div>
        <?php endwhile;
        if (  $loop->max_num_pages > 1 ) : ?>
            <div id="nav-below" class="navigation">
                <div class="nav-previous"><?php next_posts_link( __( '<span class="meta-nav">&larr;</span> Previous', 'domain' ) ); ?></div>
                <div class="nav-next"><?php previous_posts_link( __( 'Next <span class="meta-nav">&rarr;</span>', 'domain' ) ); ?></div>
            </div>
        <?php endif;
    endif;
    wp_reset_postdata();
?>

Dies sollte alle Beiträge in der Kategorie current mit Paginierung zurückgeben. Wenn Sie Beiträge aus mehr als einer Kategorie abrufen müssen, können Sie anstelle von category__in den Parameter category_name verwenden.

'category__in' => array( 2, 6 )

Beachten Sie, dass category__in nur Kategorie-IDs akzeptiert.

9
Robert hue