Wordpress Loop w/自定义函数返回多次

问题描述 投票:0回答:1

我正在使用我在此处找到的 WordPress Vote It Up 插件中的自定义函数。但是,由于某种原因,当我在主循环中使用该函数时,完整循环将返回 3 次。

功能如下:

<?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; } ?>

index.php如下:

<?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(); ?>

有人知道为什么会发生这种情况吗?

php wordpress plugins
1个回答
-1
投票

@李·辛普森

该代码是我见过的用于 WordPress 的最痛苦的代码之一。它之所以如此糟糕,是因为它完全绕过了 WordPress API,而且不是以一种好的方式。

如果你可以描述投票数据的存储位置

(你没有发布GetVote()

函数,所以我无法告诉投票在哪里)
我认为我们可以大大简化这种肮脏的事情。

-迈克

© www.soinside.com 2019 - 2024. All rights reserved.