Versuch, eine Variable an die WordPress-Funktion zu übergeben

Lesezeit: 2 Minuten

Hallo meine Mitentwickler. Ich versuche, eine sekundäre WordPress-Abfrage zu ändern und eine Liste von Posts gemäß der Kategorie der übergeordneten Posts anzuzeigen. Derzeit gibt es den HTML-Code aus, um den Beitrag zu formatieren, entspricht jedoch nicht der Kategorie. Was fehlt mir hier? Danke im Voraus.

<?php 
            $the_category = get_the_category($post->ID);
            global $post;
            $myposts = get_posts('numberposts=5&category='.$the_category.'');
            foreach($myposts as $post) : setup_postdata($post); ?>
        <li>
            <div class="suggestVid">
                <span style="padding-right:5px; float:left;">
                <?php the_post_thumbnail('suggest-vid'); ?></span>
                <a href="https://stackoverflow.com/questions/27586789/<?php the_permalink() ?>"><?php the_title(); ?></a>
            </div>
        </li>
        <?php wp_reset_postdata(); ?>
        <?php endforeach; ?>
        <?php wp_reset_query(); ?>

Du rufst an get_the_category($post->ID); und denken, es gibt nur eine Kategorie zurück, obwohl es tatsächlich so ist gibt ein Array von Kategorieobjekten zurück. Angenommen, jeder Beitrag hat nur eine Kategorie, können Sie einfach das erste zurückgegebene Ergebnis verwenden.

Du hast auch die Reihenfolge verwechselt wp_reset_postdata(); und endforeach;. Am Ende setzen Sie die Post-Daten in Ihrer Schleife zurück, sodass sie bei jeder Schleifeniteration immer auf die aktuelle Seite zurückgesetzt werden. Sie möchten es erst zurücksetzen, wenn die Schleife beendet ist.

Auch, wenn Sie drinnen sind Die Schleifebeispielsweise auf einer Vorlagenseite, müssen Sie nicht angeben global $post; direkt.

Versuche dies:

$categories = get_the_category();
$category   = $categories[0];

$myposts = get_posts(array(
    'posts_per_page' => 5,
    'category'       => $category->cat_ID
));

?><ul><?php

foreach($myposts as $post) : setup_postdata($post); ?>
    <li>
        <div class="suggestVid">
            <span style="padding-right:5px; float:left;">
            <?php the_post_thumbnail('suggest-vid'); ?></span>
            <a href="https://stackoverflow.com/questions/27586789/<?php the_permalink() ?>"><?php the_title(); ?></a>
        </div>
    </li><?php

endforeach;
wp_reset_postdata();

?>

Benutzer-Avatar
jay.jivani

Ersetzen Sie dies:

$myposts = get_posts('numberposts=5&category='.$the_category.'');

mit

$myposts = get_posts('numberposts=5&category='.$the_category);

Nicht verwenden $post als Schlüsselwort in der Programmierung, weil $post ist ein reserviertes Schlüsselwort für WordPress.

  • Auch dies brachte leider kein anderes Ergebnis als das von Mike Purcell. Danke aber für deine Hilfe.

    – Ken

    21. Dezember 2014 um 5:17 Uhr

1352620cookie-checkVersuch, eine Variable an die WordPress-Funktion zu übergeben

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

Privacy policy