Wordpress:IF语句结果和用作变量

时间:2014-10-16 10:21:17

标签: php wordpress variables if-statement

我的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部分中使用。或者你有其他任何方法来实现这一目标吗?

提前谢谢

1 个答案:

答案 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;