在PHP内部运行PHP echo?

コード*_* リノ 1 html php wordpress wordpress-theming

所以我发现你不能在PHP回声中运行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>';
} ?>
Run Code Online (Sandbox Code Playgroud)

Une*_*nex 5

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

首先,你在php标签中使用php标签,它没有意义,你已经在使用php,所以你不需要那些php标签.

但是即使你删除了php标签它也不会起作用,因为你在一个字符串里面,所以你要求php写一个litteraly get_site_url()(你没有调用get_site_url(),你只是在写get_site_url())

那你该怎么办?

让我们看看串联如何工作.连接运算符是".".它允许连接两个字符串.

示例:

 $sentence = "Hello" . " " . "Thierry"; // means $sentence = "Hello Thierry".
Run Code Online (Sandbox Code Playgroud)

好的,现在让我们对变量做同样的事情.

$name = "Thierry";
$sentence = "Hello" . " " . $name; // means $sentence = "Hello Thierry";
Run Code Online (Sandbox Code Playgroud)

这就是你需要的一切.

让我们看看我们如何解决你的问题,

你想要的结果是:

echo '<a href="yourSiteUrl/login" class="typcn typcn-key-outline">Log in</a>';
Run Code Online (Sandbox Code Playgroud)

现在我们用连接运算符和php函数替换yourSiteUrl.你有 :

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

重复这个过程,你最终会得到这个:

<?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>';
    } ?>
Run Code Online (Sandbox Code Playgroud)

希望英语不是太糟糕

  • OP为什么要使用你的答案?你改变了什么,为什么OP自己的代码不起作用? (2认同)
  • @コードバリノ我没有问,因为我不理解,但是解释你在做什么是个好主意,不仅是OP,还有访问这个问题的未来访问者. (2认同)