2015-09-04 54 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