我的PHP知识几乎为零,但我需要做一些锻炼。我有if语句使我找到列表中产品的可用(交易或当前)价格。
<?php
$currentPrice = get_field('incentive_current_price');
$oldPrice = get_field('incentive_old_price');
if ( ($currentPrice != null) && ($oldPrice != null)) {
the_field('incentive_current_price');
}
elseif ( ($currentPrice == null) && ($oldPrice != null)) {
the_field('incentive_old_price');
}
elseif ( ($currentPrice != null) && ($oldPrice == null)) {
the_field('incentive_current_price');
}
else {
}
?>
这没关系。我还有另一个领域,我需要从这个列表中显示最低价格的产品。我用的是:
$connected = new WP_Query( array(
'connected_type' => 'incentives_to_products',
'connected_items' => get_queried_object(),
'nopaging' => true,
'meta_key' => 'incentive_old_price',
'orderby' => 'meta_value_num',
'order' => 'DESC') );
问题是有时我有current_prices,这只是忽略了old_price的顺序。有没有办法将我的if语句保存为变量并在meta_key部分中使用。或者你有其他任何方法来实现这一目标吗?
提前谢谢
答案 0 :(得分:0)
保存为变量非常简单。
如果您想要使用它的代码在范围内,您可以在if语句中创建变量。
看起来像the_field()
直接回声,所以你要么必须找到返回而不是回声的相应函数,要么使用输出缓冲将结果保存到变量中。
后者:
if ( ($currentPrice != null) && ($oldPrice != null)) {
the_field('incentive_current_price');
ob_start();
the_field('incentive_current_price');
$my_price = ob_get_contents;
ob_end_clean();
}
elseif ( ($currentPrice == null) && ($oldPrice != null)) {
ob_start();
the_field('incentive_old_price');
$my_price = ob_get_contents;
ob_end_clean();
}
elseif ( ($currentPrice != null) && ($oldPrice == null)) {
ob_start();
the_field('incentive_current_price');
$my_price = ob_get_contents;
ob_end_clean();
}
else {
$my_price = 'default_value';
}
如果您需要在范围之外使用它,您可以将其声明为全局,并且它将在您的脚本中随处可用。
global $my_price;
然后当你想使用它时
global $my_price;
echo $my_price;