2017-02-17 123 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);