2015-09-04 49 views
0

所以我只是發現你不能在一個PHP回聲裏運行PHP(對我來說是愚蠢的) 所以我想不出一種替代方法來運行這個腳本,也許會產生一個變量?在PHP裏面運行PHP echo:

這是一個PHP腳本

<?php if (!is_user_logged_in()) { 
echo '<a href=" <?php echo get_site_url(); ?>/login" class="typcn typcn-key-outline">Log in</a>'; 
} 
else { 
echo '<a href="<?php echo get_site_url(); ?>/wp-login.php?action=logout" class="typcn typcn-key-outline">Log out</a>'; 
} ?> 

回答

5

好吧內的WordPress的PHP腳本,也有這個腳本一些錯誤。

首先,您使用的PHP標籤裏面的PHP標籤,它沒有任何意義,你已經在使用PHP的,所以你不需要這些的PHP代碼。

但即使你刪除了PHP標籤,它也不會工作,因爲你在一個字符串內,所以你要求php寫litteraly get_site_url()(你沒有調用get_site_url(),你正在寫get_site_url ))

那你應該怎麼做?

讓我們看看串聯如何工作。連接運算符是「。」。它允許連接兩個字符串。

實施例:

$sentence = "Hello" . " " . "Thierry"; // means $sentence = "Hello Thierry". 

好現在可以做同樣的變量。

$name = "Thierry"; 
$sentence = "Hello" . " " . $name; // means $sentence = "Hello Thierry"; 

這就是你需要的一切。

讓我們看看我們如何能夠解決您的問題,那麼,

你想要什麼,結果是:

echo '<a href="yourSiteUrl/login" class="typcn typcn-key-outline">Log in</a>'; 

現在我們與連接運算符和PHP函數替換yourSiteUrl。你必須:

echo '<a href="'.get_site_url().'/login" class="typcn typcn-key-outline">Log in</a>'; 

重複此過程,你會這樣結束了:

<?php if (!is_user_logged_in()) { 
    echo '<a href="'.get_site_url().'/login" class="typcn typcn-key-outline">Log in</a>'; 
    } 
    else { 
    echo '<a href="'.get_site_url().'/wp-login.php?action=logout" class="typcn typcn-key-outline">Log out</a>'; 
    } ?> 

希望的英語不是太糟糕

+2

爲什麼要OP使用你的答案嗎?你改變了什麼,爲什麼OP自己的代碼不起作用? – Epodax

+0

這工作得很好!和@Epodax,他的代碼工作的原因是因爲,而不是把php放在PHP內部,他創造了一個我想要代碼的地方。它很有創意,很聰明,就像我看到它一旦面對如此艱難。 –

+0

好吧,因爲這是一個基本的連接,我認爲這是一個錯誤,而不是一個誤會。如果我想要解釋,我可以開發: – Unex