J'utilise une fonction personnalisée dans le plugin Vote It Up pour Wordpress que j'ai trouvé here. Cependant, pour une raison quelconque, lorsque j'utilise la fonction dans la boucle principale, la boucle complète est étant retourné 3 fois.Wordpress Loop w/fonction personnalisée retournant plus d'une fois
La fonction est la suivante:
<?php
function ShowPostByVotes() {
global $wpdb, $voteiu_databasetable;
mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die(mysql_error());
mysql_select_db(DB_NAME) or die(mysql_error());
//Set a limit to reduce time taken for script to run
$upperlimit = get_option('voteiu_limit');
if ($upperlimit == '') {
$upperlimit = 100;
}
$lowerlimit = 0;
$votesarray = array();
$querystr = "
SELECT *
FROM $wpdb->posts
WHERE post_status = 'publish'
AND post_type = 'post'
ORDER BY post_date DESC
";
$pageposts = $wpdb->get_results($querystr, OBJECT);
//Use wordpress posts table
//For posts to be available for vote editing, they must be published posts.
mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die(mysql_error());
mysql_select_db(DB_NAME) or die(mysql_error());
//Sorts by date instead of ID for more accurate representation
$posttablecontents = mysql_query("SELECT ID FROM ".$wpdb->prefix."posts WHERE post_type = 'post' AND post_status = 'publish' ORDER BY post_date_gmt DESC LIMIT ".$lowerlimit.", ".$upperlimit."") or die(mysql_error());
$returnarray = array();
while ($row = mysql_fetch_array($posttablecontents)) {
$post_id = $row['ID'];
$vote_array = GetVotes($post_id, "array");
array_push($votesarray, array(GetVotes($post_id)));
}
array_multisort($votesarray, SORT_DESC, $pageposts);
$output = $pageposts;
return $output;
}
?>
Le index.php est la suivante:
<?php get_header(); ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?> <span>
<?php $pageposts = ShowPostByVotes(); ?>
<?php if ($pageposts): ?> <?php foreach ($pageposts as $post): ?>
<div>
<?php the_title(); ?>
<?php the_content(); ?>
<?php DisplayVotes(get_the_ID()); ?>
<br /><br />
</div>
<?php endforeach; ?>
</span>
<?php endif; ?>
<?php endwhile; endif; ?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
Est-ce que quelqu'un a des idées pourquoi cela se passerait-il?