簡體   English   中英

替換空值php,html

[英]Replace empty value php, html

我在一行代碼上遇到了一些麻煩。

這是一個價格字段,當不添加任何價格時,我希望它輸出“ NO PRICE”,而不是默認情況下只輸出一個空格,這是代碼,

<p class="post-price"><?php cp_get_price( $post->ID, 'cp_price' );?> </p>

我已經試過了

<p class="post-price"><?php cp_get_price( $post->ID, 'cp_price' ); echo 'NO PRICE'?> </p>

但這始終顯示NO PRICE。 我試圖只在cp_price值為空時顯示它。

如果有人可以伸出援手,我將不勝感激。

更新:

完整的后端代碼,

function cp_ad_loop_price() {
global $post;
if ( $post->post_type == 'page' || $post->post_type == 'post' )
    return;
?>
<div class="price-wrap">
    <span class="tag-head">&nbsp;</span><p class="post-price"><?php cp_get_price( $post->ID,     'cp_price' );?></p>
</div>

<?php
}
add_action( 'appthemes_before_post_title', 'cp_ad_loop_price' );

沒有價值的前端

<div class="price-wrap">
    <span class="tag-head">&nbsp;</span><p class="post-price">&nbsp;</p>
</div>

具有價值的前端

<div class="price-wrap">
    <span class="tag-head">&nbsp;</span><p class="post-price">£500.00</p>
</div>

希望這可以幫助。 謝謝

cp_get_price函數,

if ( !function_exists('cp_get_price') ) {
function cp_get_price( $postid, $meta_field ) {
    global $cp_options;

    if ( get_post_meta( $postid, $meta_field, true ) ) {

        $price_out = get_post_meta( $postid, $meta_field, true );
        $price_out = cp_price_format( $price_out );
        $price_out = cp_pos_currency( $price_out, 'ad' );

    } else {
        if ( $cp_options->force_zeroprice )
            $price_out = cp_pos_currency( 0, 'ad' );
        else
            $price_out = '&nbsp;';
    }

    echo $price_out;
}
}

假設cp_get_price($post->ID, 'cp_price')返回一個空值而不是一個空格字符,則可以使用'or'運算符返回第一個計算為true

<?
$var = cp_get_price($post->ID, 'cp_price');
echo $var || 'NO PRICE';
?>

更新:

由於返回的是空格字符,因此可以使用以下命令:

<?
$var = cp_get_price($post->ID, 'cp_price');
echo ($var == ' ') ? 'NO PRICE' : $var;
?>

我真是個菜鳥。 我所需要的只是向正確方向的推動。 謝謝大家,現在解決了。

if ( !function_exists('cp_get_price') ) {
function cp_get_price( $postid, $meta_field ) {
global $cp_options;

if ( get_post_meta( $postid, $meta_field, true ) ) {

    $price_out = get_post_meta( $postid, $meta_field, true );
    $price_out = cp_price_format( $price_out );
    $price_out = cp_pos_currency( $price_out, 'ad' );

} else {
    if ( $cp_options->force_zeroprice )
        $price_out = cp_pos_currency( 0, 'ad' );
    else
        $price_out = '&nbsp;';
}

echo $price_out;
}
}

我編輯了這一行

$price_out = '&nbsp;'; 

看起來像這樣

$price_out = 'NO PRICE';

謝謝。

<?php echo cp_get_price( $post->ID, 'cp_price' ) ? cp_get_price( $post->ID, 'cp_price' ) : 'NO PRICE'; ?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM