0

次のコードをエコーし​​たいのですが、うまくいきません:

<?php
if ( is_page('residenz') ) 
{ echo '[nggallery id=12]'; } 
else if ( is_page('apartment-royal-ii') ) 
{ echo '[nggallery id=13]'; } 
else if ( is_page('apartment-royal-iii') ) 
{ echo '[nggallery id=14]'; } 
else if ( is_page('apartment-royal-iv') ) 
{ echo '[nggallery id=15]'; } 
else if ( is_page('apartment-royal-v') ) 
{ echo '[nggallery id=16]'; } 
else { echo '[nggallery id=11]'; } 
?>

問題は角括弧にあると思います。

たとえば、[nggallery id=11] をエコーするにはどうすればよいですか?

いくつかの詳細情報:

コードは wordpress ウィジェットで実行されます。

これは、PHPを受け入れるようにウィジェットを変更した方法です:

add_filter('widget_text','execute_php',100);
function execute_php($html){
     if(strpos($html,"<"."?php")!==false){
          ob_start();
          eval("?".">".$html);
          $html=ob_get_contents();
          ob_end_clean();
     }
     return $html;
}

EDIT2:

私はこれを使用しましたが、動作します:

<?php
if (1 == 1)
{?>
 [nggallery id=13]
<?php
}
?>
4

2 に答える 2

3

データをエコーするには、次のコードを使用します。

<?php
echo htmlentities('[nggallery id=12]');
?>
于 2013-03-23T22:38:24.313 に答える
1

角括弧はエスケープする必要はありません。あなたの条件はfalseと評価されると思います。次のステートメントの出力を確認してください。

var_dump(is_page['residenz'])
于 2013-03-23T22:41:03.587 に答える