it-swarm.com.de

Wie zeige ich Posts einer bestimmten Kategorie mit einer benutzerdefinierten Abfrage in WordPress an?

Hallo, ich möchte eine bestimmte Kategorie aus einer benutzerdefinierten Abfrage in WordPress anzeigen. Mein Code funktioniert einwandfrei und es werden die letzten 4 Beiträge angezeigt, aber ich möchte jetzt eine bestimmte Kategorie abrufen. Mein Code ist unten danke:

global $wpdb;

$posts = $wpdb->get_results('SELECT ID, post_title AS title, post_excerpt AS excerpt FROM '.$wpdb->posts.' WHERE post_type = "post" AND post_status = "publish" ORDER BY post_date DESC LIMIT 4');

Und hier ist mein vollständiger Code:

global $wpdb;


$posts = $wpdb->get_results('SELECT ID, post_title AS title, post_excerpt AS excerpt FROM '.$wpdb->posts.' 
 WHERE  post_type = "post" AND post_status = "publish" ORDER BY post_date  cat = "category_id" DESC LIMIT 4');

$items = array();
foreach ($posts as $post) {


    $item = array();
    $item['title'] = get_the_title($post->ID);
    $item['url'] = get_permalink($post->ID);
    $item['desc'] = $post->excerpt;
    $item['image'] = wp_get_attachment_url( get_post_thumbnail_id($post->ID));
    $item['thumb'] = get_post_meta($post->ID, 'Thumbnail', true);
    $items[] = $item;
}

return $items;

Jetzt möchte ich den finalen Out-Pout hinzufügen, siehe folgenden Code:

"> Lesen Sie mehr

1
Jono

Alles gut, der erste Vorschlag von @Ammu hat auch funktioniert. Ich musste die Werte aus dem Array ändern, um mit der Anweisung übereinzustimmen. Hier ist der Code:

global $wpdb;
$cat_id = 10; 

$posts = $wpdb->get_results("SELECT 
ID, post_title AS title, post_excerpt AS excerpt FROM $wpdb->posts p
JOIN $wpdb->term_relationships tr ON (p.ID = tr.object_id)
JOIN $wpdb->term_taxonomy tt ON (tr.term_taxonomy_id = tt.term_taxonomy_id)
JOIN $wpdb->terms t ON (tt.term_id = t.term_id)
WHERE p.post_type='post'
AND p.post_status = 'publish'
AND tt.taxonomy = 'category'
AND t.term_id = $cat_id
ORDER BY post_date DESC LIMIT 4");
2
Jono

der empfohlene Weg ist:

    <?php
    $query = new WP_Query('category_name=Category&posts_per_page=4');
    if($query->have_posts()) : while($query->have_posts()) : $query->the_post();
    if (has_post_thumbnail()) {
        ?>
            <a href="<?php the_permalink(' ') ?>" title="<?php the_title(); ?>"><?php the_post_thumbnail(); ?></a>
        <?php
    }
    ?>
    <h2><a href="<?php the_permalink(' ') ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>
    <?php
    the_excerpt(); // or the_content(); for full post content
    endwhile;endif;
?>
3
Zammuuz