2017-02-17 4 views
0

私はPHPが新しく、これはおそらくばかげた質問です。返信タグに/ elseがある場合

リターンタグで使用する必要があるif/elseがありますが、動作しません。私はどのようにこれを構造化すべきですか?

これはタグです:

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

これは私が "HERE CODE"

$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

最初に文字列を作成し、* then *それを返します。 – 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を使用して、変数代入をペアにすることによって実行できます。

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

その他の場合は、この機能を関数に格納するか、少なくとも単純な変数に入れることをお勧めします。 このようにコーディングすると、すべてが読み取れなくなります。

また、オンラインパーサーでワードペス機能を実行しようとしていますが、これは間違いなくこれらの機能を欠場します。

0

よくPhp評価関数(http://php.net/manual/en/function.eval.php)を使用できます。文字列をPHPコードとして評価します。したがって、$ code_hereという変数にevalの結果を代入することができます:

$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); 
関連する問題