2017-02-17 88 views
0

我對PHP很陌生,所以這可能是一個愚蠢的問題。If/else in return tag

我有一個if/else,我需要在返回標記中使用,但它不起作用。我應該如何構造這個?

這就是標籤:

return '… <div class="read"><a class="read-more hvr-icon-forward" href="'. get_permalink($post->ID) . '">' . "CODE HERE" . '</a></div>'; 

這是我需要輸出在 「代碼在這裏」

$status = of_get_option('read_more'); 
if (empty($status)) { 
    echo 'Sorry, the page does not exist.'; 
} else { 
    _e($status); 
} 

https://jsfiddle.net/33nv1xpa/1/

+2

先構建字符串,然後*返回它。 – David

回答

1

難道我得到它的權利,你有類似

return *SOME_STRING* SOME CODE WITH ";" *SOME_STRING* 

我強烈建議,創建一個字符串var包含您想要返回的文本,最後只返回該字符串。

$echoCode = result from CODE HERE 
$returnText = "<div>blalba</div>" . $echoCode . "<div>blabla</div>"; 

return $returnText; 
0

您可以通過使用ternary operator,並把在parenthenses變量賦值做到這一點。

return "...". (($status = get_option('status')) ? $status : _e()) ."..."; 

其他方面,我建議把這個功能放在一個函數中,或者至少在一個普通的變量中。 像這樣編碼使整個事情變得不可讀。

此外,您正嘗試在聯機解析器中運行wordpess函數,這將無可否認會錯過這些功能!

0

那麼你可以使用Php評估函數(http://php.net/manual/en/function.eval.php)。它將字符串評估爲Php代碼。因此,您可以將eval的結果分配給名爲$ code_here的變量:

$code_here = "$status = of_get_option('read_more'); 
if (empty($status)) { 
    echo 'Sorry, the page does not exist.'; 
} else { 
    _e($status); 
}"; 

$code_here = eval($code_here);