我有一个自定义的帖子类型,它使用一个自定义的元框来输出(旅行者的)数量,并使用jQuery从20个数字中扣除这些数字(因为这是可以参加旅行的人数),以输出最终的可用性数量。这在每页都很好,但如果我要输出所有的行程,就不行了。我似乎无法.each
工作;它首先发现这些数字的存在,并将其应用于所有这些数字。
下面是我用来获取帖子类型和该类型每篇帖子的内容的php查询:
<ul id="tourNav">
<?php $query = new WP_Query( array(
\'post_type\' => array( \'wpr_item\' ),
\'posts_per_page\' => -1,
\'order\' => \'ASC\', ) );
while ( $query->have_posts() ) : $query->the_post();
echo \'<li>\';
echo \'<div>\';
echo \'<span class="num1">\';
echo get_post_meta( $post->ID, \'tour_details_number\', true );
echo \'</span>\';
echo \'<span class="num2">\';
echo get_post_meta( $post->ID, \'tour_details_number2\', true );
echo \'</span>\';
echo \'<span class="num3">\';
echo get_post_meta( $post->ID, \'tour_details_number3\', true );
echo \'</span></div>\';
echo \'<a href="/reserve-items/?add-reserve=\';
echo the_id();
echo \'">\';
echo the_title();
echo \'</a>\';
echo \' <span class="count"></span></li>\';
endwhile; ?>
</ul>
当然,它会输出所有这类职位。然而,对于每个列表项,我需要做数学运算,假设这些数字存在于每个列表项中(例如,post meta,例如
tour_details_number
).
到目前为止,这是我的脚本,应该可以处理此输出信息:
$(\'#tourNav li\').each(function(){
var maximum = 20;
var deduct1 = $(\'.num1\').text();
var deduct2 = $(\'.num2\').text();
var deduct3 = $(\'.num3\').text();
var slot = maximum - deduct1 - deduct2 - deduct3;
$(\'.count\').html(slot);
});
这是
a live view 在那里你可以看到我的问题(请转到蓝色链接出现的页面底部)。每个列表项旁边应显示数字20(最大值)或更小的数字,因为存在进行减法的后置元。提前感谢!
最合适的回答,由SO网友:ngearing 整理而成
您不需要使用jQuery来处理类似的事情,如果您只使用php,这会更好!
因此,如果您将这3个值存储在变量中,那么您可以对输出结果的数据进行基本的数学运算。
while ($query->have_posts()) :
$query->the_post();
$tourNum1 = get_post_meta($post->ID, \'tour_details_number\', true);
$tourNum2 = get_post_meta($post->ID, \'tour_details_number2\', true);
$tourNum3 = get_post_meta($post->ID, \'tour_details_number3\', true);
$total = 20 - ($tourNum1 + $tourNum2 + $tourNum3);
echo \'<li>\';
echo \'<div>\';
echo \'<span class="num1">\';
echo $tourNum1;
echo \'</span>\';
echo \'<span class="num2">\';
echo $tourNum2;
echo \'</span>\';
echo \'<span class="num3">\';
echo $tourNum3;
echo \'</span></div>\';
echo \'<a href="/reserve-items/?add-reserve=\';
echo the_id();
echo \'">\';
echo the_title();
echo \'</a>\';
echo " <span class=\'count\'>".$total."</span></li>";
endwhile;