我对PHP很陌生,所以这可能是一个愚蠢的问题。
我有一个if / else,我需要在return标签中使用,但它不起作用。我应该如何构建这个?
这是标记:
return '… <div class="read"><a class="read-more hvr-icon-forward" href="'. get_permalink($post->ID) . '">' . "CODE HERE" . '</a></div>';
这是我需要在&#34; CODE HERE&#34;
中输出的内容$status = of_get_option('read_more');
if (empty($status)) {
echo 'Sorry, the page does not exist.';
} else {
_e($status);
}
答案 0 :(得分: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;
答案 1 :(得分:0)
您可以使用ternary operator并将变量赋值放在括号中来完成。
return "...". (($status = get_option('status')) ? $status : _e()) ."...";
另外,我建议将此功能放在一个函数中,或者至少放在一个普通的变量中。 像这样的编码使整个事情变得不可读。
此外,您正试图在在线解析器中运行wordpess函数,这无疑会错过这些功能!
答案 2 :(得分:0)
您可以使用Php eval函数(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);