it-swarm.com.de

Wie bestelle ich meine Loop-Abfrage?

In meiner Datenbank befindet sich eine Tabelle mit Abstimmungsergebnissen, nach denen ich versuchen möchte, Beiträge zu ordnen.

screenshot: die Tabelle

Ich habe so etwas ausprobiert, was alle gewählten Posts und die Paginierung in Ordnung bringt, sie aber nicht bei DESC anordnet. Jeder Rat, wenn ich mich diesem Recht nähere, wird geschätzt.

   <?php
 global $wpdb;
$my_posts = $wpdb->get_col("SELECT like_pid FROM wp_likes_count ORDER BY like_count");
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
    'post__in' => $my_posts['like_pid'],
    'paged' => $paged,
    'posts_per_page' => 6,

    'order' => 'DESC'
    );
query_posts($args); ?>


               <?php while (have_posts()) : the_post(); ?>    
               <!-- do stuff -->
               <?php endwhile; ?>
1
DOA

Das Problem

$my_posts enthält keine Beiträge. Es enthält Post-IDs und Likes. Und Sie legen beide in post__in ab, was nicht funktionieren kann. Ich schätze, selbst die Anzahl der Posts würde nicht funktionieren, wenn das Plugin (?) Der DB-Tabelle standardmäßig keine Posts mit einer Ganzzahl von 0 x hinzufügt.

Das Debuggen

Versuche Folgendes:

$my_likes = $wpdb->get_col("SELECT like_pid FROM wp_likes_count ORDER BY like_count DESC");
echo '<pre>';
print_r( $my_likes );
echo '</pre>';

das wird Ihnen wahrscheinlich ein Array zeigen, das zwei Sub-Arrays enthält.

Weg zu einer Lösung

Versuchen Sie dann, das benötigte Sub-Array abzurufen und in Ihre Abfrage einzufügen. Beispiel: 'post__in' => $my_likes['like_pid'].

Das Plugin

Auf jeden Fall sollte ein Plugin so etwas in der post_meta-Tabelle in einem Feld speichern und keine unnötige Tabelle für so etwas hinzufügen. Es sollte ein Facebook-Plugin von Otto im Repo von wp.org geben. Dies ist viel stärker, besser geschrieben und von einem vertrauenswürdigen Autor. Sie sollten einen Wechsel in Betracht ziehen.

0
kaiser

Verwenden Sie den Parameter 'order' in Ihrem Schleifenaufruf.

$args = array(
    'post__in' => $my_posts,
    'paged' => $paged,
    'posts_per_page' => 6,
    'order' => 'DESC'
);

Es gibt auch einen order_by-Parameter

http://codex.wordpress.org/Function_Reference/query_posts

1
supajb