比较自定义域中的2个十进制数并显示帖子

时间:2014-10-08 作者:user2955824

这真让我困惑。希望你能帮助我。我想做的是搜索一个数字,并显示搜索结果中负1或正1的任何内容。它将搜索的数字将有小数,例如12.5。所以如果我搜索12.5,它应该显示11.5,11.6,一直到13.5。我已经完成了搜索部分,只是显示帖子是我的问题。到目前为止,我掌握的代码是:

<?php 
    $search_query = get_search_query();
    $searchplusone = ++$search_query ;
    $search_query1 = get_search_query();
    $searchnegone = --$search_query1 ;

$args = (array( 
    \'post_type\' => \'product\',
    \'numberposts\' => -1,

\'meta_query\' => array(  
 array(     
    \'value\' => array( $searchnegone, $searchplusone), 
    \'key\' => \'kilowatt\',
    \'type\' => \'decimal\',
    \'compare\' => \'BETWEEN\',

)),
 ) ); 
 $the_query = new WP_Query( $args );
?>
<?php echo $search_query; echo $searchnegone; echo $searchplusone;

print_r ($args);

?>
<?php if( $the_query->have_posts() ): ?>
<ul>
<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
    <li>
        <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    </li>
<?php endwhile; ?>
</ul>
<?php endif; ?>

<?php wp_reset_query(); 
?>
当您搜索12.5时,它似乎是有效的,但当您搜索11.5甚至11.9时,它不会显示帖子,但如果您搜索14,它将显示具有12.5值的帖子,尽管这不是故意的,因为它应该比较和显示13和15之间的帖子。但是,它应该显示11.9,因为它在12.5的范围内。

编辑:经过进一步调查,我发现如果帖子中的数字设置为20,然后搜索19.1、19.2等,它将显示正确的帖子。这似乎只是当帖子的数字集是十进制时,它会导致问题。

1 个回复
SO网友:user2955824

原来答案一直都在盯着我看,我做错的是用“小数”来比较帖子,而实际上应该是“小数”。我还向“value”中的两个变量添加了一个(float),所以看起来像这样:

   \'value\' => array ((float) $searchnegone, (float) $searchplusone), 
虽然我不确定这是否会产生影响。

希望这对有问题的人有所帮助。如果你需要帮助,请随时给我发信息!

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post