2015-11-03 23 views
0

我正在使用此代碼,但未呈現PHP部分<?php echo wp_logout_url(); ?>轉義HTML以處理PHP

function choose_bar() { 
    $html = <<<HTML 
<div class="memlog"><a class="mem-in ttmem x-btn x-btn-small" href="/login/" ><i class="x-icon-globe" data-x-icon="&#xf0ac;"></i>Login</a><a class="mem-out ttmem x-btn x-btn-small" href="<?php echo wp_logout_url(); ?>" title="Logout">Logout</a></div> 
HTML; 

    return $html; 
} 

我該怎麼做?

+0

是否有一個具體的要求,使用WordPress作爲一個Heredoc字符串? – CD001

回答

3

問題是,您不能在heredoc字符串(代碼中的<<<HTML ... HTML;)內使用PHP標記(<?php ... ?>)。雖然評估變量($foo),但函數(wp_logout_url())和PHP標記不是。

最簡單的解決方案是:只需定義一個變量並在HTML中使用它,而不是調用函數wp_logout_url()

工作例如:

function choose_bar() { 
    $logoutUrl = wp_logout_url(); 
    $html = <<<HTML 
<div class="memlog"><a class="mem-in ttmem x-btn x-btn-small" href="/login/" ><i class="x-icon-globe" data-x-icon="&#xf0ac;"></i>Login</a><a class="mem-out ttmem x-btn x-btn-small" href="$logoutUrl" title="Logout">Logout</a></div> 
HTML; 

    return $html; 
} 

此外,僅供參考,沒有必要爲$html這裏聲明;你可以做一個回報:

function choose_bar() { 
    $logoutUrl = wp_logout_url(); 
    return <<<HTML 
<div class="memlog"><a class="mem-in ttmem x-btn x-btn-small" href="/login/" ><i class="x-icon-globe" data-x-icon="&#xf0ac;"></i>Login</a><a class="mem-out ttmem x-btn x-btn-small" href="$logoutUrl" title="Logout">Logout</a></div> 
HTML; 
}