在PHP echo中运行PHP?

在PHP echo中运行PHP?,php,html,wordpress,wordpress-theming,Php,Html,Wordpress,Wordpress Theming,所以我刚刚发现,你不能在PHP echo中运行PHP(是的,我真傻) 所以我想不出运行这个脚本的另一种方法,也许是制作一个变量 它是php脚本中的wordpress php脚本 <?php if ( !is_user_logged_in() ) { echo '<a href=" <?php echo get_site_url(); ?>/login" class="typcn typcn-key-outline">Log in</a>'; } els

所以我刚刚发现,你不能在PHP echo中运行PHP(是的,我真傻) 所以我想不出运行这个脚本的另一种方法,也许是制作一个变量

它是php脚本中的wordpress 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>';
} ?>

好的,这个脚本中几乎没有错误

首先,您正在php标记中使用php标记,这没有意义,您已经在使用php,因此不需要这些php标记

但是,即使您删除了php标记,它也不会工作,因为您在一个字符串中,所以您要求php编写literally get\u site\u url()(您不是在调用get\u site\u url(),而是在编写get\u site\u 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>';
echo';
现在我们用连接运算符和php函数替换yourSiteUrl。你有:

echo '<a href="'.get_site_url().'/login" class="typcn typcn-key-outline">Log in</a>';
echo';
重复此过程,您将得到以下结果:

<?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>';
    } ?>


希望英文不要太差

好的,这段脚本中几乎没有错误

首先,您正在php标记中使用php标记,这没有意义,您已经在使用php,因此不需要这些php标记

但是,即使您删除了php标记,它也不会工作,因为您在一个字符串中,所以您要求php编写literally get\u site\u url()(您不是在调用get\u site\u url(),而是在编写get\u site\u 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>';
echo';
现在我们用连接运算符和php函数替换yourSiteUrl。你有:

echo '<a href="'.get_site_url().'/login" class="typcn typcn-key-outline">Log in</a>';
echo';
重复此过程,您将得到以下结果:

<?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>';
    } ?>


希望英语不是太差

OP为什么要用你的答案?你改变了什么?为什么OP自己的代码不起作用?这很有效!而@Epodax,他的代码之所以有效,是因为他没有将php放在php中,而是在我想要代码的地方创建了一个中断。它很有创意,也很聪明,就像我一看到它我就使劲捂着手掌。因为这是一个基本的连接,我认为这是一个错误,而不是一个误解。如果op需要解释,我可以开发:o@コードバリノ 我问这个问题不是因为我不明白,但解释一下你在做什么是个好主意,不仅是为了OP,也是为了访问这个问题的未来访客。OP为什么要使用你的答案?你改变了什么?为什么OP自己的代码不起作用?这很有效!而@Epodax,他的代码之所以有效,是因为他没有将php放在php中,而是在我想要代码的地方创建了一个中断。它很有创意,也很聪明,就像我一看到它我就使劲捂着手掌。因为这是一个基本的连接,我认为这是一个错误,而不是一个误解。如果op需要解释,我可以开发:o@コードバリノ 我没有问是因为我不明白,但解释一下你在做什么是个好主意,不仅是为了OP,也是为了访问这个问题的未来访客。